我开始正确了解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会自动设置吗?
答案 0 :(得分:3)
有些是由PHP设置的:
X-Powered-By
标头由expose_php
INI设置设置。Content-Type
标头由default_mimetype
INI设置设置。其他人由Apache设定:
Server
标头由ServerSignature
指令设置。Vary: Accept-Encoding
标头通常在启用mod_deflate
时发送。 Date
和Content-Length
不可配置,因为它们是HTTP规范的一部分。 Date
为included 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请求),这样即使您在页面上有内容,也只能获得标题。