node.js - 使用 httpclients axios 和 request-promise 在 node/express js 中读取响应 HEADER 时大写转换为小写

标签 node.js express http-headers response-headers

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

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

最佳答案

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

Express 在此处进行不区分大小写的匹配以符合 RFC2616's specification that header names are to be case-insensitive .这意味着您的第三方服务器可以自由返回名为 sessionIdsessionidSeSsIoNiD 或其他名称的 header ,它仍然表示 sessionid 到您自己的应用程序。 (RFC2616 是 HTTP 协议(protocol)的正式规范。)

关于node.js - 使用 httpclients axios 和 request-promise 在 node/express js 中读取响应 HEADER 时大写转换为小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63112580/

相关文章:

javascript - Nest 无法解析 BlahService 的依赖关系,尽管它是 Global()

javascript - 使用 Express 和 Waterline ORM 构建 api

go - gorilla /处理程序的 CORS 预检神秘失败

http-headers - HTTP 是无状态的,那么保持事件是什么意思?

javascript - 选择元素的change()不起作用

node.js - ffmpeg 选项未找到 `var_stream_map a:0 a:1`

javascript - express.js HTTP 方法与 REST api 端点

javascript - 对于一个工作流程, "normal"有多少个打开的 CLI 终端?

java - 如何使用java向后端请求添加 header

node.js - 修改 mongoose pre-validate hook 中的数据