一、两种缓存类型
http缓存主要分为两种缓存类型, 强制缓存和协商缓存
1、强制缓存
客户端会去查看缓存数据库,根据缓存时间判断缓存是否失效
如果未失效,使用缓存数据库的数据
如果失效,则将请求发出,服务器端将返回数据和过期时间,客户端将此时间及数据设置到缓存数据库里
服务器返回的过期时间字段有(cache-control/expires)
2、协商缓存
何时使用:
当强缓存过期未命中或者响应报文Cache-Control中有must-revalidate标识必须每次请求验证资源的状态时,便使用协商缓存的方式去处理缓存文件。
客户端会去查看缓存数据库的缓存标识
客户端将用此缓存标识请求服务器
服务器根据缓存标识判断缓存是否失效
a.如果失效,返回数据及新的缓存规则,状态码200,浏览器将缓存规则及数据存储在缓存服务器
b.如果未失效,不返回数据,状态码304,浏览器将从缓存数据库获取数据
服务器返回标识 Etag,客户端下次请求使用if-none-match
服务器返回标识 last-modified,客户端下次请求使用if-modified-since
if-none-match优先级大于if-modified-since
网友评论