@@ -179,7 +179,7 @@ The ABNF for dictionaries in HTTP/1 headers is:
179
179
~~~ abnf
180
180
sh-dictionary = dict-member *( OWS "," OWS dict-member )
181
181
dict-member = member-name "=" member-value
182
- member-name = identifier
182
+ member-name = sh- identifier
183
183
member-value = sh-item
184
184
~~~
185
185
@@ -227,9 +227,9 @@ The ABNF for parameterised lists in HTTP/1 headers is:
227
227
228
228
~~~ abnf
229
229
sh-param-list = param-id *( OWS "," OWS param-id )
230
- param-id = identifier *parameter
230
+ param-id = sh- identifier *parameter
231
231
parameter = OWS ";" OWS param-name [ "=" param-value ]
232
- param-name = identifier
232
+ param-name = sh- identifier
233
233
param-value = sh-item
234
234
~~~
235
235
@@ -244,12 +244,12 @@ Parsers MUST support parameterised lists containing at least 1024 members, and s
244
244
245
245
# # Items {#item}
246
246
247
- An item is can be a integer ({{integer}}), float ({{float}}), string ({{string}}), byte sequence ({{binary}}), or Boolean ({{boolean}}).
247
+ An item is can be a integer ({{integer}}), float ({{float}}), string ({{string}}), identifier ({{identifier}}), byte sequence ({{binary}}), or Boolean ({{boolean}}).
248
248
249
249
The ABNF for items in HTTP/1 headers is :
250
250
251
251
~~~ abnf
252
- sh-item = sh-integer / sh-float / sh-string / sh-binary / sh-boolean
252
+ sh-item = sh-integer / sh-float / sh-string / sh-identifier / sh- binary / sh-boolean
253
253
~~~
254
254
255
255
@@ -336,8 +336,8 @@ Identifiers are short textual identifiers; their abstract model is identical to
336
336
The ABNF for identifiers in HTTP/1 headers is :
337
337
338
338
~~~ abnf
339
- identifier = lcalpha *( lcalpha / DIGIT / "_" / "-"/ "*" / "/" )
340
- lcalpha = %x61-7A ; a-z
339
+ sh- identifier = lcalpha *( lcalpha / DIGIT / "_" / "-"/ "*" / "/" )
340
+ lcalpha = %x61-7A ; a-z
341
341
~~~
342
342
343
343
Note that identifiers can only contain lowercase letters.
@@ -457,8 +457,9 @@ Given an item as input:
457
457
1. If input is an integer, return the result of applying Serialising an Integer {{ser-integer}} to input.
458
458
2. If input is a float, return the result of applying Serialising a Float {{ser-float}} to input.
459
459
3. If input is a string, return the result of applying Serialising a String {{ser-string}} to input.
460
- 4. If input is a Boolean, return the result of applying Serialising a Boolean {{ser-boolean}} to input.
461
- 5. Otherwise, return the result of applying Serialising a Byte Sequence {{ser-binary}} to input.
460
+ 4. If input is an identifier, return the result of Serialising an Identifier {#ser-identifier}.
461
+ 5. If input is a Boolean, return the result of applying Serialising a Boolean {{ser-boolean}} to input.
462
+ 6. Otherwise, return the result of applying Serialising a Byte Sequence {{ser-binary}} to input.
462
463
463
464
464
465
# ## Serialising an Integer {#ser-integer}
@@ -647,7 +648,8 @@ Given an ASCII string input_string, return an item. input_string is modified to
647
648
3. If the first character of input_string is a DQUOTE, process input_string as a string ({{parse-string}}) and return the result.
648
649
4. If the first character of input_string is "\*", process input_string as a byte sequence ({{parse-binary}}) and return the result.
649
650
5. If the first character of input_string is "!", process input_string as a Boolean ({{parse-boolean}}) and return the result.
650
- 6. Otherwise, fail parsing.
651
+ 6. If the first character of input_string is a lcalpha, process input_string as an identifier ({{parse-identifier}}) and return the result.
652
+ 7. Otherwise, fail parsing.
651
653
652
654
653
655
# ## Parsing a Number from Text {#parse-number}
@@ -804,6 +806,8 @@ _RFC Editor: Please remove this section before publication._
804
806
* Changed "mapping" to "map" for # 671.
805
807
* Don't fail if byte sequences aren't "=" padded (#658).
806
808
* Add Booleans (#683).
809
+ * Allow identifiers in items again (#629).
810
+
807
811
808
812
# # Since draft-ietf-httpbis-header-structure-06
809
813
0 commit comments