Apache使用http/1.0响应,即使请求是http/1.1

Apache使用http/1.0响应,即使请求是http/1.1,apache,http,proxy,mod-proxy,Apache,Http,Proxy,Mod Proxy,我将ApacheHTTPServerVersion2.4配置为后端服务器的代理(实际上是Glassfish应用服务器)。MPM是工作者 配置通常是默认的。代理服务器的配置 ProxyPass /context/ http://backend.com:8080/context/ keepalive=On ttl=25 timeout=300 max=50 ProxyPassReverse /context/ http://backend.com:8080/context/ 我在浏览器中打开页面,

我将ApacheHTTPServerVersion2.4配置为后端服务器的代理(实际上是Glassfish应用服务器)。MPM是
工作者

配置通常是默认的。代理服务器的配置

ProxyPass /context/ http://backend.com:8080/context/ keepalive=On ttl=25 timeout=300 max=50
ProxyPassReverse /context/ http://backend.com:8080/context/
我在浏览器中打开页面,它发送
GEThttp://example.com/context HTTP/1.1
到Apache。Apache返回带有
连接的响应
HTTP/1.0 200 OK
:close
头。但实际的后端服务器响应包含
HTTP/1.1200ok


为什么Apache将代理响应从1.1降级到1.0?

force no vary
是原因。文件说:

强制不更改这会导致从列表中删除任何更改字段 将响应头发送回客户端之前的响应头。一些客户 不要正确解释这个字段;设置此变量可以工作 围绕这个问题。设置此变量也意味着 力-反应-1.0

force-response-1.0这将强制对客户端进行HTTP/1.0响应 HTTP/1.0请求。它最初是由于 AOL代理的问题。某些HTTP/1.0客户端可能无法正常工作 当给出HTTP/1.1响应时正确,这可用于 与他们互操作


在我的例子中,我们使用HTTPFoundation的响应对象编写PHP。它默认为HTTP/1.0