Mdn Web 文档中多个 HTTP 标头值的分隔方式不一致。
例如,Access-Control-Allow-Methods值语法以逗号分隔,如下所示:
Access-Control-Allow-Methods: <method>, <method>, …
Content-Security-Policy是用分号分隔的,如下所示:
Content-Security-Policy: <policy-directive>; <policy-directive>
我希望所有内容都按照另一个类似问题中的答案以逗号分隔。在大多数情况下,除了 1 个特定例外,以下 2 个是等效的:
Header: foo
Header: bar
并且:
Header: foo, bar
因此,当您看到不带引号的逗号时,您可以将它们视为 2 个不同的标头值。
;
q
参数:
Accept: text/html; q=0.5, text/plain; q=0.2
这又相当于:Accept: text/html; q=0.5
Accept: text/plain; q=0.2
唯一的例外是
Set-Cookie
,它错误地使用了 ,
。这是一个错误
,但它是 HTTP 规范的一部分。请注意,除了逗号之外,HTTP 标头的编码方式并没有太多通用性,因此您需要查找特定标头才能了解如何对其进行解码。 新的 HTTP 标头可能会遵循特定的格式:结构化字段:
https://www.rfc-editor.org/rfc/rfc8941.html
但是对于任何较旧的标题来说,它对所有人来说都是免费的,并且有一些一般规则和指南。逗号作为值分隔符是可靠的,但除了这个例外。