首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTTP增强的ABNF:#符号的规范引用

HTTP增强的ABNF:#符号的规范引用
EN

Stack Overflow用户
提问于 2020-09-28 11:46:41
回答 1查看 91关注 0票数 1

上下文

为了解决CORS问题,我想知道header Access-Control-Allow-Headers的有效值是什么。

Whatwg CORS关于头语法的规范在ABNF中告诉我:

Access-Control-Allow-Headers = #field-name

RFC7230告诉我:

代码语言:javascript
复制
field-name     = token
token = 1*tchar
tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA

此外,Whatwg状态还指出:

ABNF是指由HTTP (特别是加法#)和RFC 7405增强的ABNF。RFC7405

好的,我现在知道这个响应头无效:

Access-Control-Allow-Headers: Origin, Content-Type, content type, Accept, Authorization

字段名不应包含空白,但这将导致我的问题:

问题

#symbol的规范参考在什么地方?它不是定义ABNF语法的RFC5234。我觉得这有点像逗号分隔的字段,但我没有找到真正的引用。

PS:问题不是“Access-Control-Allow-Headers__的有效值是什么”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-28 12:03:04

这个“由HTTP增强的(特别是加法#)”来自RFC 7230 -超文本传输协议(HTTP/1.1):消息语法和路由部分7. ABNF列表扩展:#rule

对RFC5234的ABNF规则的一个#规则扩展用于提高某些标头字段值定义中的可读性。 构造"#“的定义类似于"*",用于定义以逗号分隔的元素列表。完整的表单是"<n>#<m>element“,表示至少<n>和最多的<m>元素,每个元素由一个逗号(",")和可选空格(OWS)分隔。 在使用列表构造的任何产品中,发件人不得生成空列表元素。换句话说,发送方必须生成满足以下语法的列表: 1#element =>元素*( OWS ",OWS元素) (...)

因此,#field-name变成了“零或多个field-name (由逗号分隔,由可选的线性空格包围)”,因为n和m分别默认为0和无穷大。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64101573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档