HTTP缓存机制

强制缓存和对比缓存

  • 强制缓存
    若在有缓存,且未失效的情况下直接命中
    没有缓存时,服务器将数据和缓存规则返回

Cache-Control头里的选项:

private:             客户端可以缓存
public:              客户端和代理服务器都可缓存
max-age=xxx:         缓存的内容将在 xxx 秒后失效
no-cache:            需要使用对比缓存来验证缓存数据
no-store:            所有内容不进行缓存
  • 对比缓存
    不管有没有命中都需要向服务器发出请求确认所需资源是否被更改

1. Last-Modified/If-Modified-Since
第一次请求时返回资源最后修改时间Last-Modified
第二次请求时如果有If-Modified-Since,则对比时间
a. 如果时间大于此If-Modified-Since,则说明资源变动,响应资源并返回200.
b. 如果时间小于等于If-Modified-Since,则说明资源无变动,响应304,浏览器继续使用原缓存

2. Etag/If-None-Match【优先级高于Last-Modified/If-Modified-Since】
第一次请求时返回资源标识Etag
第二次请求时如果有If-None-Match,则对比标识
a. 如果不同,说明资源变动,响应资源并返回200
b. 如果相同,说明资源无变动,响应304,浏览器继续使用原缓存


这些选项均存在于响应头和请求头中

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转载地址 前言 Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识...
    MarvinGuo阅读 724评论 0 51
  • 什么是http报文 HTTP报文就是浏览器和服务器间通信时发送及响应的数据块。浏览器向服务器请求数据,发送请求(r...
    xiao_333阅读 356评论 0 0
  • #iOS网络缓存扫盲篇 #--使用两行代码就能完成80%的缓存需求 下篇预告:[使用80%的代码来完成剩下的20%...
    coding_chen阅读 2,165评论 0 11
  • 网络特有的延迟以及数据传输的成本,制约互联网快速获取Web资源。为此,HTTP协议引入缓存以空间换时间,使浏览器缓...
    大头8086阅读 3,175评论 2 12
  • 转自:http://blog.csdn.net/ruiwang321/article/details/510363...
    飞雨2013阅读 976评论 0 2

友情链接更多精彩内容