HTTP / 1.1规范定义了以下有关多个头字段的请求:
发件人不得生成具有相同字段的多个标题字段 在消息中命名,除非该字段的整个字段值 标题字段定义为以逗号分隔的列表[即#(值)] 或标题字段是一个众所周知的例外(如下所述)。
收件人可以将多个标题字段与同一字段组合在一起 将名称命名为一个"字段名称:字段值"一对,没有改变 消息的语义,通过附加每个后续字段值 按顺序组合的字段值,以逗号分隔。命令 其中接收到具有相同字段名称的头字段 因此对组合领域的解释具有重要意义 值;代理不得更改这些字段值的顺序 转发消息。
用于解析请求:
或
或
这会产生影响的一个例子是:
GET / HTTP/1.1
Host: 127.0.0.1
Upgrade: foo
Upgrade:
Upgrade: bar
此处,第二个单独的标头本身无效(因为升级标头至少需要1个协议)。但是,所有三个标题的组合都变为foo,,bar
,这是允许的。
当规范说它至少需要1个时:这是针对完整的组合标题,还是单个标题?
答案 0 :(得分:0)
用于完全组合的标题字段。因此,必须接受一个没有字段值的“升级:”(尽管发送是非法的)。