浏览器缓存机制 If-Modified-Since和Last-Modified

浏览器缓存机制 If-Modified-Since和Last-Modified

浏览器缓存机制:

    浏览器第1次发出请求访问服务器上的1.jpg资源时,服务器会将1.jpg资源响应给浏览器并带上名为Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT的响应头,其中Tue, 11 Jul 2000 18:23:51 GMT为该资源的最后修改时间,响应的状态码是200, 由于浏览器是第一次访问1.jpg资源,所以在浏览器缓存文件中没有该资源,Tue, 11 Jul 2000 18:23:51 GMT作为时间戳和1.jpg资源一起存储在缓存文件中.

    当浏览器第2次发出请求访问服务器上的1.jpg资源时,由于浏览器缓存中有1.jpg资源,所以浏览器发出的请求会包含一个名为If-Modified-Since:Tue, 11 Jul 2000 18:23:51 GMT的请求头,其中Tue, 11 Jul 2000 18:23:51 GMT为1.jpg资源上一次修改的时间,服务器接到请求后,会将发过来的这个时间与服务器中的1.jpg资源的最后修改时间做对比,如果相同,服务器不会再将1.jpg资源响应给浏览器,并携带一个302的状态码,告诉浏览器使用缓存获取图片,浏览器收到响应后去缓存中取出图片显示在页面上.当然,如果服务器上的1.jpg资源发生了更新,浏览器发过来的时间与服务器中的1.jpg资源的最后修改时间不同,服务器就会把最新的1.jpg资源响应给浏览器,并携带一个200的状态码.