浏览器缓存机制

来源:互联网 发布:java微信红包开发demo 编辑:程序博客网 时间:2024/06/07 13:36

什么是缓存机制

当浏览器请求一个网站内容的时候如果发现URL地址是和上次请求一致,则会在本地读取上次请求过来的文件,这就是浏览器的缓存机制。这么做的好处是减少网络访问带宽,减少响应延迟

浏览器缓存机制

缺点:如果服务器上的内容改变了,但是url地址并没有做更改,此时浏览器仍然使用上次的缓存的内容,并不会去服务器重新获取

浏览器第一次发送请求

这里写图片描述

服务器响应
这里写图片描述

浏览器第二次发送请求

这里写图片描述

  • Etag

    web服务器响应请求时来告诉浏览器当前资源在服务器的唯一标识(由服务器生成)

  • If-None-Match

    当资源过期时(Cache-Control标识的max-age),发现资源具有Etag声明,则再次想web服务器请求时带上头If-None-Match(Etag的值) 。web服务器收到请求后发现有头If-None-Match则与被请求资源的相应校验串进行比对,觉得返回200还是304

  • Last-Modified

    标识这个资源的最后修改时间,web服务器在响应请求时会告诉浏览器资源的最后修改时间

  • If-Modified-Since

    当资源过期时(Cache-Control标识的max-age),发现资源具有Last-Modified声明,则再次向web服务器请求时带上If-Modified-Since ,标识请求时间。web服务器收到请求后发现有头If-Modified-Since则与被请求资源的最后修改时间进行比对。若最后修改时间较新,说明资源被改动过,则相应整片资源内容(写在响应消息包体内),HTTP 200 ; 若最后修改时间较旧,说明资源没有被修改,则相应HTTP 304 , 告知浏览器继续使用所保存的cache

  • 既没有Etag又没有Last-Modified

    当资源过期时(Cache-Control标识的max-age), 则直接向web服务器请求,和第一次请求的过程一样

原创粉丝点击