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 头会被忽略
协商缓存
代表源头服务器认定的资源做出修改的日期及时间
语法
Last-Modified: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT协商缓存主要还是用etag 配合 if-none-match
有时候文件修改时间变了,但是,文件内容没变。使用last-modified配合if-modified-since的方式,会存在浪费带宽的情况
Etag是根据文件内容来生成的
配合If-None-Match
当且仅当服务器上没有任何资源的 ETag 属性值与这个首部中列出的相匹配的时候,服务器端才会返回所请求的资源,响应码为 200