Apache2:更改响应标题
我在我的Ubuntu 12.04系统apache2上运行,并使用响应头文件。 我想改变http响应头的行为,尤其是Content-Length头。 我已经尝试在IfModule mod_headers.c部分的apache2.conf中添加以下行:
Header set Static-Header "Static Content with nonsense"
Header set Content-Length "1338"
如果我运行curl -I本地主机,我得到预期的标题字段Content-Length:1338(curl -I执行HEAD请求)。
如果我运行curl -i,则正确计算Content-Length。
在RFC2616中,第9.4节描述了HEAD请求应该与为响应GET请求而发送的信息相同。
有人能解释我这种行为吗?!
当Apache2实际提供内容时,它总是从头计算内容长度。 如果使用PHP更改该标题,则会遇到同样的行为。 这对于确保Content-Length与应用服务器之后发送的内容的长度(例如压缩(如果mod_deflate处于活动状态))相匹配是非常必要的。
因此,在发送内容的任何请求中,您对该标题的更改将被取消。 但是,由于Apache甚至没有在头部请求中查看内容(只有它是元数据),所以它不计算内容长度。 这是有效的,因为HEAD请求没有任何主体,所以内容长度总是为零。
因此,您应该:
a)首先不要修改内容长度标题
b)不发送一个HEAD请求
上一篇: Apache2: Change response headers
下一篇: Apache2: 'AH01630: client denied by server configuration'