1

我开始正确地了解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会自动设置这些吗?

4

2 回答 2

3

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

curl -I local.testsite

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

于 2013-01-17T20:33:14.670 回答
3

有些是由 PHP 设置的:

  • X-Powered-By头由expose_phpINI 设置设置。
  • Content-Type头由default_mimetypeINI 设置设置。

其他由 Apache 设置:

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

Date并且Content-Length不可配置,因为它们是 HTTP 规范的一部分。包含为 MUSTDate(在某些情况下除外)和SHOULDContent-Length

另请参阅如何从 apache 中删除日期标头?以及如何使用 Apache 禁用 Content-Length 响应标头?.

于 2013-01-17T20:32:44.680 回答