HTTP标头是什么情况
在博客文章中,我使用以下PHP来设置响应的内容类型:
header('content-type: application/json; charset=utf-8');
我刚刚对该帖子发表评论说, content-type
需要大写, Content-type
。 它是否正确? 它似乎对所有小写字母都适用,并且我认为HTTP标头不区分大小写。 还是只是因为浏览器很好?
从RFC 2616 - “超文本传输协议 - HTTP / 1.1”,第4.2节“消息头”:
每个标题字段由一个名称后跟一个冒号(“:”)和字段值组成。 字段名称不区分大小写。
更新的RFC 7230在这部分没有列出来自RFC 2616的任何更改。
根据RFC 2616,HTTP标头名称不区分大小写:
4.2:
每个标题字段由一个名称后跟一个冒号(“:”)和字段值组成。 字段名称不区分大小写。
(字段值可能区分大小写,也可能不区分大小写。)
如果你信任主要浏览器遵守这一点,那么你就全都设置好了。
顺便说一句,与大多数HTTP不同,方法(动词)区分大小写:
5.1.1方法
方法标记指示要在该方法上执行的方法
由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
tldr; HTTP / 1.1和HTTP / 2标头都不区分大小写。
根据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
链接地址: http://www.djcxy.com/p/12451.html