您的位置:首页 > 理论基础 > 计算机网络

HTTP 协议学习笔记 2 Augentmented BNF

2014-09-29 22:36 381 查看
Augentmented BNF (Backus-Naur Form) 增长巴克斯范式

name = definition

name是单纯的一个name,不包括”<" ,“>",由”=“号同后面的定义隔开。White space只在连续几行中的间隔中才有意义,用来表示一个规则的定义占了好几行。某些基本规则是用大写字母表示的,例如SP,LWS,HT,CRLF,DIGIT,ALPHA等。Angle brackets(尖括号)能促进区分规则名的时候才会在定义中使用。

"literal"

除非特别声明,否则双引号中的文本是大小写不敏感的。

rule1 | rule2

由 "|"符号隔开的元素表明是可选的。例如 "yes|no"表示 接受yes 或者no。

(rule1 rule2)

由"("")"括起来的元素,表明是一个单一的元素。

*rule

元素的前导符号”*“表示重复。 完全形式是 ”<n>*<m>element",表示element出现最小n 最多m次。默认情况下,即×rule表示最少0次最多无穷多次。

[rule]

由方括号(square brackets)括起来的元素表示该元素是可选的。例如 “[foo bar]" 和 ”×1(foo bar)“是一样的。

N rule

指定重复次数N次。同”n*n elements“.

#rule

类似"*",完全定义是”<n>#<m>element“表示最少n最多m个element元素,每一个元素都由一个或者多个”,“以及可选的线性空格(LWS)隔开。例如:

(*LWS element *(*LWS ,*LWS element)) ----> 1#element。

null 元素被允许包含在其中,但是不计算到element的个数中。因此,在至少需要一个元素的地方,至少要出现一个非null元素。

;

后跟注释

implied * LWS

除非特别声明,LWS可出现在任何两个相邻单词之间(token或者quoted-string),以及任何相邻的单词和separator之间。任何两个token之间必须存在至少一个分隔符(LWS 与/或者separators)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: