gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 21:26:22 27 4
gpt4 key购买 nike

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

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

问题是:

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

最佳答案

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

  • 缓存控制
  • 过期
  • 最后修改时间

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

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

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

关于php - Web 浏览器是否以不同方式缓存 HTML 文件和 PHP 生成的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35355713/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com