如果HTTP规范支持这一点,那么nodejs http.IncomingMessage对象如何处理响应中的多个WWW-Authenticate头,并且响应头似乎只能通过作为header-name的response.headers对象使用:值?
答案 0 :(得分:2)
多个WWW-Authenticate
标头为string-concatenated into a single www-authenticate
property, separated by a comma + space。
例如,
GET / HTTP/1.1
WWW-Authenticate: foo
WWW-Authenticate: bar
将导致
req.headers['www-authenticate'] == 'foo, bar'
这符合RFC 2616 § 4.2,其中声明:
当且仅当该标题字段的整个字段值被定义为以逗号分隔的列表[即#(值)]时,具有相同字段名称的多个消息标题字段可以出现在消息中。 必须可以将多个头字段组合成一个“field-name:field-value”对,而不改变消息的语义,方法是将每个后续字段值附加到第一个字段,每个字符值用逗号分隔因此,接收具有相同字段名称的头字段的顺序对于组合字段值的解释很重要,因此代理不得在转发消息时更改这些字段值的顺序。