HTTP標頭區分大小寫嗎?

在博客文章中,我使用如下PHP來設置響應的內容類型: html

header('content-type: application/json; charset=utf-8');

我剛剛對該帖子發表評論說content-type須要大寫, Content-type 。 它是否正確? 它彷佛適用於全部小寫的我,我假設HTTP標題不區分大小寫。 或者它只是工做,由於瀏覽器很好? json


#1樓

header('Content-type: image/png')不支持PHP 5.5服務IE11,由於圖像流顯示爲文本 瀏覽器

header('Content-Type: image/png')起做用,如圖像中顯示的圖像 app

惟一的區別是資本'T'。 spa


#2樓

HTTP的RFC(如上所述)規定標題不區分大小寫,可是你會發現,對於某些瀏覽器(我在看你,IE),每一個單詞的大寫最好: code

Location: http://stackoverflow.com

Content-Type: text/plain

VS htm

location: http://stackoverflow.com

content-type: text/plain

這不是「HTTP」標準,而是另外一個瀏覽器怪癖,咱們做爲開發人員,必須考慮。 token


#3樓

tldr; HTTP / 1.1和HTTP / 2標頭都不區分大小寫。 utf-8

根據RFC 7230 (HTTP / 1.1): 資源

每一個頭字段由不區分大小寫的字段名稱後跟冒號(「:」),可選的前導空格,字段值和可選的尾隨空格組成。

https://tools.ietf.org/html/rfc7230#section-3.2

此外, RFC 7540 (HTTP / 2):

就像在HTTP / 1.x中同樣,頭字段名稱是ASCII的字符串
以不區分大小寫的方式比較的字符。

https://tools.ietf.org/html/rfc7540#section-8.1.2


#4樓

標題名稱不區分大小寫。

RFC 2616 - 「超文本傳輸​​協議 - HTTP / 1.1」第4.2節「消息頭」

每一個標題字段由一個名稱後跟一個冒號(「:」)和字段值組成。 字段名稱區分敏感

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


#5樓

根據RFC 2616 ,HTTP標頭名稱不區分大小寫:

4.2:

每一個標題字段由一個名稱後跟一個冒號(「:」)和字段值組成。 字段名稱不區分大小寫。

(字段可能區分大小寫,也可能不區分大小寫。)

若是您信任主流瀏覽器遵照此規則,那麼您已經完成了全部設置。


順便說一句,不像大多數HTTP的,方法(動詞) 區分大小寫:

5.1.1方法

Method標記表示要對其執行的方法
Request-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
相關文章
相關標籤/搜索