浏览器缓存
强缓存:直接读取本地缓存,不向服务端发送请求。
协商缓存:需要向服务端发送http请求,确认当前的缓存资源是否过期。
强缓存
cache_page 自带强缓存
服务端的缓存规则:
响应头,
Expires,告知浏览器缓存到具体时间(服务端时间)
如, Expires:Thu,02,Apr 2030; 绝对时间
服务端怎么设置?
Cache-Control, 在HTTP/1.1 控制网页缓存,优于Expires
如,Cache-Control:max-age=120; 存120s 相对时间
即服务端的cache_page(120)
协商缓存
针对较大的静态文件,一旦强缓存过期,浏览器与服务端通信,获取最新的数据(若服务端未更改,则浏览器则使用之前缓存的数据,不再请求这部分数据)
响应头,
Last-Modified,文件最近修改时间,需使用协商缓存
ETag,文件的哈希值,优先
若采用ETag进行协商缓存,则获取ETag的哈希值,作为请求头
If-None-Match的值,与服务端协商,文件是否更改