sec*_*age 6 browser google-chrome http
我使用的是Chrome,不知道为什么请求头中的某些标头有冒号前缀,例如“:method”,“:path”,而其他一些标头中没有冒号前缀,添加冒号有什么意义标题的前缀,有什么特殊含义吗?
这些是 HTTP/2 伪标头,适用于 HTTP/2 流中的请求和响应。HTTP/2 创建从每个不同的源端点到服务器的单个持久连接。该连接向端点传输多个请求和来自端点的响应;这些被解析为“帧”并作为“流”传输。HTTP/2 可以同时交错来自多个请求和响应流的帧,以获得巨大的性能优势。http/2 简介
伪标头适用于流;一组不同的标头适用于连接本身。为请求定义了四个伪标头::method、:scheme、:authority 和:path。不允许有其他人。这 4 个必须包含在每个请求标头块中,并且它们必须位于任何其他标头之前:
“所有伪标头字段必须出现在常规标头字段之前的标头块中。任何包含出现在常规标头字段之后的标头块中的伪标头字段的请求或响应必须被视为格式错误(第 8.1.2.6 节) ”。http2规范
来源: https: //stackoverflow.com/a/59776597,作者:HieroB