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
相关文章
相关标签/搜索