“Firefox Developer Tools”中没有状态代码的原始标题> “网络”,这是一个错误吗?

时间:2017-11-23 14:11:31

标签: firefox http-headers firefox-developer-tools network-monitoring

编辑:后来似乎有些浏览器将“响应标头”一词与“响应消息(没有响应主体)”混淆。这就是问题出错的地方。浏览器只是不正确。与此同时,我回答了自己的问题。

在Firefox中,您可以通过“Firefox开发者工具”>检查“原始标题”。 “网络”。

原始响应标头的示例:

Date: Thu, 23 Nov 2017 12:43:21 GMT
Server: Apache/2.4.17 (Unix) OpenSSL/1.0.1e-fips PHP/5.6.16
Connection: Keep-Alive
Keep-Alive: timeout=1, max=100
Cache-Control: max-age=9, public
Vary: User-Agent

但我想念(例如):“HTTP / 1.1 304 Not Modified”。 Firefox显示其他地方“304 Not Modified”,但不显示RAW。

所以他们让我觉得我有原始形式的响应头,但实际上它只是响应头的一部分,不包括状态代码。这对人们来说真的很困惑。 在我看来,在那个地方添加“状态代码”会更有意义。现在它不合逻辑。

这是一个错误还是我必须看到它?

1 个答案:

答案 0 :(得分:-1)

同时我可以回答我自己的问题。

此时,某些浏览器使用的术语错误。他们混淆了“响应标题”和“响应消息(没有消息正文)”。所以这就是为什么我在问这个问题时感到困惑,这就是问题所在。

请参阅:https://tools.ietf.org/html/rfc7230#page-8(2.1。客户端/服务器消息传递)

  

服务器通过发送一个或多个HTTP来响应客户端的请求    响应消息,每个消息都以包含的状态行开头    协议版本,成功或错误代码以及文本原因    短语(第3.1.2节),可能后跟包含的标题字段    服务器信息,资源元数据和表示元数据    (第3.2节),一个空行表示标题的结尾    section,最后是一个包含有效负载主体的消息体(如果    任何,第3.3节。

所以换句话说。

回应消息:

Status line (ending with CRLF, so 2 extra Bytes)
Header field 1, in case of (ending with CRLF, so 2 extra Bytes)
Header field 2, in case of (ending with CRLF, so 2 extra Bytes)
Header field 3, et cetera (ending with CRLF, so 2 extra Bytes)
Empty line to indicate the end of the header section (CRLF, so 2 extra Bytes)
Message body / Response body, if any

响应标题/响应标题:

Header field 1 in case of (ending with CRLF, so 2 extra Bytes)
Header field 2 in case of (ending with CRLF, so 2 extra Bytes)
Header field 3 et cetera (ending with CRLF, so 2 extra Bytes)

因此,正式的状态行不是“响应标题”的一部分,而只是“响应消息”的一部分。

Firefox 例如在“Firefox开发者工具”>中显示“响应标题”的大小。 “网络”>点击行>标题选项卡。

此大小还包括i.a的大小。状态线。原始响应头的大小必须与此大小相对应,但目前情况并非如此。所以或者他们需要更改大小,或者他们必须在(原始)响应头中额外包含“status-line”+“empty line”,并且他们必须给它另一个名称(例如:响应消息 - 消息体)。

Chrome 也出错了。例如,请参阅:https://developers.google.com/web/tools/chrome-devtools/network-performance/reference#requests

他们在那里说:

  

尺寸。响应标头加上响应主体的总大小,由服务器提供。

但它们实际上意味着不同的东西(也根据实践中的尺寸值)。他们实际上是这个意思:

  

尺寸。响应消息的组合大小,没有消息正文(而不是响应标头)加上响应主体,由服务器提供。

实际上换句话说:

  

尺寸。响应消息的组合大小,由服务器提供。

这就是我的原始问题来自哪里。显然这对于​​浏览器来说是一个困难的主题,因为我在2个浏览器中进行了测试,并且两者都在犯错误。

因此,如果人们认为状态行是响应标题的一部分,那就不奇怪了。