php - 使用 .html 而不是 .php 文件有什么好处吗?
问题描述
如果文件中没有包含 PHP 代码,使用mypage.html
而不是有好处吗?mypage.php
我正在使用 Jquery 将文件夹中的所有页面加载到一个元素中,我很好奇,如果仅在文件中使用 HTML 时使用 html 文件而不是 php 文件有任何性能优势。
代码很简单:
$("main").load("/pages/" + hash + ".html");
解决方案
Web 服务器通常会根据文件的“扩展名”(即文件名的最后一部分)来决定如何处理文件;有很多变化是可能的,但常见的默认配置是:
- 以of结尾的文件名将
.html
直接由 Web 服务器读取,并以 的 形式发送回浏览器,无论其内容如何。Content-Type
text/html
- 文件名结尾
.php
将触发 PHP 解释器作为模块、CGI 脚本或 FastCGI 代理执行。然后 PHP 解释器将读取文件,默认发送 aContent-Type
,并直接输出不在(或)text/html
之间的任何文件内容,就像告诉它一样。<?php
<?=
?>
echo
如果您有一个完全受信任的 HTML 页面,其中没有<?
内部实例,那么唯一的区别是 Web 服务器读取它而不是将控制权传递给 PHP 解释器的性能优势很小。确切的开销取决于它的运行方式——CGI 模式非常慢,但很少使用;使用 FastCGI 和 OpCache 的现代配置会增加很少的延迟。
唯一的其他区别是是否有人可以编辑 HTML 文件并意外或恶意地包含将由 PHP 解释的代码。通过将其保存为.html
,并检查您的服务器配置,您可以确定此代码不会执行。
请注意,这些细微的差异有时被称为“微优化”,一般建议是仅在您用尽所有其他优化时才查看它们,并且仅根据应用程序的实际基准进行优化。即使数以百万计的人请求此页面,他们每个人也可能只看到此更改的几毫秒改进,并且您的服务器会看到 CPU 使用率的微小减少。但是单个数据库查询可能会花费数百倍的时间,并且实现更有效的查询或有效的缓存会给您带来更多的性能提升。
如果您发现这些文件确实导致了可测量的延迟,那么您应该付出更多的努力来寻找最佳解决方案,而不是只进行微小的更改。由于这些是静态文件,您可以考虑使用单独的 CDN(例如 CloudFlare、Akamai)或将它们托管在专门针对这些文件进行调整的单独服务器上,而不是与您的动态内容争夺资源。
推荐阅读
- javascript - 使用 Express 发出 POST 请求时出错
- sql - 有没有办法将复合字段用于“不存在的地方”
- spring - Spring 的 DeferredResult 不适用于 Spring-ws (SOAP)
- go - 使用 WithBlock() 选项创建 gRPC 客户端连接到异步启动的 gRPC 服务器会无限期地阻塞?
- mongodb - 默认情况下,MongoDB 是否对多个字段进行复合索引索引 _id 列?
- regex - 正则表达式匹配任何子字符串
- python - 如何获取内存中的对象?蟒蛇指针
- php - MSSQL 查询在 X 行后中断
- javascript - 使用 Angular 指令使用所需数量的卡片填充 Bootstrap 卡片组
- excel - COUNTIF 函数不计算具有特定文本值的单元格