http缓存max-age说明
缓存能加快也面的打开速度,也能减轻服务器压力,所以 HTTP 设计了缓存机制。
HTTP 1.0 的时候是使用 Expires 的 header 来控制的,指定一个 GMT 的过期时间,但是当浏览器时间不准的时候就有问题了。
HTTP 1.1 的时候改为了 max-age 的方式来设置过期时间,让浏览器自己计算。并且把所有的缓存相关的控制都放到了 Cache-control 的 header 里,像 max-age 等叫做指令。
缓存过期后,HTTP 1.1 还设计了个协商阶段,会分别通过 If-None-Match 和 If-Modified-Since 的 header 带资源的 Etag 和 Last-Modied 到服务端问下是否过期了,过期了的话就返回 200 带上新的内容,否则返回 304,让浏览器拿缓存。
public:允许代理服务器缓存资源
s-maxage:代理服务器的资源过期时间
private:不允许代理服务器缓存资源,只有浏览器可以缓存
immutable:就算过期了也不用协商,资源就是不变的
max-stale:过期了一段时间的话,资源也能用
stale-while-revalidate:在验证(协商)期间,返回过期的资源
stale-if-error:验证(协商)出错的话,返回过期的资源
must-revalidate:不允许过期了还用过期资源,必须等协商结束
no-store:禁止缓存和协商
no-cache:允许缓存,但每次都要协商
胖胖熊笔记,笔记已迁移