在某些特殊情况下,会存在具有重复值的http请求标头,例如在标头中附加如下的XFF标头:
b
通过使用npm package express和request,我们可以在下面的代码中解析重复的头文件吗?
x-forwarded-for: *.*.*.*
x-forwarded-for: *.*.*.*
答案 0 :(得分:0)
重复的HTTP标头将合并为逗号分隔的列表,因此您的示例为
'x-forwarded-for': '1.2.3.4'
'x-forwarded-for': '5.6.7.8'
将成为
'x-forwarded-for': '1.2.3.4, 5.6.7.8'
这是根据HTTP RFC2616可用here:
完成的可能存在具有相同字段名称的多个消息头字段 在消息中,当且仅当该标头的整个字段值 字段被定义为以逗号分隔的列表[即,#(值)]。它必须 可以将多个标题字段合并为一个 “field-name:field-value”对,不改变语义 消息,通过将每个后续字段值附加到第一个,每个 用逗号分隔。头字段具有相同的顺序 因此,接收字段名称对于解释是重要的 组合字段值,因此代理不得改变 转发邮件时这些字段值的顺序
Here您可以在节点中找到相关问题。