php http header

标签 php html http caching

想知道一些事情。

http header 是否缓存页面上的所有内容。如果我有一些 javascript 文件,它也会为后续页面缓存它们,还是更复杂。示例:如果我在 page1.php 上缓存所有 javascript 文件,这些文件是否仍会缓存在 page2.php 上,或者它是否仅对 page1.php 缓存 page1.php 的文件。

另一个问题是...

我应该废弃 http header 并只使用 APC 吗?如果是的话它有多复杂,或者实际上是否可以同时使用两者(询问因为 yslow 说使用 http header )。感谢您提供任何信息,我一直在阅读,但这些问题并没有在文本中得到真正的回答。

最佳答案

如果您只是提供常规 .js,您的网络服务器将为您负责缓存文件。 .js文件将在第一次从您的一个页面链接时下载。当用户重新加载该页面,或完全转到另一个使用相同 .js 的页面时文件,浏览器将使用缓存的副本。当您通过 <script src="code.js"></script> 加载脚本时,这适用标签。

那是如果你有独立的,独立的 .js文件。另一方面,如果您的 JavaScript 代码隐藏在您的 PHP 脚本生成的 HTML 中,例如:

<script type="text/javascript">
  alert("Hello world!");
</script>

...这些脚本将在每次您的 .php 时重新生成文件被加载。如果您希望缓存 PHP 脚本的输出,那么您将需要通过从 PHP 脚本设置适当的 HTTP header 来自行管理缓存,即通过 Cache-Control header 系列或 If-Modified-SinceETag标题样式。

不过,缓存和 PHP 文件通常不会放在一起,因为您通常会生成根据用户输入、一天中的时间、cookie 等而变化的动态内容。由于缓存纯粹是一种优化,因此一般编程警告反对过早的优化适用。如果你弄乱了你的 HTTP header ,你可能会给自己带来很多麻烦(相信我!)。根据经验,您可能只让 Apache 或 IIS 处理像这样的高级 HTTP 事务,并且只有在您有特定需要的情况下才处理 HTTP header 。

关于php http header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1030482/

相关文章:

c - HTTP 服务器编程

javascript - 无法在选择的更改时更新表字段

javascript - 识别 Service Worker 缓存中的陈旧缓存条目

php - Socket php 服务器不显示从 android 客户端发送的消息

php - 如果我输入“,则帖子不会提交”

html - 使用文本溢出 : ellipses in an HTML table

javascript - html下拉框事件?

http - 如何创建 400 错误请求以便我可以验证功能

php - 如何将文本区域值发送到数据库中

php - 我怎样才能简化这个数组?