HTTP请求中的缓存(cache)机制.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HTTP请求中的缓存(cache)机制

HTTP请求中的缓存 cache 机制 当资源第一次被访问的时候,HTTP头部如下 Request-Line GET /a.html HTTP/1.1 Host: User-Agent: Mozilla/5.0 X11; U; Linux i686; zh-CN; rv:5 Gecko/座机电话号码15 Ubuntu/9.04 jaunty Firefox/3.0.15 Accept: text/html,application/xhtml+xml,application/xml;q 0.9,*/*;q 0.8 Accept-Language: zh-cn,zh;q 0.5 Accept-Encoding: gzip,deflate Accept-Charset: gb2312,utf-8;q 0.7,;q 0.7 Keep-Alive: 300 Connection: keep-alive HTTP返回头部如下 Status-Line HTTP/1.1 200 OK Date: Thu, 26 Nov 2009 13:50:54 GMT Server: Apache/2.2.11 Unix PHP/5.2.9 Last-Modified: Thu, 26 Nov 2009 13:50:19 GMT Etag: “8fb8b-14-座机电话号码acdcc0” Accept-Ranges: bytes Content-Length: 20 Keep-Alive: timeout 5, max 100 Connection: Keep-Alive Content-Type: text/html 当资源第一次被访问的时候,http返回200的状态码,并在头部携带上当前资源的一些描述信息,如 Last-Modified // 指示最后修改的时间 Etag // 指示资源的状态唯一标识 Expires // 指示资源在浏览器缓存中的过期时间 接着浏览器会将文件缓存到Cache目录下,并同时保存文件的上述信息 当第二次请求该文件时,浏览器会先检查Cache目录下是否含有该文件,如果有,并且还没到Expires设置的时间,即文件还没有过期,那么此时浏览器将直接从Cache目录中读取文件,而不再发送请求如果文件此时已经过期,则浏览器会发送一次HTTP请求到WebServer,并在头部携带上当前文件的如下信息 If-Modified-Since? ?Thu, 26 Nov 2009 13:50:19 GMT If-None-Match “8fb8b-14-座机电话号码acdcc0”即把上一次修改的时间,以及上一次请求返回的Etag值一起发送给服务器。服务器在接收到这个请求的时候,先解析Header里头的信息,然后校验该头部信息。 如果该文件从上次时间到现在都没有过修改或者Etag信息没有变化,则服务端将直接返回一个304的状态,而不再返回文件资源,状态头部如下 Status-Line HTTP/1.1 304 Not Modified Date: Thu, 26 Nov 2009 14:09:07 GMT Server: Apache/2.2.11 Unix PHP/5.2.9 Connection: Keep-Alive Keep-Alive: timeout 5, max 100 Etag: “8fb8b-14-座机电话号码acdcc0” 这样,就能够很大程度上减少网络带宽以及提升用户的浏览器体验。 当然,如果服务器经过匹配发现文件修改过了,就会将文件资源返回,并带上新文件状态信息。 Pragma Pragma头域用来包含实现特定的指令,最常用的是Pragma: no-cache。在HTTP/1.1协议中,它的含义和Cache-Control: no-cache相同。 Expires 文件在本地缓存的过期时间,如果浏览器发现缓存中的文件没有过期,则不发送请求(有例外,后面介绍) Cache-Control Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置 Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下:   ublic指示响应可被任何缓存区缓存。   rivate指示对于单个用户的整个或部分响应消息,

文档评论(0)

peain + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档