Tomcat 8.5:HTTP 响应中缺少 Header

Tomcat 8.5: Header missing in the HTTP response

使用 tomcat8.5 ...我没有像使用 tomcat8.0 那样得到完整的响应。

这两个版本在 HTTP 方面存在差异 请求还是响应?


PUT tomcat8.0 响应:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Transfer-Encoding: chunked
Date: Tue, 23 Aug 2016 08:59:48 GMT

PUT tomcat8.5 响应:

HTTP/1.1 200                                
Transfer-Encoding: chunked
Date: Tue, 23 Aug 2016 09:05:20 GMT

我正在使用 C++ soket 方法发送请求。

好吧,显然实际响应的内容有所不同。然而,Server: header 就 HTTP 1.1 而言没有任何意义,它在协议中没有特殊含义。

从技术上讲,这两个响应是相同的,并且携带相同的响应信息:这是一个 chunked-encoded 响应。故事结束。

如果您正在编写使用 HTTP 的客户端,您应该熟悉 RFC 2616,这解释了这一点。

Tomcat 8.5 不再支持原因短语。见 migration guide:

HTTP connector changes

HTTP reason phrases have been removed by default, but can be re-enabled using the sendReasonPhrase configuration attribute.

您可以在 Connector configuration 中重新启用它,但它会在 Tomcat 9 后消失。

<Connector ... sendReasonPhrase="true"> ... </Connector>