HTTP标头自动设置

时间:2013-01-17 20:30:06

标签: apache http

我开始正确了解http。

我在灯堆工作。

在命令行上,我正在请求一个本地页面,该页面将与apache一起提供,以查看返回的标题。

curl -i local.testsite

我请求的页面没有内容,我没有设置任何标题但是响应中已经发送了很多标题,例如:

HTTP/1.1 200 OK
Date: Thu, 17 Jan 2013 20:28:52 GMT
Server: Apache/2.2.22 (Ubuntu)
X-Powered-By: PHP/5.3.10-1ubuntu3.4
Vary: Accept-Encoding
Content-Length: 0
Content-Type: text/html

所以,如果我没有设置这些,那么apache会自动设置吗?

2 个答案:

答案 0 :(得分:3)

有些是由PHP设置的:

  • X-Powered-By标头由expose_php INI设置设置。
  • Content-Type标头由default_mimetype INI设置设置。

其他人由Apache设定:

  • Server标头由ServerSignature指令设置。
  • Vary: Accept-Encoding标头通常在启用mod_deflate时发送。

DateContent-Length不可配置,因为它们是HTTP规范的一部分。 Dateincluded as a MUST(某些条件除外)和Content-Length as a SHOULD

另请参阅How to remove date header from apache?How to disable the Content-Length response header with Apache?

答案 1 :(得分:3)

是Apache默认设置它们。顺便说一句,如果你只关心标题,你应该使用

curl -I local.testsite

-I仅返回标题(HTTP HEAD请求),这样即使您在页面上有内容,也只能获得标题。