.. _rfc5234: 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 )