1 | ; the ABNF below was extracted from the IETF HTTPbis WG Internet Drafts |
---|
2 | ; please see <http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging> |
---|
3 | ; for copyright information. |
---|
4 | |
---|
5 | Accept = [ ( "," / ( media-range [ accept-params ] ) ) *( OWS "," [ OWS media-range [ accept-params ] ] ) ] |
---|
6 | Accept-Charset = *( "," OWS ) ( charset / "*" ) [ OWS ";" OWS "q=" qvalue ] *( OWS "," [ OWS ( charset / "*" ) [ OWS ";" OWS "q=" qvalue ] ] ) |
---|
7 | Accept-Encoding = [ ( "," / ( codings [ OWS ";" OWS "q=" qvalue ] ) ) *( OWS "," [ OWS codings [ OWS ";" OWS "q=" qvalue ] ] ) ] |
---|
8 | Accept-Language = *( "," OWS ) language-range [ OWS ";" OWS "q=" qvalue ] *( OWS "," [ OWS language-range [ OWS ";" OWS "q=" qvalue ] ] ) |
---|
9 | Accept-Ranges = acceptable-ranges |
---|
10 | Age = delta-seconds |
---|
11 | Allow = [ ( "," / method ) *( OWS "," [ OWS method ] ) ] |
---|
12 | Authorization = credentials |
---|
13 | BWS = OWS |
---|
14 | Cache-Control = *( "," OWS ) cache-directive *( OWS "," [ OWS cache-directive ] ) |
---|
15 | Connection = *( "," OWS ) connection-token *( OWS "," [ OWS connection-token ] ) |
---|
16 | Content-Encoding = *( "," OWS ) content-coding *( OWS "," [ OWS content-coding ] ) |
---|
17 | Content-Language = *( "," OWS ) language-tag *( OWS "," [ OWS language-tag ] ) |
---|
18 | Content-Length = 1*DIGIT |
---|
19 | Content-Location = absolute-URI / partial-URI |
---|
20 | Content-Range = byte-content-range-spec / other-content-range-spec |
---|
21 | Content-Type = media-type |
---|
22 | Date = HTTP-date |
---|
23 | ETag = entity-tag |
---|
24 | Expect = *( "," OWS ) expectation *( OWS "," [ OWS expectation ] ) |
---|
25 | Expires = HTTP-date |
---|
26 | From = mailbox |
---|
27 | GMT = %x47.4D.54 ; GMT |
---|
28 | |
---|
29 | HTTP-date = rfc1123-date / obs-date |
---|
30 | HTTP-message = start-line *( header-field CRLF ) CRLF [ message-body ] |
---|
31 | HTTP-name = %x48.54.54.50 ; HTTP |
---|
32 | |
---|
33 | HTTP-version = HTTP-name "/" DIGIT "." DIGIT |
---|
34 | Host = uri-host [ ":" port ] |
---|
35 | If-Match = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS entity-tag ] ) ) |
---|
36 | If-Modified-Since = HTTP-date |
---|
37 | If-None-Match = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS entity-tag ] ) ) |
---|
38 | If-Range = entity-tag / HTTP-date |
---|
39 | If-Unmodified-Since = HTTP-date |
---|
40 | Last-Modified = HTTP-date |
---|
41 | Location = URI-reference |
---|
42 | MIME-Version = 1*DIGIT "." 1*DIGIT |
---|
43 | Max-Forwards = 1*DIGIT |
---|
44 | OWS = *( SP / HTAB ) |
---|
45 | Pragma = *( "," OWS ) pragma-directive *( OWS "," [ OWS pragma-directive ] ) |
---|
46 | Proxy-Authenticate = *( "," OWS ) challenge *( OWS "," [ OWS challenge ] ) |
---|
47 | Proxy-Authorization = credentials |
---|
48 | RWS = 1*( SP / HTAB ) |
---|
49 | Range = byte-ranges-specifier / other-ranges-specifier |
---|
50 | Referer = absolute-URI / partial-URI |
---|
51 | Retry-After = HTTP-date / delta-seconds |
---|
52 | Server = product *( RWS ( product / comment ) ) |
---|
53 | TE = [ ( "," / t-codings ) *( OWS "," [ OWS t-codings ] ) ] |
---|
54 | Trailer = *( "," OWS ) field-name *( OWS "," [ OWS field-name ] ) |
---|
55 | Transfer-Encoding = *( "," OWS ) transfer-coding *( OWS "," [ OWS transfer-coding ] ) |
---|
56 | URI-reference = <URI-reference, defined in [RFC3986], Section 4.1> |
---|
57 | Upgrade = *( "," OWS ) protocol *( OWS "," [ OWS protocol ] ) |
---|
58 | User-Agent = product *( RWS ( product / comment ) ) |
---|
59 | Vary = "*" / ( *( "," OWS ) field-name *( OWS "," [ OWS field-name ] ) ) |
---|
60 | Via = *( "," OWS ) received-protocol RWS received-by [ RWS comment ] *( OWS "," [ OWS received-protocol RWS received-by [ RWS comment ] ] ) |
---|
61 | WWW-Authenticate = *( "," OWS ) challenge *( OWS "," [ OWS challenge ] ) |
---|
62 | Warning = *( "," OWS ) warning-value *( OWS "," [ OWS warning-value ] ) |
---|
63 | absolute-URI = <absolute-URI, defined in [RFC3986], Section 4.3> |
---|
64 | absolute-form = absolute-URI |
---|
65 | accept-ext = OWS ";" OWS token [ "=" word ] |
---|
66 | accept-params = OWS ";" OWS "q=" qvalue *accept-ext |
---|
67 | acceptable-ranges = ( *( "," OWS ) range-unit *( OWS "," [ OWS range-unit ] ) ) / "none" |
---|
68 | asctime-date = day-name SP date3 SP time-of-day SP year |
---|
69 | asterisk-form = "*" |
---|
70 | attribute = token |
---|
71 | auth-param = token BWS "=" BWS ( token / quoted-string ) |
---|
72 | auth-scheme = token |
---|
73 | authority = <authority, defined in [RFC3986], Section 3.2> |
---|
74 | authority-form = authority |
---|
75 | b64token = 1*( ALPHA / DIGIT / "-" / "." / "_" / "~" / "+" / "/" ) *"=" |
---|
76 | byte-content-range-spec = bytes-unit SP byte-range-resp-spec "/" ( instance-length / "*" ) |
---|
77 | byte-range-resp-spec = ( first-byte-pos "-" last-byte-pos ) / "*" |
---|
78 | byte-range-set = ( *( "," OWS ) byte-range-spec ) / ( suffix-byte-range-spec *( OWS "," [ ( OWS byte-range-spec ) / suffix-byte-range-spec ] ) ) |
---|
79 | byte-range-spec = first-byte-pos "-" [ last-byte-pos ] |
---|
80 | byte-ranges-specifier = bytes-unit "=" byte-range-set |
---|
81 | bytes-unit = "bytes" |
---|
82 | cache-directive = cache-request-directive / cache-response-directive |
---|
83 | cache-extension = token [ "=" ( token / quoted-string ) ] |
---|
84 | cache-request-directive = "no-cache" / "no-store" / ( "max-age=" delta-seconds ) / ( "max-stale" [ "=" delta-seconds ] ) / ( "min-fresh=" delta-seconds ) / "no-transform" / "only-if-cached" / cache-extension |
---|
85 | cache-response-directive = "public" / ( "private" [ "=" DQUOTE *( "," OWS ) field-name *( OWS "," [ OWS field-name ] ) DQUOTE ] ) / ( "no-cache" [ "=" DQUOTE *( "," OWS ) field-name *( OWS "," [ OWS field-name ] ) DQUOTE ] ) / "no-store" / "no-transform" / "must-revalidate" / "proxy-revalidate" / ( "max-age=" delta-seconds ) / ( "s-maxage=" delta-seconds ) / cache-extension |
---|
86 | challenge = auth-scheme [ 1*SP ( b64token / [ ( "," / auth-param ) *( OWS "," [ OWS auth-param ] ) ] ) ] |
---|
87 | charset = token |
---|
88 | chunk = chunk-size [ chunk-ext ] CRLF chunk-data CRLF |
---|
89 | chunk-data = 1*OCTET |
---|
90 | chunk-ext = *( ";" chunk-ext-name [ "=" chunk-ext-val ] ) |
---|
91 | chunk-ext-name = token |
---|
92 | chunk-ext-val = token / quoted-str-nf |
---|
93 | chunk-size = 1*HEXDIG |
---|
94 | chunked-body = *chunk last-chunk trailer-part CRLF |
---|
95 | codings = content-coding / "identity" / "*" |
---|
96 | comment = "(" *( ctext / quoted-cpair / comment ) ")" |
---|
97 | connection-token = token |
---|
98 | content-coding = token |
---|
99 | credentials = auth-scheme [ 1*SP ( b64token / [ ( "," / auth-param ) *( OWS "," [ OWS auth-param ] ) ] ) ] |
---|
100 | ctext = OWS / %x21-27 ; '!'-''' |
---|
101 | / %x2A-5B ; '*'-'[' |
---|
102 | / %x5D-7E ; ']'-'~' |
---|
103 | / obs-text |
---|
104 | date1 = day SP month SP year |
---|
105 | date2 = day "-" month "-" 2DIGIT |
---|
106 | date3 = month SP ( 2DIGIT / ( SP DIGIT ) ) |
---|
107 | day = 2DIGIT |
---|
108 | day-name = %x4D.6F.6E ; Mon |
---|
109 | / %x54.75.65 ; Tue |
---|
110 | / %x57.65.64 ; Wed |
---|
111 | / %x54.68.75 ; Thu |
---|
112 | / %x46.72.69 ; Fri |
---|
113 | / %x53.61.74 ; Sat |
---|
114 | / %x53.75.6E ; Sun |
---|
115 | |
---|
116 | day-name-l = %x4D.6F.6E.64.61.79 ; Monday |
---|
117 | / %x54.75.65.73.64.61.79 ; Tuesday |
---|
118 | / %x57.65.64.6E.65.73.64.61.79 ; Wednesday |
---|
119 | / %x54.68.75.72.73.64.61.79 ; Thursday |
---|
120 | / %x46.72.69.64.61.79 ; Friday |
---|
121 | / %x53.61.74.75.72.64.61.79 ; Saturday |
---|
122 | / %x53.75.6E.64.61.79 ; Sunday |
---|
123 | |
---|
124 | delta-seconds = 1*DIGIT |
---|
125 | entity-tag = [ weak ] opaque-tag |
---|
126 | etagc = "!" / %x23-7E ; '#'-'~' |
---|
127 | / obs-text |
---|
128 | expect-name = token |
---|
129 | expect-param = expect-name [ BWS "=" BWS expect-value ] |
---|
130 | expect-value = token / quoted-string |
---|
131 | expectation = expect-name [ BWS "=" BWS expect-value ] *( OWS ";" [ OWS expect-param ] ) |
---|
132 | extension-pragma = token [ "=" ( token / quoted-string ) ] |
---|
133 | field-content = *( HTAB / SP / VCHAR / obs-text ) |
---|
134 | field-name = token |
---|
135 | field-value = *( field-content / obs-fold ) |
---|
136 | first-byte-pos = 1*DIGIT |
---|
137 | header-field = field-name ":" OWS field-value BWS |
---|
138 | hour = 2DIGIT |
---|
139 | http-URI = "http://" authority path-abempty [ "?" query ] |
---|
140 | https-URI = "https://" authority path-abempty [ "?" query ] |
---|
141 | instance-length = 1*DIGIT |
---|
142 | language-range = <language-range, defined in [RFC4647], Section 2.1> |
---|
143 | language-tag = <Language-Tag, defined in [RFC5646], Section 2.1> |
---|
144 | last-byte-pos = 1*DIGIT |
---|
145 | last-chunk = 1*"0" [ chunk-ext ] CRLF |
---|
146 | mailbox = <mailbox, defined in [RFC5322], Section 3.4> |
---|
147 | media-range = ( "*/*" / ( type "/*" ) / ( type "/" subtype ) ) *( OWS ";" OWS parameter ) |
---|
148 | media-type = type "/" subtype *( OWS ";" OWS parameter ) |
---|
149 | message-body = *OCTET |
---|
150 | method = token |
---|
151 | minute = 2DIGIT |
---|
152 | month = %x4A.61.6E ; Jan |
---|
153 | / %x46.65.62 ; Feb |
---|
154 | / %x4D.61.72 ; Mar |
---|
155 | / %x41.70.72 ; Apr |
---|
156 | / %x4D.61.79 ; May |
---|
157 | / %x4A.75.6E ; Jun |
---|
158 | / %x4A.75.6C ; Jul |
---|
159 | / %x41.75.67 ; Aug |
---|
160 | / %x53.65.70 ; Sep |
---|
161 | / %x4F.63.74 ; Oct |
---|
162 | / %x4E.6F.76 ; Nov |
---|
163 | / %x44.65.63 ; Dec |
---|
164 | |
---|
165 | obs-date = rfc850-date / asctime-date |
---|
166 | obs-fold = CRLF ( SP / HTAB ) |
---|
167 | obs-text = %x80-FF |
---|
168 | opaque-tag = DQUOTE *etagc DQUOTE |
---|
169 | origin-form = path-absolute [ "?" query ] |
---|
170 | other-content-range-spec = other-range-unit SP other-range-resp-spec |
---|
171 | other-range-resp-spec = *CHAR |
---|
172 | other-range-set = 1*CHAR |
---|
173 | other-range-unit = token |
---|
174 | other-ranges-specifier = other-range-unit "=" other-range-set |
---|
175 | parameter = attribute "=" value |
---|
176 | partial-URI = relative-part [ "?" query ] |
---|
177 | path-abempty = <path-abempty, defined in [RFC3986], Section 3.3> |
---|
178 | path-absolute = <path-absolute, defined in [RFC3986], Section 3.3> |
---|
179 | port = <port, defined in [RFC3986], Section 3.2.3> |
---|
180 | pragma-directive = "no-cache" / extension-pragma |
---|
181 | product = token [ "/" product-version ] |
---|
182 | product-version = token |
---|
183 | protocol = protocol-name [ "/" protocol-version ] |
---|
184 | protocol-name = token |
---|
185 | protocol-version = token |
---|
186 | pseudonym = token |
---|
187 | qdtext = OWS / "!" / %x23-5B ; '#'-'[' |
---|
188 | / %x5D-7E ; ']'-'~' |
---|
189 | / obs-text |
---|
190 | qdtext-nf = HTAB / SP / "!" / %x23-5B ; '#'-'[' |
---|
191 | / %x5D-7E ; ']'-'~' |
---|
192 | / obs-text |
---|
193 | query = <query, defined in [RFC3986], Section 3.4> |
---|
194 | quoted-cpair = "\" ( HTAB / SP / VCHAR / obs-text ) |
---|
195 | quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) |
---|
196 | quoted-str-nf = DQUOTE *( qdtext-nf / quoted-pair ) DQUOTE |
---|
197 | quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE |
---|
198 | qvalue = ( "0" [ "." *3DIGIT ] ) / ( "1" [ "." *3"0" ] ) |
---|
199 | range-unit = bytes-unit / other-range-unit |
---|
200 | reason-phrase = *( HTAB / SP / VCHAR / obs-text ) |
---|
201 | received-by = ( uri-host [ ":" port ] ) / pseudonym |
---|
202 | received-protocol = [ protocol-name "/" ] protocol-version |
---|
203 | relative-part = <relative-part, defined in [RFC3986], Section 4.2> |
---|
204 | request-line = method SP request-target SP HTTP-version CRLF |
---|
205 | request-target = origin-form / absolute-form / authority-form / asterisk-form |
---|
206 | rfc1123-date = day-name "," SP date1 SP time-of-day SP GMT |
---|
207 | rfc850-date = day-name-l "," SP date2 SP time-of-day SP GMT |
---|
208 | second = 2DIGIT |
---|
209 | special = "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / "\" / DQUOTE / "/" / "[" / "]" / "?" / "=" / "{" / "}" |
---|
210 | start-line = request-line / status-line |
---|
211 | status-code = 3DIGIT |
---|
212 | status-line = HTTP-version SP status-code SP reason-phrase CRLF |
---|
213 | subtype = token |
---|
214 | suffix-byte-range-spec = "-" suffix-length |
---|
215 | suffix-length = 1*DIGIT |
---|
216 | t-codings = "trailers" / ( transfer-extension [ te-params ] ) |
---|
217 | tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA |
---|
218 | te-ext = OWS ";" OWS token [ "=" word ] |
---|
219 | te-params = OWS ";" OWS "q=" qvalue *te-ext |
---|
220 | time-of-day = hour ":" minute ":" second |
---|
221 | token = 1*tchar |
---|
222 | trailer-part = *( header-field CRLF ) |
---|
223 | transfer-coding = "chunked" / "compress" / "deflate" / "gzip" / transfer-extension |
---|
224 | transfer-extension = token *( OWS ";" OWS transfer-parameter ) |
---|
225 | transfer-parameter = attribute BWS "=" BWS value |
---|
226 | type = token |
---|
227 | uri-host = <host, defined in [RFC3986], Section 3.2.2> |
---|
228 | value = word |
---|
229 | warn-agent = ( uri-host [ ":" port ] ) / pseudonym |
---|
230 | warn-code = 3DIGIT |
---|
231 | warn-date = DQUOTE HTTP-date DQUOTE |
---|
232 | warn-text = quoted-string |
---|
233 | warning-value = warn-code SP warn-agent SP warn-text [ SP warn-date ] |
---|
234 | weak = %x57.2F ; W/ |
---|
235 | |
---|
236 | word = token / quoted-string |
---|
237 | year = 4DIGIT |
---|
238 | ; Accept defined but not used |
---|
239 | ; Accept-Charset defined but not used |
---|
240 | ; Accept-Encoding defined but not used |
---|
241 | ; Accept-Language defined but not used |
---|
242 | ; Accept-Ranges defined but not used |
---|
243 | ; Age defined but not used |
---|
244 | ; Allow defined but not used |
---|
245 | ; Authorization defined but not used |
---|
246 | ; Cache-Control defined but not used |
---|
247 | ; Connection defined but not used |
---|
248 | ; Content-Encoding defined but not used |
---|
249 | ; Content-Language defined but not used |
---|
250 | ; Content-Length defined but not used |
---|
251 | ; Content-Location defined but not used |
---|
252 | ; Content-Range defined but not used |
---|
253 | ; Content-Type defined but not used |
---|
254 | ; Date defined but not used |
---|
255 | ; ETag defined but not used |
---|
256 | ; Expect defined but not used |
---|
257 | ; Expires defined but not used |
---|
258 | ; From defined but not used |
---|
259 | ; HTTP-message defined but not used |
---|
260 | ; Host defined but not used |
---|
261 | ; If-Match defined but not used |
---|
262 | ; If-Modified-Since defined but not used |
---|
263 | ; If-None-Match defined but not used |
---|
264 | ; If-Range defined but not used |
---|
265 | ; If-Unmodified-Since defined but not used |
---|
266 | ; Last-Modified defined but not used |
---|
267 | ; Location defined but not used |
---|
268 | ; MIME-Version defined but not used |
---|
269 | ; Max-Forwards defined but not used |
---|
270 | ; Pragma defined but not used |
---|
271 | ; Proxy-Authenticate defined but not used |
---|
272 | ; Proxy-Authorization defined but not used |
---|
273 | ; Range defined but not used |
---|
274 | ; Referer defined but not used |
---|
275 | ; Retry-After defined but not used |
---|
276 | ; Server defined but not used |
---|
277 | ; TE defined but not used |
---|
278 | ; Trailer defined but not used |
---|
279 | ; Transfer-Encoding defined but not used |
---|
280 | ; Upgrade defined but not used |
---|
281 | ; User-Agent defined but not used |
---|
282 | ; Vary defined but not used |
---|
283 | ; Via defined but not used |
---|
284 | ; WWW-Authenticate defined but not used |
---|
285 | ; Warning defined but not used |
---|
286 | ; chunked-body defined but not used |
---|
287 | ; http-URI defined but not used |
---|
288 | ; https-URI defined but not used |
---|
289 | ; special defined but not used |
---|