accept标头 php,关于php:这些额外的HTTP标头来自何处?

当我只是从php文件中回显某些内容时,我没有故意发送任何标头,但是,当我查看firebug响应时,仍然存在一些默认标头:

响应头:

HTTP/1.1 200 OK

Server: nginx

Date: Thu, 23 Jun 2011 19:33:51 GMT

Content-Type: text/html

Transfer-Encoding: chunked

Connection: keep-alive

Vary: Accept-Encoding

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

Expires: Thu, 19 Nov 1981 08:52:00 GMT

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache

Content-Encoding: gzip

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

我相信这是两者的结合...您可以说" X-Powered-By:PHP / 5.3.6-6?dotdeb.1"来自PHP,而"服务器:nginx"来自NGINX。

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

header("HTTP/1.0 404 Not Found");

?>

gzip标头肯定是来自NGINX,因为它会将输出(html)压缩到浏览器中。通过调用上面的函数,PHP可以"添加"标题。然后,服务器将其与PHP标头组合在一起并提供请求。

PHP头文件是否优先于服务器头文件,这取决于您的服务器。

希望这可以帮助。

多数由nginx设置,例如服务器,日期,内容编码和连接。但是,某些其他标头是由PHP设置的,您可以像这样header("Name: Value");在PHP中添加其他标头

PHP自动设置其中的一些,例如Hello World页面的Content-Type: text/html。 nginx设置与套接字有关的内容,例如Connection: keep-alive。

您将在nginx的配置中找到连接的设置。就内容而言,它是PHP。您可以使用PHP中的header()函数覆盖其中的大部分,并添加自己的自定义标头。

http://php.net/manual/en/function.header.php

例如,如果您打算让PHP发送JSON字符串,则可以将Content-Type设置为application/json。

大多数头由nginx发送。要列出PHP发送的标题(将被使用),请使用功能headers_list:

X-Powered-By标头由php.ini中的Exposure_php指令的值控制:

Decides whether PHP may expose the fact that it is installed on the server (e.g. by adding its signature to the Web server header). It is no security threat in any way, but it makes it possible to determine whether you use PHP on your server or not.

答案中仍然缺少PHP的作用:

某些标头确实是由PHP本身设置的,但是原因并不那么容易找到。这是此处解释的默认会话缓存定界符行为:http://www.php.net/manual/en/function.session-cache-limiter.php

文档中没有的afaik是如何完全关闭它们-只需将一些未定义的值传递给它即可:

开始会话之前,必须先执行此操作。如果您使用的是Zend Framework,则必须在应用程序bootstrap()之前进行设置-否则它将无法正常工作。

您还可以使用header()函数覆盖任何默认服务器头。例如,如果您将PHP header('Server: ')包含在内,则会将Server:标头重置为空白。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值