RT,Ruby 封装的 HTTP 调用,都是自动把小写的 header key 自动转为大写。 无解。
1
oott123 2017-09-20 18:49:00 +08:00
按说这玩意儿应该是不区分大小写的……
|
2
zjp 2017-09-20 21:20:23 +08:00 via Android
有问题?规范里不区分大小写,实际上一般首字母大写
|
4
zhangjiha OP @zjp HTTP Header 是大小写敏感的,并且规范推荐是驼峰式的。
所以,很多框架会做两步额外的工作 1. Server 端,把收到的请求的 header 的 key 转为驼峰式。 2. 很多语言的 HTTP 请求的包,会自动把你请求的 header 的 key 转为驼峰式。 至少 Ruby 中的 Net::HTTP 的库就是这样。 所以,这下就尴尬了。 |
5
zjp 2017-09-21 10:59:08 +08:00 via Android
@zhangjiha 麻烦提供资料… MDN 上写着 A request header consists of its case-insensitive name followed by a colon.
|
6
zhangjiha OP @zjp
1. Http Headers 的标准头都是驼峰式的。 但是规范确实没有直接写出这个推荐。 2. https://github.com/jnunemaker/httparty/issues/406 这个帖子的讨论里可以看出来 Ruby 底层使用的 NET HTTP 库实际上是做了转化的。 |