http
更新于
http缓存
强缓存
Cache-Control常用的几个值如下
-
public
可以被任何对象缓存 -
private
只能被浏览器缓存,不能被代理服务器缓存 -
no-store
不使用任何缓存 -
max-age=<seconds>
缓存最大时间,相对于请求时间 -
s-maxage=<seconds>
public的时候,覆盖max-age
或Expire
-
no-cache
协商缓存,需要给服务器进行验证
Expires 指定了资源过期时间。
如果在Cache-Control响应头设置了 “max-age” 或者 “s-max-age” 指令,那么 Expires 头会被忽略
协商缓存
代表源头服务器认定的资源做出修改的日期及时间
语法
协商缓存主要还是用etag 配合 if-none-match
有时候文件修改时间变了,但是,文件内容没变。使用last-modified配合if-modified-since的方式,会存在浪费带宽的情况
Etag是根据文件内容来生成的
配合If-None-Match
当且仅当服务器上没有任何资源的 ETag
属性值与这个首部中列出的相匹配的时候,服务器端才会返回所请求的资源,响应码为 200