Home >Backend Development >PHP Tutorial >Http请求头和响应头的Cache-Control怎么理解

Http请求头和响应头的Cache-Control怎么理解

WBOY
WBOYOriginal
2016-06-23 13:36:111923browse

网站是wordpress,请求头里的Cache-Control是no-cache,响应头里的是我在nginx里设置的max-age=259200,那么浏览器到底缓存了没有。。。

Request Headersview sourceAccept:*/*Accept-Encoding:gzip, deflate, sdchAccept-Language:zh-CN,zh;q=0.8Cache-Control:no-cacheConnection:keep-aliveCookie:CNZZDATA1254790698=1245005062-1429681029-%7C1429681029Host:yuanzi.mePragma:no-cacheReferer:http://yuanzi.me/User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36Response Headersview sourceAccept-Ranges:bytesCache-Control:max-age=259200Connection:keep-aliveContent-Length:100922Content-Type:application/javascriptDate:Wed, 22 Apr 2015 06:13:34 GMTETag:"55371597-18a3a"Expires:Sat, 25 Apr 2015 06:13:34 GMTLast-Modified:Wed, 22 Apr 2015 03:29:27 GMTServer:nginx/1.6.2


回复讨论(解决方案)

请求头里的Cache-Control是no-cache,是浏览器通知服务器:本地没有缓存数据
响应头中的 Cache-Control:max-age=259200 是通知浏览器:259200 秒之内别来烦我,自己从缓冲区中刷新

请求头里的Cache-Control是no-cache,是浏览器通知服务器:本地没有缓存数据
响应头中的 Cache-Control:max-age=259200 是通知浏览器:259200 秒之内别来烦我,自己从缓冲区中刷新



徐版主好~
还是疑惑,既然本地没有缓存数据,怎么从缓冲区刷新呢??
我在nginx设置的expires 3d;到底有没有缓存到浏览器呢??

我以为我设置了expires 3d; 请求头里的cache-control也该是259200。。

如果响应头中有 Cache-Control=no-cache 那么浏览器是不会缓存的
但你的响应头并没有,所以应该是有缓存的。
不过即使有缓存,也不一定被浏览器使用。因为浏览器还有其他设置
同时并不是与缓存相关的头都会被浏览器接受,协议只是建议,并不一个定非要执行

如果响应头中有 Cache-Control=no-cache 那么浏览器是不会缓存的
但你的响应头并没有,所以应该是有缓存的。
不过即使有缓存,也不一定被浏览器使用。因为浏览器还有其他设置
同时并不是与缓存相关的头都会被浏览器接受,协议只是建议,并不一个定非要执行



谢谢徐版主~
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn