合理配置缓存提高再次访问的速度。

强缓存

强缓存:由客户端决定是否使用缓存。server无决定权。

HTTP 1.0 Expires 本地时间 < 过期时间 读缓存。
本地时间 > 过期时间 从server下载。
HTTP 1.1 Cache-Control max-age<=0 向server发送http请求确认该资源是否有修改。
有的话,返回200,无的话,返回304。
max-age>0 直接从浏览器缓存中提取。

cache-control 优先级高于 expires。

image.png

协商缓存

强缓存:由客户端与server共同决定是否使用缓存。server有决定权。

last-modified + if-modified-since

通过协商修改时间为基础的策略。优先级高于强缓存。

last-modified WEB服务器设置的资源的最后修改时间
if-modified-since 客户端传过来的修改时间

如果一致,表示文件没修改,返回304,server不返回文件内容,客户端读缓存;
不一致的话,server设置200,返回文件内容。
image.png
image.png

Etag + If-none-natch

Etag ETag为文件的标志值。
If-none-match 客户端将前次的标志值放在请求头部的If-none-match字段里。

如果一致,表示文件没修改,返回304,server不返回文件内容,客户端读缓存;
不一致的话,server设置200,返回文件内容。

image.png

image.png

参考链接