真的忍不住吐槽个推了,太 low 了吧,认证头的 Key 竟然还是小写

2017-09-20 18:16:30 +08:00
 zhangjiha

RT,Ruby 封装的 HTTP 调用,都是自动把小写的 header key 自动转为大写。 无解。

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/392336

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX