HTTP请求头值为何有时用逗号有时用分号分隔?
HTTP请求头多值分隔方式不一致的原因
HTTP头字段的分隔规则并没有统一强制标准,不同头的设计背景、用途不同,就会选择适配自身需求的分隔符,这是核心原因:
Access-Control-Allow-Methods 用逗号:它的取值是无参数的单一方法集合(比如GET、POST),这类离散值用逗号分隔足够清晰,而且每个方法本身不会包含逗号,完全不会有歧义,写起来也简洁。示例:
Access-Control-Allow-Methods: GET, POST, PUTContent-Security-Policy 用分号:它的每个指令本身可能包含带空格的参数(比如
script-src 'self' https://example.com),如果用逗号分隔,会把指令内部的参数和指令本身混淆。分号能精准区分独立的完整指令,避免解析错误。示例:Content-Security-Policy: default-src 'self'; script-src 'unsafe-inline'
你之前认为所有请求头都用逗号分隔是误解,逗号只是常见分隔符之一,还有部分头会用空格、分号等,具体要以对应头字段的官方规范为准。
内容的提问来源于stack exchange,提问作者TP95
相关产品推荐
相关产品推荐

