【问题标题】:which one among the meta tag, php header and htaccess is a better cache system? [closed]在 meta 标签、php header 和 htaccess 中,哪一个是更好的缓存系统? [关闭]
【发布时间】:2013-01-19 16:17:54
【问题描述】:

用于缓存控制、mod重写和php头标签的html元标签

<filesMatch ".(ico|gif|jpg|jpeg|png|flv|pdf)$">
  Header set Cache-Control "max-age=29030400"
</filesMatch>

<meta http-equiv="Cache-control" content="public">

header('Expires: Thu, 01-Jan-70 00:00:01 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');

哪个缓存系统更好,为什么? php、htaccess 还是 meta 标签?

【问题讨论】:

    标签: php html .htaccess


    【解决方案1】:

    他们都不是。

    只有您的第一个选项实际上会告诉浏览器缓存图像(尽管它与 mod_rewrite 无关)。

    但是,无论如何我都不会为 max-age 烦恼。浏览器缓存图片已经够用了,没必要手动强制

    【讨论】:

    • 实际缓存图像和其他静态资源应该是重点,因为动态内容应该是...动态的(静态资源应该是大量共享数据,并直接由网络服务器)。结合使用远期过期和版本控制 URL 可以很好地控制请求。
    【解决方案2】:

    除了您的示例在每种情况下设置不同的标头和值这一事实之外,无论您使用哪种方法,浏览器中的结果都将是相同的。主要区别在于每个文件可以应用于的文件类型:

    • &lt;meta&gt; 标签只能出现在 HTML 文档中;因此,您不能使用它来控制非 HTML 文件(例如图像)的缓存有效性,并且有可能在不处理 HTML 和发现标记的情况下下载文件。
    • PHP header() 函数可以影响您使用 PHP 动态提供的任何文件。例如,这可能包括纯文本或 XML 文件,但可能不包括您上传到服务器的完整格式的 HTML 文件。您可以通过 PHP 传递静态文件,包括图像,但这是一种低效的服务方式。
    • Apache Header 指令(不是mod_rewrite 的一部分)可以应用于 Apache 正在服务的任何文件,无论它是否是动态生成的。这可以包括图像、静态 HTML、CSS 和 JS,以及您使用 PHP 生成的任何内容。

    Apache 指令的唯一缺点是,根据您的设置以及您对 Apache 配置规则的经验,为不同的数据位维护更复杂的规则可能会更复杂。因此,对于已经使用 PHP 处理的数据,如果您想要更细粒度的控制,您可能需要使用 header() 函数构建一些东西。

    【讨论】:

      猜你喜欢
      • 2011-01-04
      • 2010-11-23
      • 2010-11-23
      • 2011-03-10
      • 2018-10-23
      • 2011-08-30
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多