【问题标题】:Do web browsers cache HTML files and PHP generated files differently?Web 浏览器缓存 HTML 文件和 PHP 生成的文件是否不同?
【发布时间】:2016-02-12 14:14:31
【问题描述】:

我使用 Nginx 作为 Web 服务器和 Firefox 来查看响应标头。为了测试,我在服务器上有两个内容相同的文件:test.html 和 test.php。在 Nginx 配置文件中,expires 指令在服务器上下文中设置为 30d。

在网络浏览器中多次访问 test.html 时,浏览器首先获得 304 Not Modified 响应并提供缓存在浏览器中的副本。但是,在访问 test.php 时,浏览器总是向服务器发出完整的请求(200 OK),而不使用浏览器缓存。

问题是:

  1. 行为(即对 HTML 和 PHP 生成的文件的不同处理)是否正常?
  2. 可以做些什么来使 Web 浏览器以相同的方式缓存 HTML 和 PHP 生成的文件?

【问题讨论】:

    标签: php html caching nginx


    【解决方案1】:

    nginx为静态文件设置响应头,包含在头中的有:

    • Cache-Control
    • Expires
    • Last-Modified

    Cache-Control 告诉客户端(至少)如何缓存内容。

    Expires 和 Last-Modified 允许客户端确定何时获取新内容。

    您必须做的是确保 PHP 发送相同的标头,或者如果不完全相同,则发送合理的标头;现在您知道哪些标头很重要,在浏览器中检查请求将告诉您如何实现这一点。

    【讨论】:

      猜你喜欢
      • 2012-08-23
      • 2017-09-30
      • 1970-01-01
      • 2021-07-29
      • 2011-09-12
      • 2014-07-29
      • 2019-09-21
      • 2010-10-02
      • 2017-07-30
      相关资源
      最近更新 更多