为什么某些 http 标头中有一个冒号?

为什么某些 http 标头中有一个冒号?

在此处输入图片描述

我正在使用Chrome,不知道为什么请求头中有些头有冒号前缀如“:method”、“:path”,而其他一些头中没有冒号前缀,为头添加冒号前缀有什么意义,它有特殊含义吗?

答案1

这些是 HTTP/2 伪标头,适用于 HTTP/2 流中的请求和响应。HTTP/2 从每个不同的原始端点到服务器创建单个持久连接。该连接向端点传输多个请求和响应;这些请求和响应被解析为“帧”并以“流”的形式传输。HTTP/2 可以同时交错来自多个请求和响应流的帧,以获得巨大的性能优势。http/2 简介

伪标头适用于流;另一组标头适用于连接本身。为请求定义了四个伪标头::method、:scheme、:authority 和 :path。不允许使用其他标头。这四个标头必须包含在每个请求标头块中,并且必须位于任何其他标头之前:

“所有伪报头字段必须出现在常规报头字段之前的报头块中。任何包含出现在常规报头字段之后的报头块中的伪报头字段的请求或响应都必须被视为格式错误(第 8.1.2.6 节)。”http2 规范

来源:https://stackoverflow.com/a/59776597作者:HieroB

相关内容