任何人都能解释一下吗?
答案 0 :(得分:6)
通常用于防止缓存。但是,本文档可能会为您提供更好的解释:
引用:
永远不要使用Expires = 0来防止 缓存。 Expires标头由发送 远程服务器并通过 通过Portal Server访问浏览器。 除非在所有三台机器上的时间 同步,Expires = 0标头 可能会错误地返回缓存的内容。 要解决此问题,请设置Expires 标题为固定日期 绝对是过去的。
答案 1 :(得分:5)
缓存的工作原理(除其他外)是您向浏览器发送标题,告诉它何时页面内容将过期。这意味着如果您发送标题如下:
header("Expires Sunday June 10th 2011"); // not correct timestamp
该内容在该日期之前不会“过期”。然后,浏览器可以使用缓存技术从浏览器本地提供页面,而不必再次下载所有内容。
当您将到期时间设置为0时,它会确保下次浏览器加载页面时,它会下载内容,从而为您提供第二个数据。但是,正如您可能从其他答案中看到的那样,您不应该发送0来阻止缓存,而是发送过去的日期。
答案 2 :(得分:3)
“Expires:0”表示缓存总是将此条目视为陈旧(即,在将其返回给客户端之前需要先重新验证它)。
根据HTTP / 1.1 RFC(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21)中Expires标头的定义: “HTTP / 1.1客户端和缓存必须像过去那样处理其他无效日期格式,特别是包括值”0“(即”已经过期“)。”
答案 3 :(得分:0)
设置缓存过期标头。这告诉浏览器在必须重新获取它之前允许它们保持缓存多长时间。
我相信0意味着它永不过期,可能导致各种问题。我相信单位是秒。另一方面,它可能意味着它无法缓存。
答案 4 :(得分:-1)
某些浏览器总是重新加载样式表,javascripts和其他很少变化的文件,这会在加载网站时造成令人讨厌的延迟(MacOS上的Safari就是一个例子)
告诉浏览器将文件保存在缓存中至少一天,你可以使用 这有很好的副作用,告诉其他浏览器永远不会刷新页面,每天至少刷新一次。