【问题标题】:authority http header - in chrome dev tools授权 http 标头 - 在 chrome 开发工具中
【发布时间】:2020-08-25 19:55:51
【问题描述】:

chrome 开发工具 - 显示一些带有前导 : 的 http 标头(不知道为什么它对某些而不是其他)。

其中之一是 http 标头 authority,它显示为:

authority:api.somedomain.com

但是,这在 Wikipedia 上的 http 标头列表中列出。这是一个新的 HTTP2 标头还是可以在标头中定义任何新的请求字段 - 或者这些是固定的吗?

【问题讨论】:

    标签: http google-chrome-devtools


    【解决方案1】:

    这些是在新的 HTTP/2 中定义的Pseudo-Header Fields

    HTTP/1.x 使用消息start-line 来表示目标URI、请求方法、响应代码等。所有HTTP 消息要么是从客户端到服务器的请求,要么是从服务器到客户端的响应。这两种类型的区别在于它们的start-line,即用于请求的request-line,或用于响应的status-line

    request-line   = method SP request-target SP HTTP-version CRLF
    
    status-line = HTTP-version SP status-code SP reason-phrase CRLF
    

    您可以在RFC7230 section 3.1阅读更多内容

    但 HTTP/2 使用以 ':' 字符 (ASCII 0x3a) 开头的特殊伪标头字段来实现此目的。这些伪标头是严格定义的。有请求伪标头字段和响应伪标头字段。请求伪头字段为:method:scheme:authority:path

    The ":authority" pseudo-header field includes the authority portion of the target URI.
    
    authority   = [ userinfo "@" ] host [ ":" port ]
    

    RFC7540阅读更多内容。

    在 HTTP/1.x 中,它相当于 host 头字段。在 RFC7540 中,提到了一些向后兼容 HTTP/1.x 的措施

    为确保 HTTP/1.1 请求行可以准确再现,当从具有源或星号形式的请求目标的 HTTP/1.1 请求转换时,必须省略此伪标头字段。直接生成 HTTP/2 请求的客户端应该使用 ":authority" 伪头字段而不是 Host 头字段。如果请求中不存在 Host 头字段,则将 HTTP/2 请求转换为 HTTP/1.1 的中介必须通过复制“:authority”伪头字段的值来创建主机头字段。

    【讨论】:

      猜你喜欢
      • 2011-06-08
      • 1970-01-01
      • 2017-01-17
      • 2016-07-12
      • 1970-01-01
      • 2016-03-26
      • 2015-05-30
      • 2016-04-24
      相关资源
      最近更新 更多