- 当浏览器第一次向服务器发出请求访问某个资源时,服务器返回200OK状态码并返回该资源。并在Response头部加上Etag唯一标识。
- 当浏览器再次向服务器发出请求访问该资源时,浏览器首先检查强制缓存是否过期,如果没有过期则直接使用本地缓存,如果过期则会在Request头部加上If-None-Match字段,该字段就是Etag唯一标识。
- 服务器再次收到请求之后会判断If-None-Match值与当前请求资源所生成的唯一标识是否相同。
如果相同则返回304Not Modified,不会返回资源。
如果不相同则返回200OK,并返回该资源。