为什么以及我们必须编写头缓存控件?

时间:2010-01-25 15:58:46

标签: php http-headers

编写这些代码行的意义是什么

header("Cache-Control: no-cache, must-revalidate");
header("Expires: May, 17 May 1983 05:00:00 GMT\n");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

我们必须编写这些代码行? 在我们进行数据库处理或任何php页面的页面上?

4 个答案:

答案 0 :(得分:1)

  

我们必须编写这些代码行吗?在我们进行数据库处理或任何php页面的页面上?

在任何页面上显示您不希望缓存的数据,因为其内容正在快速且不断变化。如果页面不经常更改,则您不希望禁用缓存,因为这会导致页面性能下降并增加服务器负担。缓存是一件好事。只在必要时禁用它。

答案 1 :(得分:1)

header("Cache-Control: no-cache, must-revalidate");

告诉http / 1.1客户端不要访问该页面

header("Expires: May, 17 May 1983 05:00:00 GMT\n");

告诉http / 1.0客户端(不会理解上一行)不要缓存内容

header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

它的礼貌和有用的调试把它放入 - 对前两行之后页面如何处理缓存没有任何影响

  

我们必须编写这些代码行?在我们进行数据库处理或任何php页面的页面上?

您绝不应在产品中加入您不理解的任何代码。正确使用缓存是一个好主意,可以节省很多钱。有一个google for Mark Nottinghams关于缓存初学者的教程。

下进行。

答案 2 :(得分:0)

您应该阅读此article关于SEO和速度优化的内容。

  

缓存是资源的本地副本,因为许多资源不经常更改。当浏览器可以重用本地副本时,它可以节省设置连接的时间和下载时间。使缓存有效工作的关键是HTTP缓存头,它由Web服务器发送,以指定资源有效的时间和上次更改的时间。

如果您网页上的数据变化很快(如股票交易所代码),您应该避免兑现。 但在大多数情况下你应该使用它。您还可以使用Yslow或页面速度插件为firebug测试您的页面。

答案 3 :(得分:0)

您发布的代码阻止客户端缓存HTTP响应。如果您希望每次用户查看时从服务器下载页面的全新副本,则应包括这些行。如果页面上的数据经常更改,这将非常有用。当然,还有带宽成本,因此您必须仔细考虑您网站上的哪些页面可以缓存,哪些页面不可缓存。