任何人都可以解释这一点吗?header(“Expires:0”)是做什么用的?
回答
通常用于防止缓存。然而,该文件可能会为您提供更好的解释:
引述:
不要使用过期= 0,以防止 缓存。 Expires头由 远程服务器发送,并由Portal Server通过 发送给浏览器。 除非所有三台机器上的时间同步,否则Expires = 0标头可能会错误地返回缓存的内容。 要解决此问题,请将Expires 标头设置为明确过去的固定日期,即 。
恐怕这是不正确的。请参阅http://stackoverflow.com/questions/11357430/http-expires-header-values-0-and-1以获得更好的解释。 – user123444555621 2012-12-18 05:02:47
设置缓存过期标题。这告诉浏览器允许它们在被重新获取之前缓存多久。
我相信0意味着它永不过期,这可能会导致各种问题。我相信单位是秒。另一方面可能意味着它不能被缓存。
缓存如何工作(除其他外)是您向浏览器发送一个标题,告诉它页面内容何时到期。这意味着如果您发送如下头文件:
header("Expires Sunday June 10th 2011"); // not correct timestamp
内容在该日期之前不会“过期”。然后浏览器可以使用缓存技术从浏览器本地提供页面,而不必再次下载所有内容。
当您将过期设置为0时,它可以确保下次浏览器加载页面时,它会下载内容,从而使您获得第二个数据。但是,正如你从其他答案中看到的那样,你不应该发送0来防止缓存,而是发送一个过去的日期。
一些浏览器不断重新加载样式表,JavaScript和其他seldomnly修改文件,加载一个网站时,这会导致讨厌的延迟(Safari浏览器在Mac OS就是一个例子)
告诉浏览器文件保存在缓存中的至少有一天,你可以使用 这有一个很好的副作用告诉其他浏览器,从不刷新页面,至少每天刷新一次。
“过期:0”表示缓存将始终将此条目视为陈旧(即,在将其返回给客户端之前,它需要先对其进行重新验证)。根据HTTP/1.1 RFC(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21)中的Expires标头的定义: “HTTP/1.1客户端和高速缓存必须像过去一样处理其他无效的日期格式,特别是包括值”0“(即,“已经过期”)。“
- 1. Jersey Expires Header not working
- 2. X-Backside-Transport Header做什么?
- 3. mod_cache返回“broken expires header”
- 4. 用Apache/nginx重写规则和Expires-Header
- 5. 这个“Image Fetcher 0”是做什么的?
- 6. “#define assert(exp)((void)0)”是做什么的?
- 7. keySet()。toArray(new Double [0])是做什么的?
- 8. 在DotNetNuke中设置HTTP Expires Header?
- 9. -0?什么是-0?
- 10. `sort +0 -1`做什么?
- 11. Java中'0'做什么?
- 12. 这是什么意思/做什么? “value <0?-value:value;”
- 13. “sudo ./xampp-linux-x64-5.6.3-0-installer.run”是做什么用的?
- 14. 什么是decltype(0 + 0)?
- 15. 这是做什么用的?
- 16. GL_COLOR_ATTACHMENT是做什么用的?
- 17. cm:subscribable是做什么用的?
- 18. org.apache.myfaces.MARK_INITIAL_STATE_WHEN_APPLY_BUILD_VIEW是做什么用的?
- 19. 这是做什么用的?
- 20. string.split是做什么用的?
- 21. 什么是java.lang.ArrayIndexOutOfBoundsException:0?
- 22. 什么是(__ASSERT_VOID_CAST(0))?
- 23. 为什么使用`javascript:void(0)`而不是`javascript:`作为href做什么占位符?
- 24. 什么“?”做?什么是__FILE__?
- 25. 什么是setDetailItem:做什么?
- 26. Python中的[0] * x语法是做什么的?
- 27. 什么是RabbitMQ的“x-expires”论证的ZeroMQ eqivillent?
- 28. 命令“cat/tmp/dir /:0”是做什么的?
- 29. DAO:db.OpenRecordSet(“Table1”,dbOpenTable,0,dbPessimistic) - 第三个参数是做什么的?
- 30. 这个宏是做什么的? __success(返回> = 0)长
它可能是为了告诉浏览器/客户端缓存页面的规则。但它基于HTTP 1.0。在HTTP 1.1中引入了一些更健壮的缓存控制头,这些头也应该被设置。 – Asaph 2010-12-23 05:54:03