Web 浏览器是否以不同的方式缓存 HTML 文件和 PHP 生成的文件


Do web browsers cache HTML files and PHP generated files differently?

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

在 Web 浏览器中多次访问 test.html 时,浏览器首先获取 304 未修改响应,并提供缓存在浏览器中的副本。但是,在访问 test.php 时,浏览器始终向服务器发出完整请求 (200 OK),而无需使用浏览器缓存。

问题是:

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

>nginx设置静态文件的响应标头,标头中包含:

  • Cache-Control
  • Expires
  • Last-Modified

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

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

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