使用 httpclients axios 和 request-promise 读取 Node/express js 中的响应标头时,大写转换为小写

Man*_*n J 7 http-headers node.js response-headers express

在我的应用程序(node/express)中,我必须调用第三方服务器来读取一些数据。第三方服务器的响应将具有自定义标头sessionId-Id根据文档大写。但在我的应用程序中,自定义标头键更改为sessionid-id小写。我在 axios 和 request-promise http 客户端中测试了这种行为。

为什么 header key 中的大写字母在 node/express 中转换为小写字母?

O. *_*nes 10

Express 的Request 对象有一个不区分大小写的.get('header-name')方法来查找标头。Express 团队实现不区分大小写的方式显然是在存储标头名称时将其小写。

Express 在这里进行不区分大小写的匹配,以符合RFC2616 标头名称不区分大小写的规范。这意味着您的第三方服务器可以自由返回名为 、 或其他名称的标头sessionIdsessionid并且SeSsIoNiD它仍然sessionid对您自己的应用程序有意义。(RFC2616 是 HTTP 协议的正式规范。)