1.http的缓存类型

  缓 存对于一个网站来说非常重要,可以提高网站性能,减少冗余的数据传输,增加服务器负担,web存储则给浏览器提供了更加强大的保存文件的接口。关于web下的http缓存类型比较多,打开浏览器的开发者模式,在Application中就可以看到详细的缓存类型。

能够看到类型颇多,简单的介绍下类型。

一个比较陌生:Mainfest:网络应用清单:是一个 JSON 文件,您(即开发者)可以利用它控制在用户想要看到应用的区域(例如移动设备主屏幕)中如何向用户显示网络应用或网站,指示用户可以启动哪些功能,以及定义其在启动时的外观。

网络应用清单提供了将网站书签保存到设备主屏幕的功能。当网站以这种方式启动时:

  • 它具有唯一的图标和名称,以便用户将其与其他网站区分开来。
  • 它会在下载资源或从缓存恢复资源时向用户显示某些信息。
  • 它会向浏览器提供默认显示特性,以避免网站资源可用时的过渡过于生硬。

它通过一个文本文件中的元数据这一简单机制完成所有这些工作。那就是网络应用清单。

2.http进行缓存的关键属性

还是应用开发者模式看到我们在请求资源时的响应报文。

出现名词解释(上到下)

cache-conttol:每一个用http请求的资源都可以在响应头用这个属性来给浏览器定义缓存策略,比如:浏览器可以缓存,中间的中继器不能缓存,浏览器在什么条件下可以缓存想用,有效的缓存周期,具体的属性值如下:

属性 作用
no-cache 不使用缓存,先和服务器确认要返回的资源是否有修改
no-store 比较直接的禁止所有的中继器缓存响应的资源
max-age =100 表示缓存的有效期,单位是秒,这一段时间内,除非缓存文件法还是能一些变动,否则会一直使用之前的缓存。在这段时间内是不会发生Etag等方法去验证资源有没有修改,缓存的文件发生变动,主要有:资源名字更改、资源地址更改,缓存被删除,页面强制刷新
public 用max-age是默认的public,
private 私人缓存,中继缓存不能允许。

expires: 表示存在的时间,使客户端在这个设置的时间之前不去请求资源,表示的是一个具体的时间,而且可能是服务器和客户端时间不一致,对于http的版本也不一样,在http1.1版本的可以用更加功能强的cache-control来替代max-age同时存在的expires会被覆盖到。

ETag:其实就是一个验证令牌,用来标识一个资源,可能是一个hash值,也可能是一个版本号,每当资源有修改时候Etag的值就会改变浏览器第一次请求之后保存的响应头Etag值,以便下一次发送请求的时候教研Etag是否有更改。

Etag属性用来让浏览器告诉服务器本地存储有相应的资源。

    if-None-Match:通过请求头添加if-None-Match(如果存在Etag,浏览器会自动添加),赋值为上一次请求后在本地存储的Etag值,服务器会和服务器端新获取的Etag值进行比较,如果没有更改,就会直接返回304 no-modified给浏览器,而浏览器直接使用本地的存储文件。

Last-Modified/If-Modified-Sinc:

不过前者是通过规定一个时间来比对,最小的单位是秒,后者通过一个唯一标识符,所以可以看出来如果原站在一秒内有多次更新,那么前者就不顶用啦。
ETag的验证要优先于Last-Modified,此外ETag也是有缺点的,在分布式的环境中,Etag在不同服务器上的同步问题可能会给服务器带来一些压力.
3.缓存类型详细介绍
  cookie:主要包括:名字,值,过期时间,路径和域。路径与域一起构成cookie的作用范围。若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。这种生命期为浏览器会话期的cookie被称为会话cookie。会话cookie一般不存储在硬盘上而是保存在内存里,当然这种行为并不是规范规定的。若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存里的cookie,不同的浏览器有不同的处理方式.
 session:session机制是一种服务端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。
内容待续---
 

http和web缓存的更多相关文章

  1. 作为前端应当了解的Web缓存知识

    缓存优点 通常所说的Web缓存指的是可以自动保存常见http请求副本的http设备.对于前端开发者来说,浏览器充当了重要角色.除此外常见的还有各种各样的代理服务器也可以做缓存.当Web请求到达缓存时, ...

  2. Web缓存杂谈

    一.概述 缓存通俗点,就是将已经得到的‘东东’存放在一个相对于自己而言,尽可能近的地方,以便下次需要时,不会再二笔地跑到起始点(很远的地方)去获取,而是就近解决,从而缩短时间和节约金钱(坐车要钱嘛). ...

  3. 前端应当了解的Web缓存知识

    缓存优点 通常所说的Web缓存指的是可以自动保存常见http请求副本的http设备.对于前端开发者来说,浏览器充当了重要角色.除此外常见的还有各种各样的代理服务器也可以做缓存.当Web请求到达缓存时, ...

  4. 浅谈Web缓存

    在前端开发中性能一直都是被大家所重视的一点,然后判断一个网站的性能最直观的就是看网页打开的速度. 其中提高网页反应的速度的一个方式就是使用缓存.一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟, ...

  5. web缓存

    web缓存HTTP协议的一个核心特性,它能最小化网络流量,并且提升用户所感知的整个系统响应速度. 什么能被缓存? *Logo和商标图像 *普通的不变化的图像(例如,导航图标) *CSS样式表 *普通的 ...

  6. Web 技术人员需知的 Web 缓存知识(转)

    最近的译文距今已有4年之久,原文有一定的更新.今天踩着前辈们的肩膀,再次把这篇文章翻译整理下.一来让自己对web缓存的理解更深刻些,二来让大家注意力稍稍转移下,不要整天HTML5, 面试题啊叨啊叨的~ ...

  7. c# web 缓存管理

    using System; using System.Collections; using System.Text.RegularExpressions; using System.Web; usin ...

  8. HTML5时代的Web缓存机制

    HTML5 之离线应用Manifest 我们知道,使用传统的技术,就算是对站点的资源都实施了比较好的缓存策略,但是在断网的情况下,是无法访问的,因为入口的HTML页面我们一般运维的考虑,不会对其进行缓 ...

  9. Web缓存的作用与类型

    前言 Web缓存是指一个Web资源(如html页面,图片,js,数据等)存在于Web服务器和客户端(浏览器)之间的副本.缓存会根据进来的请求保存输出内容的副本:当下一个请求来到的时候,如果是相同的UR ...

  10. [转载]WEB缓存技术概述

    [原文地址]http://www.hbjjrb.com/Jishu/ASP/201110/319372.html 引言 WWW是互联网上最受欢迎的应用之一,其快速增长造成网络拥塞和服务器超载,导致客户 ...

随机推荐

  1. 在VS2008和VS2010中禁用Visual Assist X

    此方法对于VS2008和VS2010 都适用. 在VS2008或VS2010菜单栏中选择“VassistX”选项卡,找到“Enable/Disable Visual Assist X”选项, 点击即可 ...

  2. javascript总结9:JavaScript三目运算符

    1 三元表达式: 表达式?结果1:结果2: 如果表达式结果为true,执行结果1,如果表达式结果为false,执行结果2. 可以理解为if else  的另外一种写法. 例: var m = 10; ...

  3. Java IO输入输出流 FileWriter 字符流

    字节缓冲流 //为什么要使用包装流,使用包装流是为了提高读写操作的性能. public class Packing_flowDemo { public static void main(String[ ...

  4. 深入理解python中可迭代对象,迭代器,生成器

    英文原文出处:Iterables vs. Iterators vs. Generators 在python学习中,通常会陷入对以下几个相关概念之间的确切差异的困惑中: a container(容器) ...

  5. 国内物联网平台(8):中移物联网开放平台OneNet

    国内物联网平台(8)——中移物联网开放平台OneNet 马智 平台定位 OneNET是中移物联网有限公司搭建的开放.共赢设备云平台,为各种跨平台物联网应用.行业解决方案,提供简便的云端接入.存储.计算 ...

  6. SICP练习1.6的解答

    cond和if有着同样的效果,为啥用cond实现的new-if不能用于一些函数? 我自己没想明白,在网上搜集了一下答案,部分解答觉得有道理,整理如下: 解答1: if和cond都是特定的求值顺序, 即 ...

  7. 可变大小、颜色边框、样式的UISwitch

    1.CHSwitch.h // // 文 件 名:CHSwitch.h // // 版权所有:Copyright © 2018 lelight. All rights reserved. // 创 建 ...

  8. 871. Minimum Number of Refueling Stops

    A car travels from a starting position to a destination which is target miles east of the starting p ...

  9. audio音频

    html5的audio功能上已经非常强大,回放,跳转,缓冲等以前只能用flash才能实现的功能,html5的audio都能轻松搞定 最近的一个项目使用到了这个功能,把我使用的情况写下来,供大家参考, ...

  10. pycharm自动调整html页面代码缩进不正确的解决办法

    pycharm自动调整html页面代码缩进不正确的解决办法