缓存头总结

Expires:
 http1.0推出,指服务器返回的文件有效期
Last-Modified:
 http1.0推出的,指服务器文件的最后修改时间,浏览器会带上If-Modified-Since向服务器发送请求,与服务器文件修改时间Last-Modified做对比,如果时间不同,则获取数据返回200,否则返回304后调用浏览器本地硬盘的缓存

Cache-Control: 
  属于http1.1 指文件缓存的有效期
缓存头总结(摘自张开涛《亿级流量.网站架构核心技术》):
 public: 响应头,可共享缓存(客户端和代理服务器都可以缓存),响应可以被缓存
 private:  响应头,可私有缓存(客户端可以缓存,代理服务器不能缓存)比如用户私有内容,不能缓存
 no-cache: 请求头使用时表示需要回源验证,响应头使用时表示允许缓存者缓存响应,但是,使用时必须回源验证,所以此处叫no-cache 并不是很好
 no-store:请求和响应禁止缓存
 max-age:缓存的保鲜期和Expires 类似,根据该值校验缓存是否新鲜
 s-maxage: 与max-age 的区别是其金用于共享缓存(如缓存代理服务器),当客户端缓存不新鲜时遇到此头需要重新验证.
 max-stale: 缓存的最大陈旧时间爱你,如果缓存不新鲜但还在该最大陈旧时间内,则可以返回陈旧的内容
 min-fresh: 缓存的最小新鲜期,请求时使用(保鲜期-当前Age) < min-fresh 判断内容是否新鲜.
 must-revalidate: 当缓存过了新鲜期后,必须回源重新验证,与no-cache 类似,但是更严格,不能使用后台重新验证,而no-chache允许后台重新验证
 proxy-revalidate: 与must-revalidate类似,但是支队缓存代理服务器有效,客户端遇到此头需要回源重新验证.
 stale-while-revalidate: 请求时,表示在置顶时间内可以先返回陈旧的内容,后台进行重新验证(如异步验证)
 stale-if-error: 请求时,表示指定时间内,当重新验证请求响应状态码为500,502,503,504 时,可以使用陈旧内容
 only-if-cached: 请求时,使用该头表示只能从环衬获取响应,如果没有,则504 Gateway Timeout

ETag:
 属于http1.1,该版本号是由服务端随机生成的,浏览器会带上If-None-Match向服务器发送请求,与服务器文件修改版本ETag做对比,如果版本号不同,则获取数据返回200,否则返回304后调用浏览器本地硬盘的缓存

http1.1>http1.0 所以Cache-Control>Expires,ETag>Last-Modified

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值