catalog/rfc9112-http11.abnf

Source

; title: HTTP/1.1

; cut: <https://www.rfc-editor.org/rfc/rfc9112.html#name-message-format>
HTTP-message   = start-line CRLF
                 *( field-line CRLF )
                 CRLF
                 [ message-body ]

start-line     = request-line / status-line

; 2.3. HTTP Version <https://www.rfc-editor.org/rfc/rfc9112.html#name-http-version>
HTTP-version  = HTTP-name "/" DIGIT "." DIGIT
HTTP-name     = %s"HTTP"

; 3. Request Line <https://www.rfc-editor.org/rfc/rfc9112.html#name-request-line>
request-line   = method SP request-target SP HTTP-version

; 3.1. Method <https://www.rfc-editor.org/rfc/rfc9112.html#name-method>
method         = token

; 3.2. Request Target <https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target>
request-target = origin-form
               / absolute-form
               / authority-form
               / asterisk-form

; 3.2.1. origin-form <https://www.rfc-editor.org/rfc/rfc9112.html#name-origin-form>
origin-form    = absolute-path [ "?" query ]

; 3.2.2. absolute-form <https://www.rfc-editor.org/rfc/rfc9112.html#name-absolute-form>
absolute-form  = absolute-URI

; 3.2.3. authority-form <https://www.rfc-editor.org/rfc/rfc9112.html#name-authority-form>
authority-form = uri-host ":" port

; 3.2.4. asterisk-form <https://www.rfc-editor.org/rfc/rfc9112.html#name-asterisk-form>
asterisk-form  = "*"

; 4. Status Line <https://www.rfc-editor.org/rfc/rfc9112.html#name-status-line>
status-line = HTTP-version SP status-code SP [ reason-phrase ]
status-code    = 3DIGIT
reason-phrase  = 1*( HTAB / SP / VCHAR / obs-text )

; 5. Field Syntax <https://www.rfc-editor.org/rfc/rfc9112.html#name-field-syntax>
field-line   = field-name ":" OWS field-value OWS

; 5.2. Obsolete Line Folding <https://www.rfc-editor.org/rfc/rfc9112.html#name-obsolete-line-folding>
obs-fold     = OWS CRLF RWS
             ; obsolete line folding

; 6. Message Body <https://www.rfc-editor.org/rfc/rfc9112.html#name-message-body>
message-body = *OCTET

; 6.1. Transfer-Encoding <https://www.rfc-editor.org/rfc/rfc9112.html#name-transfer-encoding>
Transfer-Encoding = #transfer-coding
                     ; defined in [HTTP], Section 10.1.4

; 7.1. Chunked Transfer Coding <https://www.rfc-editor.org/rfc/rfc9112.html#name-chunked-transfer-coding>
Transfer-Encoding = #transfer-coding
                     ; defined in [HTTP], Section 10.1.4

; 7.1.1. Chunk Extensions <https://www.rfc-editor.org/rfc/rfc9112.html#name-chunk-extensions>

chunk-ext      = *( BWS ";" BWS chunk-ext-name
                    [ BWS "=" BWS chunk-ext-val ] )

chunk-ext-name = token
chunk-ext-val  = token / quoted-string

; 7.1.2. Chunked Trailer Section <https://www.rfc-editor.org/rfc/rfc9112.html#name-chunked-trailer-section>
trailer-section   = *( field-line CRLF )

; 1.2. Syntax Notation <https://www.rfc-editor.org/rfc/rfc9112.html#name-syntax-notation>
BWS           = <import rfc9110-http.abnf BWS>
OWS           = <import rfc9110-http.abnf OWS>
RWS           = <import rfc9110-http.abnf RWS>
absolute-path = <import rfc9110-http.abnf absolute-path>
field-name    = <import rfc9110-http.abnf field-name>
field-value   = <import rfc9110-http.abnf field-value>
obs-text      = <import rfc9110-http.abnf obs-text>
quoted-string = <import rfc9110-http.abnf quoted-string>
token         = <import rfc9110-http.abnf token>
transfer-coding = <import rfc9110-http.abnf transfer-coding>

absolute-URI  = <import rfc3986-uri.abnf absolute-URI>
authority     = <import rfc3986-uri.abnf authority>
uri-host      = <import rfc3986-uri.abnf host>
port          = <import rfc3986-uri.abnf port>
query         = <import rfc3986-uri.abnf query>

Info

Rules
HTTP-message, start-line, HTTP-version, HTTP-name, request-line, method, request-target, origin-form, absolute-form, authority-form, asterisk-form, status-line, status-code, reason-phrase, field-line, obs-fold, message-body, Transfer-Encoding, chunk-ext, chunk-ext-name, chunk-ext-val, trailer-section, BWS, OWS, RWS, absolute-path, field-name, field-value, obs-text, quoted-string, token, transfer-coding, absolute-URI, authority, uri-host, port, query
Dependencies
Used Builtins
CRLF, DIGIT, HTAB, OCTET, SP, VCHAR

Alphabet

Cited By

Implementations