标头名称不区分大小写。

来自 RFC 2616 - “超文本传输协议 -- HTTP/1.1”,第 4.2 节 “消息标头”:

每个标头字段由一个名称后跟冒号 (“:”) 和字段值组成。字段名称不区分大小写。

更新的 RFC 7230 在此部分未列出 RFC 2616 的任何更改。

 

 

276

 

根据RFC 2616,HTTP 标头名称不区分大小写:

4.2:

每个标头字段由名称后跟冒号(“:”)和字段值组成。字段名称不区分大小写。

(字段可能区分大小写,也可能不区分大小写。)

如果您相信主要浏览器都遵守这一点,那么您就已经准备好了。


顺便说一句,与大多数 HTTP 不同,方法(动词)区分大小写:

5.1.1 方法

方法令牌指示要对
请求 URI 标识的资源执行的方法。该方法区分大小写。

   Method         = "OPTIONS"                ; Section 9.2
                  | "GET"                    ; Section 9.3
                  | "HEAD"                   ; Section 9.4
                  | "POST"                   ; Section 9.5
                  | "PUT"                    ; Section 9.6
                  | "DELETE"                 ; Section 9.7
                  | "TRACE"                  ; Section 9.8
                  | "CONNECT"                ; Section 9.9
                  | extension-method
   extension-method = token

太棒了;HTTP/1.1 和 HTTP/2 标头名称都不区分大小写,但HTTP/2 强制标头名称小写。

HTTP/1.1

根据RFC 7230,第 3.2 节

每个标头字段由不区分大小写的字段名称组成,后跟冒号(“:”)、可选的前导空格、字段值和可选的尾随空格。

HTTP/2.0

引用RFC 7540,第 8.1.2 节

正如在 HTTP/1.x 中一样,标头字段名称是 ASCII
字符的字符串,以不区分大小写的方式进行比较。

...但是之后:

但是,标头字段名称在 HTTP/2 中编码之前必须转换为小写。包含大写标头字段名称的请求或响应必须被视为格式错误。


HTTP 标头区分大小写吗?
标签: