首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[CFWS]和[FWS]在这个ABNF中意味着什么?

[CFWS]和[FWS]在这个ABNF中意味着什么?
EN

Stack Overflow用户
提问于 2016-05-11 18:41:41
回答 1查看 5.8K关注 0票数 9

电子邮件的RFC 2282有下面的引用字符串的ABNF。

代码语言:javascript
复制
quoted-string   =       [CFWS]
                        DQUOTE *([FWS] qcontent) [FWS] DQUOTE
                        [CFWS]

我搜索并发现CFWS是评论,折叠,白空间。我知道空格是什么,但不知道在电子邮件地址中的ABNF是什么评论和折叠。

此外,FWS在*()中意味着什么?双引号可以有0或更多的q内容出现在折叠和空白之前?

这很让人困惑。参考了解ABNF将是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2017-02-12 21:22:33

这不是通用ABNF语法的一部分(目前在RFC 5234中定义,尽管在编写RFC 2282时,RFC 2234是ABNF的定义)。相反,FWSCFWS是电子邮件RFC本身定义的特殊令牌(参见RFC 2822的第3.2.3款或RFC 5322的第3.2.2节,后者在2008年淘汰了RFC 2822 )。

来自RFC 5322:

2.2.3.长头字段 每个标头字段逻辑上是由字段名、冒号和字段体组成的一行字符。不过,为了方便起见,并为了处理每行998/78字符的限制,标题字段的字段体部分可以拆分为多行表示;这称为“折叠”。一般规则是,只要该规范允许折叠空白(而不仅仅是WSP字符),就可以在任何WSP之前插入一个CRLF。 例如,头字段: 主题:这是一个测试。 可表示为: 主题:这是一个测试。 ..。 从标题字段的折叠式多行表示到其单行表示的过程称为“展开”。展开是通过简单地删除任何CRLF,立即跟随WSP。每个标头字段应以其展开的形式进行处理,以进一步进行句法和语义评估。展开头字段没有长度限制,因此可能是不确定的长。 ..。 3.2.2。折叠空白及评论 空白字符,包括在折叠中使用的空白(在第2.2.3节中描述),可能出现在标题字段体中的许多元素之间。此外,作为注释处理的字符串可以作为括在括号中的字符包含在结构化字段体中。下面定义折叠空白(FWS)和注释结构。 括在括号中的字符串被认为是注释,只要它们不出现在第3.2.4节中定义的“引号-string”中。评论可能会嵌套。 在这个规范中有几个地方可以自由插入注释和FWS。为了适应这种语法,为可以发生注释和/或FWS的地方定义了"CFWS“的附加令牌。但是,如果CFWS发生在本规范中,则不能以这样的方式插入它,即折叠头字段的任何行都是完全由WSP字符组成的,而不是任何其他字符。 FWS = (*WSP CRLF 1*WSP) / obs-FWS;折叠空白ctext = %d33-39 /;可打印US %d42-91 /;字符不包括%d93-126 /;"(",")“或"\”obs-ctext ccontent = ctext /配以引文/注释=“"(”*(FWS ccontent) FWS ")“CFWS = (1*(FWS注释) FWS) / FWS 在整个规范中,FWS (折叠空白标记)出现时,它指示可能发生折叠的地方,如第2.2.3节中所讨论的那样。只要在消息中出现折叠(即包含CRLF的标头字段主体,然后是任何WSP),在根据本规范对该标头字段执行任何进一步的语义分析之前,展开(移除CRLF)就会执行。也就是说,在FWS中出现的任何CRLF在语义上都是“不可见的”。 注释通常用于结构化字段体中,以提供一些人类可读的信息文本。由于注释允许包含FWS,所以允许在注释中折叠。还请注意,由于注释中允许使用引号对,所以括号和反斜杠字符可能出现在注释中,只要它们以引号对的形式出现。在语义上,括起来的括号不是注释的一部分;注释是包含在这两个括号之间的内容。如前所述,任何引文对中的"“和出现在注释中的任何FWS中的”CRLF“在语义上”不可见“,因此也不属于评论的一部分。 类中词法标记之间的FWS、注释或CFWS的运行。 结构化头字段在语义上被解释为单个空格字符。

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

https://stackoverflow.com/questions/37170893

复制
相关文章

相似问题

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