可能的HTTP头部值类型

20

通过查询字符串传递的值的类型始终是字符串。当HTTP客户端需要发送数字,比如42时,实际上发送的是"42"。查询字符串中的所有内容都是字符串。

那么通过标头传递的值的类型是否也相同呢?

换句话说,如果我们发送一个带有值为42"FooBar"标头的HTTP请求,以及另一个将标头值设置为"42"的请求,服务器是否会将接收到的两个值视为相同的类型和值(即"42")?


今天想到了这个问题! - User 1058612
2个回答

32

它始终是一个字符串,即使在HTTP/2中也是如此。


参考资料?我没有看到。我已经尝试搜索,你的答案出现了,但它几乎不具备权威性。 - oligofren
1
@dsign 我尝试做了一些研究,最终来到了这里。我只是想问一下你是否有参考资料,因为我没有找到任何相关信息,而且由于我需要重新实现规范的某些部分,所以我不能仅仅相信网络上的某些随意断言。但是通过维基百科,我找到了RFC7230。SO 的一个既定目标就是提供所有需要的信息的高价值答案,所以我并不是想冒犯你 :) - oligofren

9

tldr; 头部是文本,有时使用ISO 8859,但通常只使用US-ASCII。

根据2014年的RFC7230(最后一段),HTTP字段以前都是文本,新的头部也应该如此,将值限制为由US-ASCII八位组成。

1982年的RFC822规定了头部主体的ASCII格式。

参考资料(通过HTTP头列表找到):


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接