- From: Kari Hurtta <hurtta-ietf@elmme-mailer.org>
- Date: Sat, 15 Oct 2016 09:45:23 +0300 (EEST)
- To: HTTP working group mailing list <ietf-http-wg@w3.org>
- CC: Poul-Henning Kamp <phk@phk.freebsd.dk>, Kari Hurtta <hurtta-ietf@elmme-mailer.org>
3. HTTP/1 serialization of HTTP header Common Structure https://tools.ietf.org/html/draft-kamp-httpbis-structure-00#section-3 | h1_element = identifier * (";" identifier ["=" h1_value]) | | h1_value = identifier / | number / | h1_ascii_string / | h1_unicode_string / | h1_blob / | h1_timestamp / | h1_common-structure | | h1_ascii_string = DQUOTE *( | ( "\" DQUOTE ) / | ( "\" "\" ) / | 0x20-21 / | 0x23-5B / | 0x5D-7E | ) DQUOTE | # This is a proper subset of h1_unicode_string | # NB only allowed backslash escapes are \" and \\ | | h1_unicode_string = DQUOTE *( | ( "\" DQUOTE ) | ( "\" "\" ) / | ( "\" "u" 4*HEXDIG ) / | 0x20-21 / | 0x23-5B / | 0x5D-7E / | 0x80-F7 | ) DQUOTE | # XXX: how to say/import "UTF-8 encoding" ? | # HTTP1 unfriendly codepoints (00-1f, 7f) must be | # encoded with \uXXXX escapes | | h1_blob = "'" base64 "'" | # XXX: where to import base64 from ? Perhaps structure from Indicating Character Encoding and Language for HTTP Header Field Parameters https://tools.ietf.org/html/draft-ietf-httpbis-rfc5987bis-03 should also be parseable as common structure ? That makes: h1_value /= <ext-value; defined on [draft-ietf-httpbis-rfc5987bis]> ; This MUST NOT be produced expect when relevant ; specification "opt in" syntax, see [draft-ietf-httpbis-rfc5987bis] ; <h1_unicode_string> is preferred instead. Is this parseable unambiguously? Anyway common strcture syntax must take account that draft-ietf-httpbis-rfc5987bis-03 syntax is not parsed as some other common structure syntax. 3.2.1. Definition https://tools.ietf.org/html/draft-ietf-httpbis-rfc5987bis-03#section-3.2.1 gives | ext-value = charset "'" [ language ] "'" value-chars | ; like RFC 2231's <extended-initial-value> | ; (see [RFC2231], Section 7) | | charset = "UTF-8" / mime-charset | | mime-charset = 1*mime-charsetc | mime-charsetc = ALPHA / DIGIT | / "!" / "#" / "$" / "%" / "&" | / "+" / "-" / "^" / "_" / "`" | / "{" / "}" / "~" | ; as <mime-charset> in Section 2.3 of [RFC2978] | ; except that the single quote is not included | ; SHOULD be registered in the IANA charset registry | | language = <Language-Tag, see [RFC5646], Section 2.1> | | value-chars = *( pct-encoded / attr-char ) | | pct-encoded = "%" HEXDIG HEXDIG | ; see [RFC3986], Section 2.1 | | attr-char = ALPHA / DIGIT | / "!" / "#" / "$" / "&" / "+" / "-" / "." | / "^" / "_" / "`" / "|" / "~" | ; token except ( "*" / "'" / "%" ) / Kari Hurtta
Received on Saturday, 15 October 2016 06:45:58 UTC