在一篇博客文章中,我使用下面的PHP来设置响应的内容类型:
header('content-type: application/json; charset=utf-8');
我刚刚在那篇文章上得到了一条评论,说content-type需要大写,content-type。这对吗?它似乎适用于所有小写的情况,并且我假设HTTP头是不区分大小写的。或者仅仅是因为浏览器很好?
在一篇博客文章中,我使用下面的PHP来设置响应的内容类型:
header('content-type: application/json; charset=utf-8');
我刚刚在那篇文章上得到了一条评论,说content-type需要大写,content-type。这对吗?它似乎适用于所有小写的情况,并且我假设HTTP头是不区分大小写的。或者仅仅是因为浏览器很好?
当前回答
头(“内容类型:图像/ png”) 不工作与PHP 5.5服务的IE11,因为在图像流显示为文本
头(“内容类型:图像/ png”) 工作,就像在图像中出现的图像一样
唯一不同的是大写的“T”。
其他回答
头(“内容类型:图像/ png”) 不工作与PHP 5.5服务的IE11,因为在图像流显示为文本
头(“内容类型:图像/ png”) 工作,就像在图像中出现的图像一样
唯一不同的是大写的“T”。
标头名称不区分大小写。
来自RFC 2616 -“超文本传输协议—HTTP/1.1”,章节4.2,“消息头”:
每个报头字段由一个名称后跟冒号(“:”)和字段值组成。字段名不区分大小写。
更新的RFC 7230没有列出RFC 2616在此部分的任何更改。
根据RFC 2616, HTTP头名不区分大小写:
4.2:
每个报头字段由一个名称后跟冒号(“:”)和字段值组成。字段名不区分大小写。
(字段值可能区分大小写,也可能不区分。)
如果您相信主流浏览器会遵守这一点,那么您就万事俱备了。
顺便说一句,与大多数HTTP不同,方法(动词)是区分大小写的:
5.1.1方法
The Method token indicates the method to be performed on the resource identified by the Request-URI. The method is case-sensitive. 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://www.rfc-editor.org/rfc/rfc7230#section-3.2
另外,RFC 7540 (HTTP/2):
就像在HTTP/1。x,报头字段名是ASCII字符串 不区分大小写进行比较的字符。
https://www.rfc-editor.org/rfc/rfc7540#section-8.1.2
它们不区分大小写。事实上,在请求对象中可用之前,NodeJS web服务器会显式地将它们转换为小写。
这里需要注意的是,所有头文件都用 只使用小写,不管客户端实际是如何发送它们的。这 简化了出于任何目的解析头的任务。