http请求中的缓存(cache)机制

http请求中的缓存(cache)机制

ID:8971410

大小:39.00 KB

页数:3页

时间:2018-04-13

http请求中的缓存(cache)机制_第1页
http请求中的缓存(cache)机制_第2页
http请求中的缓存(cache)机制_第3页
资源描述:

《http请求中的缓存(cache)机制》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、HTTP请求中的缓存(cache)机制当资源第一次被访问的时候,HTTP头部如下(Request-Line)GET/a.htmlHTTP/1.1Host:127.0.0.1User-Agent:Mozilla/5.0(X11;U;Linuxi686;zh-CN;rv:1.9.0.15)Gecko/2009102815Ubuntu/9.04(jaunty)Firefox/3.0.15Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-

2、Language:zh-cn,zh;q=0.5Accept-Encoding:gzip,deflateAccept-Charset:gb2312,utf-8;q=0.7,;q=0.7Keep-Alive:300Connection:keep-aliveHTTP返回头部如下(Status-Line)HTTP/1.1200OKDate:Thu,26Nov200913:50:54GMTServer:Apache/2.2.11(Unix)PHP/5.2.9Last-Modified:Thu,26Nov200913:50:19GMTEtag:

3、“8fb8b-14-4794674acdcc0”Accept-Ranges:bytesContent-Length:20Keep-Alive:timeout=5,max=100Connection:Keep-AliveContent-Type:text/html当资源第一次被访问的时候,http返回200的状态码,并在头部携带上当前资源的一些描述信息,如Last-Modified   //指示最后修改的时间Etag        //指示资源的状态唯一标识Expires       //指示资源在浏览器缓存中的过期时间接着浏览器会将

4、文件缓存到Cache目录下,并同时保存文件的上述信息当第二次请求该文件时,浏览器会先检查Cache目录下是否含有该文件,如果有,并且还没到Expires设置的时间,即文件还没有过期,那么此时浏览器将直接从Cache目录中读取文件,而不再发送请求;如果文件此时已经过期,则浏览器会发送一次HTTP请求到WebServer,并在头部携带上当前文件的如下信息If-Modified-Since  Thu,26Nov200913:50:19GMTIf-None-Match    “8fb8b-14-4794674acdcc0”即把上一次修改的时

5、间,以及上一次请求返回的Etag值一起发送给服务器。服务器在接收到这个请求的时候,先解析Header里头的信息,然后校验该头部信息。如果该文件从上次时间到现在都没有过修改或者Etag信息没有变化,则服务端将直接返回一个304的状态,而不再返回文件资源,状态头部如下(Status-Line)HTTP/1.1304NotModifiedDate:Thu,26Nov200914:09:07GMTServer:Apache/2.2.11(Unix)PHP/5.2.9Connection:Keep-AliveKeep-Alive:timeou

6、t=5,max=100Etag:“8fb8b-14-4794674acdcc0”这样,就能够很大程度上减少网络带宽以及提升用户的浏览器体验。当然,如果服务器经过匹配发现文件修改过了,就会将文件资源返回,并带上新文件状态信息。基本字段PragmaPragma头域用来包含实现特定的指令,最常用的是Pragma:no-cache。在HTTP/1.1协议中,它的含义和Cache-Control:no-cache相同。Expires文件在本地缓存的过期时间,如果浏览器发现缓存中的文件没有过期,则不发送请求(有例外,后面介绍)Cache-Con

7、trolCache-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。各个消息中的指令含义如下:  publi

8、c指示响应可被任何缓存区缓存。  private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。  no-cache指示请求或响应消息不能缓存  n

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

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

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