强制缓存|协商缓存

89 阅读1分钟

参考blog.csdn.net/sunyctf/art…

强制缓存

强缓存指的是在缓存时间内不会向服务器发起请求,只有过期之后才会向服务器发起请求。在浏览器中,强缓存分为Expires(http1.0规范)、cache-control(http1.1规范)两种。

Expires

绝对时间

表示资源的过期时间的请求头字段,它的值为一个绝对时间的GMT格式的时间字符串,是由服务器端返回的。

Cache-Control

相对时间

Cache-Control是http1.1时出现的header信息,主要是利用该字段的max-age值来进行判断,它是一个相对时间,例如,Cache-Control:max-age=3600,代表着资源的有效期是3600秒。

协商缓存

协商缓存就是由服务器来确定缓存资源是否可用。协商缓存都会向服务器发送请求,判断缓存数据是否过期,过期的话会返回新的内容,没有过期则使用本地的缓存数据。对于协商缓存主要利用两个字段:Last-Modify、Etag。

1、Last-Modify/If-Modify-Since

服务器文件最后修改时间/浏览器请求携带的缓存之前服务器返回的文件修改时间

2、ETag/If-None-Match

ETag可以保证每一个资源是唯一的,资源变化都会导致ETag变化。服务器根据浏览器上送的If-None-Match值来判断是否命中缓存。