首页 > 解决方案 > 使用 .html 而不是 .php 文件有什么好处吗?

问题描述

如果文件中没有包含 PHP 代码,使用mypage.html而不是有好处吗?mypage.php

我正在使用 Jquery 将文件夹中的所有页面加载到一个元素中,我很好奇,如果仅在文件中使用 HTML 时使用 html 文件而不是 php 文件有任何性能优势。

代码很简单:

$("main").load("/pages/" + hash + ".html");

标签: phphtml

解决方案


Web 服务器通常会根据文件的“扩展名”(即文件名的最后一部分)来决定如何处理文件;有很多变化是可能的,但常见的默认配置是:

  • 以of结尾的文件名将.html直接由 Web 服务器读取,并以 的 形式发送回浏览器,无论其内容如何。Content-Typetext/html
  • 文件名结尾.php将触发 PHP 解释器作为模块、CGI 脚本或 FastCGI 代理执行。然后 PHP 解释器将读取文件,默认发送 a Content-Type,并直接输出不在(或)text/html之间的任何文件内容,就像告诉它一样。<?php<?=?>echo

如果您有一个完全受信任的 HTML 页面,其中没有<?内部实例,那么唯一的区别是 Web 服务器读取它而不是将控制权传递给 PHP 解释器的性能优势很小。确切的开销取决于它的运行方式——CGI 模式非常慢,但很少使用;使用 FastCGI 和 OpCache 的现代配置会增加很少的延迟。

唯一的其他区别是是否有人可以编辑 HTML 文件并意外或恶意地包含将由 PHP 解释的代码。通过将其保存为.html,并检查您的服务器配置,您可以确定此代码不会执行。

请注意,这些细微的差异有时被称为“微优化”,一般建议是仅在您用尽所有其他优化时才查看它们,并且仅根据应用程序的实际基准进行优化。即使数以百万计的人请求此页面,他们每个人也可能只看到此更改的几毫秒改进,并且您的服务器会看到 CPU 使用率的微小减少。但是单个数据库查询可能会花费数百倍的时间,并且实现更有效的查询或有效的缓存会给您带来更多的性能提升。

如果您发现这些文件确实导致了可测量的延迟,那么您应该付出更多的努力来寻找最佳解决方案,而不是只进行微小的更改。由于这些是静态文件,您可以考虑使用单独的 CDN(例如 CloudFlare、Akamai)或将它们托管在专门针对这些文件进行调整的单独服务器上,而不是与您的动态内容争夺资源。


推荐阅读