RFC5234: Augmented BNF for Syntax Specifications: ABNF¶
一种扩展的BNF(巴科斯范式)语法表示法。它是用于描述语言语法的一种形式化表示法。
基本规则,例如:规则的命名、规则的组成方式
常用的规则,例如:comment、quoted-string、DIGIT等
如何使用语法表示法来描述协议规范。它提供了一些示例,例如如何描述HTTP消息头的语法。
基本元素:
1. ALPHA(字母)
2. CR(回车)
3. LF(换行)
4. CRLF(回车和换行)
示例¶
该规则表明,字段名由至少1个字母、数字或破折号组成,而字段值可以由任意字母、数字、破折号、句点、下划线、冒号或空格组成:
field-name = 1*(ALPHA / DIGIT / "-")
field-value = *(ALPHA / DIGIT / "-" / "." / "_" / ":" / " ")
描述一个HTTP请求的语法,其中包含一个方法、一个URL和一组头字段:
request-line = method SP request-target SP HTTP-version CRLF
method = token
request-target = origin-form / absolute-form / authority-form / asterisk-form
HTTP-version = "HTTP" "/" DIGIT "." DIGIT
header-field = field-name ":" OWS field-value OWS
message-header = *(header-field CRLF) CRLF
message-body = *OCTET
HTTP头部中的Content-Type字段可以使用以下规则来描述:
content-type = "Content-Type" ":" media-type
media-type = type "/" subtype *( ";" parameter )
type = token
subtype = token
parameter = token "=" ( token / quoted-string )