主页

索引

模块索引

搜索页面

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 )

主页

索引

模块索引

搜索页面