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

时间:2016-02-12 05:53:00

标签: php html caching nginx

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

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

问题是:

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

1 个答案:

答案 0 :(得分:1)

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

  • Cache-Control
  • Expires
  • Last-Modified

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

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

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