问题:这些额外的 HTTP 头是从哪里来的?

但是,当我只是从 php 文件中回显某些内容时,我不会故意发送任何标头 - 当我查看 firebug 响应时,无论如何都会存在一些默认标头:

响应标头:

HTTP/1.1 200 正常

服务器:nginx

日期:Word,2011 年 6 月 23 日 19:33:51 GMT

内容类型:text/html

传输编码:分块

连接:保持活动

变化:接受编码

X-Powered-By: PHP/5.3.6-6~dotdeb.1

到期:1981 年 11 月 19 日星期四 08:52:00 GMT

Cache-Control: no-store, no-cache, must-revalidate, post-checku003d0, pre-checku003d0

编译指示:无缓存

内容编码:gzip

我很好奇 - 这些默认响应标头是由服务器(nginx)还是由 PHP 设置的?

解答

我相信它是两者的结合......你可以说“X-Powered-By: PHP/5.3.6-6~dotdeb.1”来自 PHP,“Server: nginx”来自 NGINX。

您可以按如下方式更改 PHP 中的标头:

<?php
    header("HTTP/1.0 404 Not Found");
?>

gzip 标头绝对来自 NGINX,因为它将输出 (html) 压缩到浏览器。 PHP 可以通过调用上述函数来“添加”到标题中。然后服务器将它与 PHP 标头结合起来并为请求提供服务。

PHP 标头是否优先于服务器标头取决于您的服务器。

希望这可以帮助。

Logo

开发云社区提供前沿行业资讯和优质的学习知识,同时提供优质稳定、价格优惠的云主机、数据库、网络、云储存等云服务产品

更多推荐