HTTP请求中浏览器缓存机制—1

当资源第一次被请求时,HTTP返回状态码200,并在HTTP响应头部携带当前资源的一些描述信息,如:
Last-Modified : 指示最后修改的时间
Etag : 指示资源的状态唯一标识
Expires : 指示资源在浏览器缓存中的过期时间
然后浏览器会将文件缓存到cache目录下,并同时保存资源的上述信息。当第二次请求该资源时,浏览器会先检查cache目录下是否含有该资源,如果有,则检查expires设置时间:
1)如果还没到设置时间(缓存还未过期),那么浏览器直接从cache目录中读取文件,不再发送HTTP请求。
2)如果资源过期,则浏览器发送HTTP请求到服务器,并在头部上携带资源的如下信息:
If-Modified-Since 请求资源的时间
If-None-Match “信息”
此头部携带信息是上一次资源修改时间,及上次请求返回的Etag。服务器在接受到这个请求后,会先解析Header里的头信息,然后校验该头信息:
a)如果资源从上次时间到现在都未修改过或者Etag信息没有变化,则服务器直接返回一个304状态,不再返回该资源。
b)如果资源修改过,则服务器会返回该资源,并带上新文件状态信息。

使用图片详细描述如下:

参考资源:浏览器缓存机制

此条目发表在浏览器分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注