http头对浏览器缓存的控制

Expires: Thu, 31 Dec 2037 23:55:55 GMT

浏览器在此过期时间之前,是不会再请求服务器的

Cache-Control: max-age=315360000

http/1.1引入。跟Expires一样,只是不是指定一个过期时间戳,而是指定一段时长(多少秒)。当Expires和Cache-Control同时存在时,Cache-Control覆盖Expires,同时存在有利于兼容http/1.0

Last-Modified/If-Modified-Since

适用于不经常变,但也不是从来不变的页面,比如官网首页。第一次浏览器请求,服务器返回页面,同时返回Last-Modified头,告知修改时间,当浏览器第二次请求时,会带上这个时间,放在If-Modified-Since头里,服务器发现这个时间跟当前页面的修改时间一致时,直接返回304,而不返回页面内容,以此告诉浏览器页面未发生修改。

ETag/If-None-Match

浏览器第一次请求页面时,服务器返回页面,同时会带上一个ETag头,通常为页面的摘要值。当浏览器第二次请求时,这个摘要值会放到请求头If-None-Match里,服务器发现当前页面的摘要值跟If-None-Match里带过来的摘要值一致,说明客户端有页面缓存,直接返回304给浏览器。

发表于2017-04-11 16:53   修改于2017-04-11 16:55   评论:4   阅读:680  



回到顶部

首页 | 关于我 | 关于本站 | 站内留言 | rss
python logo   django logo