变更内容
HTTP 协议中,header 是不区分大小写的,Node 一般统一为小写。
urllib 该变更会在最底层发送 http 请求时,把对应的 header key 都转换为小写才发送。
原 urllib 内部的 Content-Length
也会转为小写发送。
影响范围
所有用到 HTTPClient 的请求,如调用 ctx.curl
。
影响面:理论上没有影响,除非对应的后端处理有问题。
如在 Koa/Egg 里面,不管调用 ctx.get(key)
还是 ctx.headers
都一直是小写。
尽管如此,建议开发者还是需要检索下代码里面有调用到 ctx.curl(url, { header })
的逻辑:
- 是否传递了大写的 header key
- 确认对应的后端逻辑是否判断了大写。
兼容方式
增加了 keepHeaderCase
参数,需要保持大小写的,可以设置下。
还是会转换为小写,故在 beforeRequest 里面取到的还是小写,但最终在发送 http 前一刻,会把用户手动传的 header 的大小写恢复。
变更版本
- urllib@2.35.0
-
变更MR
- https://github.com/node-modules/urllib/pull/344/files