有人能解释一下这个吗?
header("Expires Sunday June 10th 2011"); // not correct timestamp
内容在该日期之前不会“过期”。然后,浏览器可以使用缓存技术从您的浏览器本地提供页面,而无需再次下载所有内容。
当您将到期时间设置为0时,它确保下一次浏览器加载页面时,它将下载内容,从而为您提供最新数据。然而,正如你从其他答案中看到的,你不应该发送0来防止缓存,而是发送一个过去的日期。
Expires: 0" 的意思是缓存将始终将此条目视为过期(即在返回给客户端之前需要重新验证它)。
根据HTTP/1.1 RFC中Expires头的定义(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21): "HTTP/1.1客户端和缓存必须将其他无效日期格式,特别是包括值“0”,视为过去时(即“已经过期”)。”
"设置缓存过期头。这告诉浏览器在必须重新获取之前可以将其缓存多长时间。
我相信0表示它永远不会过期,这可能会引起各种问题。我相信单位是秒。另一方面,它可能意味着它不能被缓存。
一些浏览器总是重新加载样式表、JavaScript 和其他很少更改的文件,这会在加载网站时造成不愉快的延迟(例如 MacOS 上的 Safari)
为了告诉浏览器至少将文件缓存一天,您可以使用