万网归一,常州百度推广排名优化,wordpress handsome,平台开发者浏览器第一次跟服务器请求一个资源#xff0c;服务器在返回这个资源的同时#xff0c;在respone header加上Last-Modified属性#xff08;表示这个资源在服务器上的最后修改时间#xff09;#xff1a; ----------------------------------------------------------------…浏览器第一次跟服务器请求一个资源服务器在返回这个资源的同时在respone header加上Last-Modified属性表示这个资源在服务器上的最后修改时间 -------------------------------------------------------------------------------------------------------------------------------- 浏览器再次跟服务器请求这个资源时在request header上加上If-Modified-Since属性该值就是上一次请求时返回的Last-Modified的值 服务器再次收到资源请求时根据浏览器传过来If-Modified-Since和资源在服务器上的最后修改时间判断资源是否有变化如果没有变化则返回304 Not Modified但是不会返回资源内容如果有变化就正常返回资源内容。 浏览器收到304的响应后就会从缓存中加载资源。
如果协商缓存没有命中浏览器直接从服务器加载资源时Last-Modified Header在重新加载的时候会被更新下次请求时If-Modified-Since会启用上次返回的Last-Modified值。 一般来说在没有调整服务器时间和篡改客户端缓存的情况下这两个essay-header配合起来管理协商缓存是非常可靠的但是有时候也会服务器上资源其实有变化但是最后修改时间却没有变化的情况就会影响协商缓存的可靠性。