浏览器缓存机制

浏览器缓存机制

ID:47535941

大小:134.50 KB

页数:7页

时间:2020-01-13

浏览器缓存机制_第1页
浏览器缓存机制_第2页
浏览器缓存机制_第3页
浏览器缓存机制_第4页
浏览器缓存机制_第5页
资源描述:

《浏览器缓存机制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、浏览器缓存机制浏览器缓存机制,其实主要就是HTTP协议定义的缓存机制(如: Expires; Cache-control等)。但是也有非HTTP协议定义的缓存机制,如使用HTMLMeta 标签,Web开发者可以在HTML页面的节点中加入标签,代码如下:htmlcode上述代码的作用是告诉浏览器当前页面不被缓存,每次访问都需要去服务器拉取。使用上很简单,但只有部分浏览器可以支持,而且所有缓存代理服务器都不支持,因为代理不解析HTML内容本身。下面我

2、主要介绍HTTP协议定义的缓存机制。Expires策略Expires是Web服务器响应消息头字段,在响应http请求时告诉浏览器在过期时间前浏览器可以直接从浏览器缓存取数据,而无需再次请求。下面是宝宝PK项目中,浏览器拉取jquery.jsweb服务器的响应头:注:Date头域表示消息发送的时间,时间的描述格式由rfc822定义。例如,Date:Mon,31Dec200104:25:57GMT。Web服务器告诉浏览器在2012-11-2803:30:01这个时间点之前,可以使用缓存文件。发送请求的时间是2012-11-2803:25:01,即缓存5分钟。

3、不过Expires 是HTTP1.0的东西,现在默认浏览器均默认使用HTTP1.1,所以它的作用基本忽略。Cache-control策略(重点关注)Cache-Control与Expires的作用一致,都是指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务器取数据。只不过Cache-Control的选择更多,设置更细致,如果同时设置的话,其优先级高于Expires。http协议头Cache-Control    :值可以是public、private、no-cache、no-store、no-transform、must-re

4、validate、proxy-revalidate、max-age各个消息中的指令含义如下:1.Public指示响应可被任何缓存区缓存。2.Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。3.no-cache指示请求或响应消息不能缓存4.no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。5.max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。6.min-fresh指示客户机可以接收响应时

5、间小于当前时间加上指定时间的响应。7.max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。还是上面那个请求,web服务器返回的Cache-Control头的值为max-age=300,即5分钟(和上面的Expires时间一致,这个不是必须的)。Last-Modified/If-Modified-SinceLast-Modified/If-Modified-Since要配合Cache-Control使用。l  Last-Modified:标示这个响应资源的最后修改

6、时间。web服务器在响应请求时,告诉浏览器资源的最后修改时间。l  If-Modified-Since:当资源过期时(使用Cache-Control标识的max-age),发现资源具有Last-Modified声明,则再次向web服务器请求时带上头 If-Modified-Since,表示请求时间。web服务器收到请求后发现有头If-Modified-Since 则与被请求资源的最后修改时间进行比对。若最后修改时间较新,说明资源又被改动过,则响应整片资源内容(写在响应消息包体内),HTTP200;若最后修改时间较旧,说明资源无新修改,则响应HTTP304

7、(无需包体,节省浏览),告知浏览器继续使用所保存的cache。Etag/If-None-MatchEtag/If-None-Match也要配合Cache-Control使用。l  Etag:web服务器响应请求时,告诉浏览器当前资源在服务器的唯一标识(生成规则由服务器觉得)。Apache中,ETag的值,默认是对文件的索引节(INode),大小(Size)和最后修改时间(MTime)进行Hash后得到的。l  If-None-Match:当资源过期时(使用Cache-Control标识的max-age),发现资源具有Etage声明,则再次向web服务器请

8、求时带上头If-None-Match (Etag的值)。web服务器收到请求后发

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。