HTTP标头 - 关于分隔符

时间:2018-04-08 06:24:08

标签: http

最近我读了一些关于HTTP标头格式的内容,我想我发现了一些关于它的规则,但我无法确认。

例如:

Some-Header:Foo;x=foo_attr,Bar;y=bar_attr\r\n

Foo和Bar是Some-Header的列表项,x是Foo的属性,y是Bar的属性,对吧? 如果是正确的,“,”应该是标题项的分隔符,并且“;”应该是标题项属性的分隔符。

1 个答案:

答案 0 :(得分:1)

不幸的是,应该如何解析HTTP标头取决于标头。您无法真正查看标题并对结构格式进行假设,因为格式因每个标题而异。

可以说,对于几乎所有HTTP标头,逗号代表您的示例与之相同的多个值:

Some-Header:Foo;x=foo_attr
Some-Header:Bar;y=bar_attr

但是,此规则也有例外。例如,您不能使用Set-Cookie标题执行相同的操作。 Set-Cookie是唯一可以从头顶回忆起的例外。 (可能还有更多)。

但除此之外,它基本取决于你。如果您要定义Some-Headers,那么您需要告诉实现者如何解析它。

目前正努力提出一种标准方法来描述标题中的结构。您可以在此处阅读当前草稿:

draft-ietf-httpbis-header-structure