逻辑流程图
流程图中,服务根据自身的业务,设置cache-control的值为:no-store、no-cache等,如:
Cache-Control: public, max-age=86400
在逻辑流程图中,有一个环节就是重新验证,就是验证缓存内容是否有效,那验证逻辑是什么,怎么验证?
ETag验证
ETag:资源唯一标识
一般会把请求的内容做md5加密,返回唯一的标识;会把ETag的值一起返回给浏览器;浏览器会把ETag存储下来。
Etag: “5d8c72a5edda83343d6aere”
下一次请求时将Etag一并带过去给服务器,服务器只需要比较客户端传来的ETag跟自己服务器上该资源的ETag是否一致,就能很好地判断资源相对客户端而言是否被修改过了。
如果服务器发现ETag匹配不上,那么直接以常规GET 200状态码形式将新的资源(当然也包括了新的ETag)发