draft-ietf-httpbis-rfc5987bis-05.txt | draft-ietf-httpbis-rfc5987bis-latest.txt | |||
---|---|---|---|---|
HTTP Working Group J. Reschke | HTTP Working Group J. Reschke | |||
Internet-Draft greenbytes | Internet-Draft greenbytes | |||
Obsoletes: 5987 (if approved) March 2, 2017 | Obsoletes: 5987 (if approved) July 6, 2024 | |||
Intended status: Standards Track | Intended status: Standards Track | |||
Expires: September 3, 2017 | Expires: January 7, 2025 | |||
Indicating Character Encoding and Language for HTTP Header Field | Indicating Character Encoding and Language for HTTP Header Field | |||
Parameters | Parameters | |||
draft-ietf-httpbis-rfc5987bis-05 | draft-ietf-httpbis-rfc5987bis-latest | |||
Abstract | Abstract | |||
By default, header field values in Hypertext Transfer Protocol (HTTP) | By default, header field values in Hypertext Transfer Protocol (HTTP) | |||
messages cannot easily carry characters outside the US-ASCII coded | messages cannot easily carry characters outside the US-ASCII coded | |||
character set. RFC 2231 defines an encoding mechanism for use in | character set. RFC 2231 defines an encoding mechanism for use in | |||
parameters inside Multipurpose Internet Mail Extensions (MIME) header | parameters inside Multipurpose Internet Mail Extensions (MIME) header | |||
field values. This document specifies an encoding suitable for use | field values. This document specifies an encoding suitable for use | |||
in HTTP header fields that is compatible with a simplified profile of | in HTTP header fields that is compatible with a simplified profile of | |||
the encoding defined in RFC 2231. | the encoding defined in RFC 2231. | |||
This document obsoletes RFC 5987. | This document obsoletes RFC 5987. | |||
Editorial Note (To be removed by RFC Editor before publication) | ||||
Discussion of this draft takes place on the HTTPBIS working group | ||||
mailing list (ietf-http-wg@w3.org), which is archived at | ||||
<https://lists.w3.org/Archives/Public/ietf-http-wg/>. | ||||
Working Group information can be found at <http://httpwg.github.io/>; | ||||
source code and issues list for this draft can be found at | ||||
<https://github.com/httpwg/http-extensions>. | ||||
The changes in this draft are summarized in Appendix C. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on September 3, 2017. | This Internet-Draft will expire on January 7, 2025. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2024 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Notational Conventions . . . . . . . . . . . . . . . . . . . 4 | 2. Notational Conventions . . . . . . . . . . . . . . . . . . . 3 | |||
3. Comparison to RFC 2231 and Definition of the Encoding . . . . 4 | 3. Comparison to RFC 2231 and Definition of the Encoding . . . . 3 | |||
3.1. Parameter Continuations . . . . . . . . . . . . . . . . . 4 | 3.1. Parameter Continuations . . . . . . . . . . . . . . . . . 4 | |||
3.2. Parameter Value Character Encoding and Language | 3.2. Parameter Value Character Encoding and Language | |||
Information . . . . . . . . . . . . . . . . . . . . . . . 5 | Information . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3.2.1. Definition . . . . . . . . . . . . . . . . . . . . . 5 | 3.2.1. Definition . . . . . . . . . . . . . . . . . . . . . 4 | |||
3.2.2. Historical Notes . . . . . . . . . . . . . . . . . . 7 | 3.2.2. Historical Notes . . . . . . . . . . . . . . . . . . 6 | |||
3.2.3. Examples . . . . . . . . . . . . . . . . . . . . . . 7 | 3.2.3. Examples . . . . . . . . . . . . . . . . . . . . . . 6 | |||
3.3. Language Specification in Encoded Words . . . . . . . . . 8 | 3.3. Language Specification in Encoded Words . . . . . . . . . 7 | |||
4. Guidelines for Usage in HTTP Header Field Definitions . . . . 8 | 4. Guidelines for Usage in HTTP Header Field Definitions . . . . 7 | |||
4.1. When to Use the Extension . . . . . . . . . . . . . . . . 9 | 4.1. When to Use the Extension . . . . . . . . . . . . . . . . 8 | |||
4.2. Error Handling . . . . . . . . . . . . . . . . . . . . . 9 | 4.2. Error Handling . . . . . . . . . . . . . . . . . . . . . 8 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 10 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 9 | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 11 | 7.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
Appendix A. Changes from RFC 5987 . . . . . . . . . . . . . . . 14 | Appendix A. Changes from RFC 5987 . . . . . . . . . . . . . . . 12 | |||
Appendix B. Implementation Report . . . . . . . . . . . . . . . 14 | Appendix B. Implementation Report . . . . . . . . . . . . . . . 12 | |||
Appendix C. Change Log (to be removed by RFC Editor before | Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
publication) . . . . . . . . . . . . . . . . . . . . 15 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
C.1. Since RFC5987 . . . . . . . . . . . . . . . . . . . . . . 15 | ||||
C.2. Since draft-reschke-rfc5987bis-00 . . . . . . . . . . . . 15 | ||||
C.3. Since draft-reschke-rfc5987bis-01 . . . . . . . . . . . . 15 | ||||
C.4. Since draft-reschke-rfc5987bis-02 . . . . . . . . . . . . 15 | ||||
C.5. Since draft-reschke-rfc5987bis-03 . . . . . . . . . . . . 15 | ||||
C.6. Since draft-reschke-rfc5987bis-04 . . . . . . . . . . . . 15 | ||||
C.7. Since draft-reschke-rfc5987bis-05 . . . . . . . . . . . . 15 | ||||
C.8. Since draft-reschke-rfc5987bis-06 . . . . . . . . . . . . 15 | ||||
C.9. Since draft-ietf-httpbis-rfc5987bis-00 . . . . . . . . . 16 | ||||
C.10. Since draft-ietf-httpbis-rfc5987bis-01 . . . . . . . . . 16 | ||||
C.11. Since draft-ietf-httpbis-rfc5987bis-02 . . . . . . . . . 16 | ||||
C.12. Since draft-ietf-httpbis-rfc5987bis-03 . . . . . . . . . 16 | ||||
C.13. Since draft-ietf-httpbis-rfc5987bis-04 . . . . . . . . . 16 | ||||
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 16 | ||||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 17 | ||||
1. Introduction | 1. Introduction | |||
Use of characters outside the US-ASCII coded character set | Use of characters outside the US-ASCII coded character set | |||
([RFC0020]) in HTTP header fields ([RFC7230]) is non-trivial: | ([RFC0020]) in HTTP header fields ([RFC7230]) is non-trivial: | |||
o The HTTP specification discourages use of non-US-ASCII characters | o The HTTP specification discourages use of non-US-ASCII characters | |||
in field values, placing them into the "obs-text" ABNF production | in field values, placing them into the "obs-text" Augmented | |||
([RFC7230], Section 3.2). | Backus-Naur Form (ABNF) production ([RFC7230], Section 3.2). | |||
o Furthermore, it stays silent about default character encoding | o Furthermore, it stays silent about default character encoding | |||
schemes for field values, so any use of non-US-ASCII characters | schemes for field values, so any use of non-US-ASCII characters | |||
would need to be specific to the field definition, or would | would need to be specific to the field definition or would require | |||
require some other kind of out-of-band information. | some other kind of out-of-band information. | |||
o Finally, some APIs assume a default character encoding scheme in | o Finally, some APIs assume a default character encoding scheme in | |||
order to map from the octet sequences (obtained from the HTTP | order to map from the octet sequences (obtained from the HTTP | |||
message) to character sequences: for instance, the XMLHttpRequest | message) to character sequences: for instance, the XMLHttpRequest | |||
API ([XMLHttpRequest]) uses the Interface Definition Language type | API ([XMLHttpRequest]) uses the Interface Definition Language type | |||
"ByteString", effectively resulting in the ISO-8859-1 character | "ByteString", effectively resulting in the ISO-8859-1 character | |||
encoding scheme [ISO-8859-1] being used. | encoding scheme ([ISO-8859-1]) being used. | |||
On the other hand, RFC 2231 defines an encoding mechanism for | On the other hand, RFC 2231 defines an encoding mechanism for | |||
parameters inside MIME header fields ([RFC2231]), which, as opposed | parameters inside MIME header fields ([RFC2231]), which, as opposed | |||
to HTTP messages, do need to be sent over non-binary transports. | to HTTP messages, do need to be sent over non-binary transports. | |||
This document specifies an encoding suitable for use in HTTP header | This document specifies an encoding suitable for use in HTTP header | |||
fields that is compatible with a simplified profile of the encoding | fields that is compatible with a simplified profile of the encoding | |||
defined in RFC 2231. It can be applied to any HTTP header field that | defined in RFC 2231. It can be applied to any HTTP header field that | |||
uses the common "parameter" ("name=value") syntax. | uses the common "parameter" ("name=value") syntax. | |||
This document obsoletes [RFC5987] and moves it to "historic" status; | This document obsoletes [RFC5987] and moves it to "Historic" status; | |||
the changes are summarized in Appendix A. | the changes are summarized in Appendix A. | |||
Note: in the remainder of this document, RFC 2231 is only | Note: In the remainder of this document, RFC 2231 is only | |||
referenced for the purpose of explaining the choice of features | referenced for the purpose of explaining the choice of features | |||
that were adopted; they are therefore purely informative. | that were adopted; therefore, they are purely informative. | |||
Note: this encoding does not apply to message payloads transmitted | Note: This encoding does not apply to message payloads transmitted | |||
over HTTP, such as when using the media type "multipart/form-data" | over HTTP, such as when using the media type "multipart/form-data" | |||
([RFC7578]). | ([RFC7578]). | |||
2. Notational Conventions | 2. Notational Conventions | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
document are to be interpreted as described in [RFC2119]. | "OPTIONAL" in this document are to be interpreted as described in | |||
[RFC2119]. | ||||
This specification uses the ABNF (Augmented Backus-Naur Form) | This specification uses the ABNF notation defined in [RFC5234]. The | |||
notation defined in [RFC5234]. The following core rules are included | following core rules are included by reference, as defined in | |||
by reference, as defined in [RFC5234], Appendix B.1: ALPHA (letters), | [RFC5234], Appendix B.1: ALPHA (letters), DIGIT (decimal 0-9), HEXDIG | |||
DIGIT (decimal 0-9), HEXDIG (hexadecimal 0-9/A-F/a-f), and LWSP | (hexadecimal 0-9/A-F/a-f), and LWSP (linear whitespace). | |||
(linear whitespace). | ||||
This specification uses terminology defined in [RFC6365], namely: | This specification uses terminology defined in [RFC6365], namely: | |||
""character encoding scheme"" (below abbreviated to ""character | ""character encoding scheme"" (abbreviated to ""character encoding"" | |||
encoding""), ""charset"" and ""coded character set"". | below), ""charset"", and ""coded character set"". | |||
Note that this differs from RFC 2231, which uses the term "character | Note that this differs from RFC 2231, which uses the term "character | |||
set" for "character encoding scheme". | set" for "character encoding scheme". | |||
3. Comparison to RFC 2231 and Definition of the Encoding | 3. Comparison to RFC 2231 and Definition of the Encoding | |||
RFC 2231 defines several extensions to MIME. The sections below | RFC 2231 defines several extensions to MIME. The sections below | |||
discuss if and how they apply to HTTP header fields. | discuss if and how they apply to HTTP header fields. | |||
In short: | In short: | |||
skipping to change at page 5, line 8 ¶ | skipping to change at page 4, line 27 ¶ | |||
Section 3 of [RFC2231] defines a mechanism that deals with the length | Section 3 of [RFC2231] defines a mechanism that deals with the length | |||
limitations that apply to MIME headers. These limitations do not | limitations that apply to MIME headers. These limitations do not | |||
apply to HTTP ([RFC7231], Appendix A.6). | apply to HTTP ([RFC7231], Appendix A.6). | |||
Thus, parameter continuations are not part of the encoding defined by | Thus, parameter continuations are not part of the encoding defined by | |||
this specification. | this specification. | |||
3.2. Parameter Value Character Encoding and Language Information | 3.2. Parameter Value Character Encoding and Language Information | |||
Section 4 of [RFC2231] specifies how to embed language information | Section 4 of [RFC2231] specifies how to embed language information | |||
into parameter values, and also how to encode non-ASCII characters, | into parameter values and also how to encode non-ASCII characters, | |||
dealing with restrictions both in MIME and HTTP header field | dealing with restrictions both in MIME and HTTP header field | |||
parameters. | parameters. | |||
However, RFC 2231 does not specify a mandatory-to-implement character | However, RFC 2231 does not specify a mandatory-to-implement character | |||
encoding, making it hard for senders to decide which encoding to use. | encoding, making it hard for senders to decide which encoding to use. | |||
Thus, recipients implementing this specification MUST support the | Thus, recipients implementing this specification MUST support the | |||
"UTF-8" character encoding [RFC3629]. | "UTF-8" character encoding [RFC3629]. | |||
Furthermore, RFC 2231 allows the character encoding information to be | Furthermore, RFC 2231 allows the character encoding information to be | |||
left out. The encoding defined by this specification does not allow | left out. The encoding defined by this specification does not allow | |||
that. | that. | |||
3.2.1. Definition | 3.2.1. Definition | |||
The presence of extended parameter values usually is indicated by a | The presence of extended parameter values is usually indicated by a | |||
parameter name ending in an asterisk character. Note however that | parameter name ending in an asterisk character. However, note that | |||
this is just a convention, and that it needs to be explicitly | this is just a convention, and that the extended parameter values | |||
specified in the definition of the header field using this extension | need to be explicitly specified in the definition of the header field | |||
(see Section 4). | using this extension (see Section 4). | |||
The ABNF for extended parameter values is specified below: | The ABNF for extended parameter values is specified below: | |||
ext-value = charset "'" [ language ] "'" value-chars | ext-value = charset "'" [ language ] "'" value-chars | |||
; like RFC 2231's <extended-initial-value> | ; like RFC 2231's <extended-initial-value> | |||
; (see [RFC2231], Section 7) | ; (see [RFC2231], Section 7) | |||
charset = "UTF-8" / mime-charset | charset = "UTF-8" / mime-charset | |||
mime-charset = 1*mime-charsetc | mime-charset = 1*mime-charsetc | |||
skipping to change at page 6, line 43 ¶ | skipping to change at page 5, line 43 ¶ | |||
consists of three parts: | consists of three parts: | |||
1. the REQUIRED character encoding name (charset), | 1. the REQUIRED character encoding name (charset), | |||
2. the OPTIONAL language information (language), and | 2. the OPTIONAL language information (language), and | |||
3. a character sequence representing the actual value (value-chars), | 3. a character sequence representing the actual value (value-chars), | |||
separated by single quote characters. | separated by single quote characters. | |||
Note that both character encoding names and language tags are | Note that both character encoding names and language tags are | |||
restricted to the US-ASCII coded character set, and are matched case- | restricted to the US-ASCII coded character set and are matched case- | |||
insensitively (see [RFC2978], Section 2.3 and [RFC5646], | insensitively (see Section 2.3 of [RFC2978] and Section 2.1.1 of | |||
Section 2.1.1). | [RFC5646]). | |||
Inside the value part, characters not contained in attr-char are | Inside the value part, characters not contained in attr-char are | |||
encoded into an octet sequence using the specified character | encoded into an octet sequence using the specified character | |||
encoding. That octet sequence is then percent-encoded as specified | encoding. That octet sequence is then percent-encoded as specified | |||
in Section 2.1 of [RFC3986]. | in Section 2.1 of [RFC3986]. | |||
Producers MUST use the "UTF-8" ([RFC3629]) character encoding. | Producers MUST use the "UTF-8" ([RFC3629]) character encoding. | |||
Extension character encodings (mime-charset) are reserved for future | Extension character encodings (mime-charset) are reserved for future | |||
use. | use. | |||
Note: recipients should be prepared to handle encoding errors, | Note: Recipients should be prepared to handle encoding errors, | |||
such as malformed or incomplete percent escape sequences, or non- | such as malformed or incomplete percent escape sequences, or non- | |||
decodable octet sequences, in a robust manner. This specification | decodable octet sequences, in a robust manner. This specification | |||
does not mandate any specific behavior, for instance, the | does not mandate any specific behavior; for instance, the | |||
following strategies are all acceptable: | following strategies are all acceptable: | |||
* ignoring the parameter, | * ignoring the parameter, | |||
* stripping a non-decodable octet sequence, | * stripping a non-decodable octet sequence, and | |||
* substituting a non-decodable octet sequence by a replacement | * substituting a non-decodable octet sequence by a replacement | |||
character, such as the Unicode character U+FFFD (Replacement | character, such as the Unicode character U+FFFD (Replacement | |||
Character). | Character). | |||
3.2.2. Historical Notes | 3.2.2. Historical Notes | |||
The RFC 7230 token production ([RFC7230], Section 3.2.6) differs from | The RFC 7230 token production ([RFC7230], Section 3.2.6) differs from | |||
the production used in RFC 2231 (imported from Section 5.1 of | the production used in RFC 2231 (imported from Section 5.1 of | |||
[RFC2045]) in that curly braces ("{" and "}") are excluded. Thus, | [RFC2045]) in that curly braces (i.e., "{" and "}") are excluded. | |||
these two characters are excluded from the attr-char production as | Thus, these two characters are excluded from the attr-char production | |||
well. | as well. | |||
The <mime-charset> ABNF defined here differs from the one in | The <mime-charset> ABNF defined here differs from the one in | |||
Section 2.3 of [RFC2978] in that it does not allow the single quote | Section 2.3 of [RFC2978] in that it does not allow the single quote | |||
character (see also RFC Errata ID 1912 [Err1912]). In practice, no | character (see also RFC Errata ID 1912 [Err1912]). In practice, no | |||
character encoding names using that character have been registered at | character encoding names using that character have been registered at | |||
the time of this writing. | the time of this writing. | |||
For backwards compatibility with RFC 2231, the encoding defined by | For backwards compatibility with RFC 2231, the encoding defined by | |||
this specification deviates from common parameter syntax in that the | this specification deviates from common parameter syntax in that the | |||
quoted-string notation is not allowed. Implementations using generic | quoted-string notation is not allowed. Implementations using generic | |||
skipping to change at page 8, line 14 ¶ | skipping to change at page 7, line 14 ¶ | |||
Non-extended notation, using "quoted-string": | Non-extended notation, using "quoted-string": | |||
foo: bar; title="US-$ rates" | foo: bar; title="US-$ rates" | |||
Extended notation, using the Unicode character U+00A3 ("£", POUND | Extended notation, using the Unicode character U+00A3 ("£", POUND | |||
SIGN): | SIGN): | |||
foo: bar; title*=utf-8'en'%C2%A3%20rates | foo: bar; title*=utf-8'en'%C2%A3%20rates | |||
Note: the Unicode pound sign character U+00A3 was encoded into the | Note: The Unicode pound sign character U+00A3 was encoded into the | |||
octet sequence C2 A3 using the UTF-8 character encoding, then | octet sequence C2 A3 using the UTF-8 character encoding, and then | |||
percent-encoded. Also, note that the space character was encoded as | percent-encoded. Also, note that the space character was encoded as | |||
%20, as it is not contained in attr-char. | %20, as it is not contained in attr-char. | |||
Extended notation, using the Unicode characters U+00A3 ("£", POUND | Extended notation, using the Unicode characters U+00A3 ("£", POUND | |||
SIGN) and U+20AC ("€", EURO SIGN): | SIGN) and U+20AC ("€", EURO SIGN): | |||
foo: bar; title*=UTF-8''%c2%a3%20and%20%e2%82%ac%20rates | foo: bar; title*=UTF-8''%c2%a3%20and%20%e2%82%ac%20rates | |||
Note: the Unicode pound sign character U+00A3 was encoded into the | Note: The Unicode pound sign character U+00A3 was encoded into the | |||
octet sequence C2 A3 using the UTF-8 character encoding, then | octet sequence C2 A3 using the UTF-8 character encoding, and then | |||
percent-encoded. Likewise, the Unicode euro sign character U+20AC | percent-encoded. Likewise, the Unicode euro sign character U+20AC | |||
was encoded into the octet sequence E2 82 AC, then percent-encoded. | was encoded into the octet sequence E2 82 AC, and then percent- | |||
Also note that HEXDIG allows both lowercase and uppercase characters, | encoded. Also note that HEXDIG allows both lowercase and uppercase | |||
so recipients must understand both, and that the language information | characters, so recipients must understand both, and that the language | |||
is optional, while the character encoding is not. | information is optional, while the character encoding is not. | |||
3.3. Language Specification in Encoded Words | 3.3. Language Specification in Encoded Words | |||
Section 5 of [RFC2231] extends the encoding defined in [RFC2047] to | Section 5 of [RFC2231] extends the encoding defined in [RFC2047] to | |||
also support language specification in encoded words. RFC 2616, the | also support language specification in encoded words. RFC 2616, the | |||
now-obsolete HTTP/1.1 specification, did refer to RFC 2047 | now-obsolete HTTP/1.1 specification, did refer to RFC 2047 | |||
([RFC2616], Section 2.2). However, it wasn't clear to which header | ([RFC2616], Section 2.2). However, it wasn't clear to which header | |||
field it applied. Consequently, the current revision of the HTTP/1.1 | field it applied. Consequently, the current revision of the HTTP/1.1 | |||
specification has deprecated use of the encoding forms defined in RFC | specification has deprecated use of the encoding forms defined in RFC | |||
2047 (see Section 3.2.4 of [RFC7230]). | 2047 (see Section 3.2.4 of [RFC7230]). | |||
Thus, this specification does not include this feature. | Thus, this specification does not include this feature. | |||
4. Guidelines for Usage in HTTP Header Field Definitions | 4. Guidelines for Usage in HTTP Header Field Definitions | |||
Specifications of HTTP header fields that use the extensions defined | Specifications of HTTP header fields that use the extensions defined | |||
in Section 3.2 ought to clearly state that. A simple way to achieve | in Section 3.2 ought to clearly state that. A simple way to achieve | |||
this is to normatively reference this specification, and to include | this is to normatively reference this specification and to include | |||
the ext-value production into the ABNF for specific header field | the ext-value production into the ABNF for specific header field | |||
parameters. | parameters. | |||
For instance: | For instance: | |||
foo = token ";" LWSP title-param | foo = token ";" LWSP title-param | |||
title-param = "title" LWSP "=" LWSP value | title-param = "title" LWSP "=" LWSP value | |||
/ "title*" LWSP "=" LWSP ext-value | / "title*" LWSP "=" LWSP ext-value | |||
ext-value = <see draft-ietf-httpbis-rfc5987bis, Section 3.2> | ext-value = <see RFC 8187, Section 3.2> | |||
[[pub: Upon publication as RFC, the string "draft-ietf-httpbis- | ||||
rfc5987bis" needs to be replaced with the RFC name, and this comment | ||||
needs to be removed.]] | ||||
Note: The Parameter Value Continuation feature defined in | Note: The Parameter Value Continuation feature defined in | |||
Section 3 of [RFC2231] makes it impossible to have multiple | Section 3 of [RFC2231] makes it impossible to have multiple | |||
instances of extended parameters with identical names, as the | instances of extended parameters with identical names, as the | |||
processing of continuations would become ambiguous. Thus, | processing of continuations would become ambiguous. Thus, | |||
specifications using this extension are advised to disallow this | specifications using this extension are advised to disallow this | |||
case for compatibility with RFC 2231. | case for compatibility with RFC 2231. | |||
Note: This specification does not automatically assign a new | Note: This specification does not automatically assign a new | |||
interpretation to parameter names ending in an asterisk. As | interpretation to parameter names ending in an asterisk. As | |||
pointed out above, it's up to the specification for the non- | pointed out above, it's up to the specification for the non- | |||
extended parameter to "opt in" to the syntax defined here. That | extended parameter to "opt in" to the syntax defined here. That | |||
being said, some existing implementations are known to | being said, some existing implementations are known to | |||
automatically switch to the use of this notation when a parameter | automatically switch to using this notation when a parameter name | |||
name ends with an asterisk, thus using parameter names ending in | ends with an asterisk; thus, using parameter names ending in an | |||
an asterisk for something else is likely to cause interoperability | asterisk for something else is likely to cause interoperability | |||
problems. | problems. | |||
4.1. When to Use the Extension | 4.1. When to Use the Extension | |||
Section 4.2 of [RFC2277] requires that protocol elements containing | Section 4.2 of [RFC2277] requires that protocol elements containing | |||
human-readable text are able to carry language information. Thus, | human-readable text be able to carry language information. Thus, the | |||
the ext-value production ought to be always used when the parameter | ext-value production ought to always be used when the parameter value | |||
value is of textual nature and its language is known. | is of a textual nature and its language is known. | |||
Furthermore, the extension ought to also be used whenever the | Furthermore, the extension ought to also be used whenever the | |||
parameter value needs to carry characters not present in the US-ASCII | parameter value needs to carry characters not present in the US-ASCII | |||
([RFC0020]) coded character set (note that it would be unacceptable | coded character set ([RFC0020]); note that it would be unacceptable | |||
to define a new parameter that would be restricted to a subset of the | to define a new parameter that would be restricted to a subset of the | |||
Unicode character set). | Unicode character set. | |||
4.2. Error Handling | 4.2. Error Handling | |||
Header field specifications need to define whether multiple instances | Header field specifications need to define whether multiple instances | |||
of parameters with identical names are allowed, and how they should | of parameters with identical names are allowed and how they should be | |||
be processed. This specification suggests that a parameter using the | processed. This specification suggests that a parameter using the | |||
extended syntax takes precedence. This would allow producers to use | extended syntax takes precedence. This would allow producers to use | |||
both formats without breaking recipients that do not understand the | both formats without breaking recipients that do not understand the | |||
extended syntax yet. | extended syntax yet. | |||
Example: | Example: | |||
foo: bar; title="EURO exchange rates"; | foo: bar; title="EURO exchange rates"; | |||
title*=utf-8''%e2%82%ac%20exchange%20rates | title*=utf-8''%e2%82%ac%20exchange%20rates | |||
In this case, the sender provides an ASCII version of the title for | In this case, the sender provides an ASCII version of the title for | |||
legacy recipients, but also includes an internationalized version for | legacy recipients, but also includes an internationalized version for | |||
recipients understanding this specification -- the latter obviously | recipients understanding this specification -- the latter obviously | |||
ought to prefer the new syntax over the old one. | ought to prefer the new syntax over the old one. | |||
5. Security Considerations | 5. Security Considerations | |||
The format described in this document makes it possible to transport | The format described in this document makes it possible to transport | |||
non-ASCII characters, and thus enables character "spoofing" | non-ASCII characters, and thus enables character "spoofing" scenarios | |||
scenarios, in which a displayed value appears to be something other | in which a displayed value appears to be something other than it is. | |||
than it is. | ||||
Furthermore, there are known attack scenarios relating to decoding | Furthermore, there are known attack scenarios related to decoding | |||
UTF-8. | UTF-8. | |||
See Section 10 of [RFC3629] for more information on both topics. | See Section 10 of [RFC3629] for more information on both topics. | |||
In addition, the extension specified in this document makes it | In addition, the extension specified in this document makes it | |||
possible to transport multiple language variants for a single | possible to transport multiple language variants for a single | |||
parameter, and such use might allow spoofing attacks, where different | parameter, and such use might allow spoofing attacks where different | |||
language versions of the same parameter are not equivalent. Whether | language versions of the same parameter are not equivalent. Whether | |||
this attack is useful as an attack depends on the parameter | this attack is effective as an attack depends on the parameter | |||
specified. | specified. | |||
6. IANA Considerations | 6. IANA Considerations | |||
There are no IANA Considerations related to this specification. | This document does not require any IANA actions. | |||
7. References | 7. References | |||
7.1. Normative References | 7.1. Normative References | |||
[RFC0020] Cerf, V., "ASCII format for network interchange", STD 80, | [RFC0020] Cerf, V., "ASCII format for network interchange", STD 80, | |||
RFC 20, DOI 10.17487/RFC0020, October 1969, | RFC 20, DOI 10.17487/RFC0020, October 1969, | |||
<http://www.rfc-editor.org/info/rfc20>. | <https://www.rfc-editor.org/info/rfc20>. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<http://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC2978] Freed, N. and J. Postel, "IANA Charset Registration | [RFC2978] Freed, N. and J. Postel, "IANA Charset Registration | |||
Procedures", BCP 19, RFC 2978, DOI 10.17487/RFC2978, | Procedures", BCP 19, RFC 2978, DOI 10.17487/RFC2978, | |||
October 2000, <http://www.rfc-editor.org/info/rfc2978>. | October 2000, <https://www.rfc-editor.org/info/rfc2978>. | |||
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO | [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO | |||
10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November | 10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November | |||
2003, <http://www.rfc-editor.org/info/rfc3629>. | 2003, <https://www.rfc-editor.org/info/rfc3629>. | |||
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | |||
Resource Identifier (URI): Generic Syntax", STD 66, | Resource Identifier (URI): Generic Syntax", STD 66, | |||
RFC 3986, DOI 10.17487/RFC3986, January 2005, | RFC 3986, DOI 10.17487/RFC3986, January 2005, | |||
<http://www.rfc-editor.org/info/rfc3986>. | <https://www.rfc-editor.org/info/rfc3986>. | |||
[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | |||
Specifications: ABNF", STD 68, RFC 5234, | Specifications: ABNF", STD 68, RFC 5234, | |||
DOI 10.17487/RFC5234, January 2008, | DOI 10.17487/RFC5234, January 2008, | |||
<http://www.rfc-editor.org/info/rfc5234>. | <https://www.rfc-editor.org/info/rfc5234>. | |||
[RFC5646] Phillips, A., Ed. and M. Davis, Ed., "Tags for Identifying | [RFC5646] Phillips, A., Ed. and M. Davis, Ed., "Tags for Identifying | |||
Languages", BCP 47, RFC 5646, DOI 10.17487/RFC5646, | Languages", BCP 47, RFC 5646, DOI 10.17487/RFC5646, | |||
September 2009, <http://www.rfc-editor.org/info/rfc5646>. | September 2009, <https://www.rfc-editor.org/info/rfc5646>. | |||
[RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | [RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | |||
Protocol (HTTP/1.1): Message Syntax and Routing", | Protocol (HTTP/1.1): Message Syntax and Routing", | |||
RFC 7230, DOI 10.17487/RFC7230, June 2014, | RFC 7230, DOI 10.17487/RFC7230, June 2014, | |||
<http://www.rfc-editor.org/info/rfc7230>. | <https://www.rfc-editor.org/info/rfc7230>. | |||
[RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | [RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | |||
Protocol (HTTP/1.1): Semantics and Content", RFC 7231, | Protocol (HTTP/1.1): Semantics and Content", RFC 7231, | |||
DOI 10.17487/RFC7231, June 2014, | DOI 10.17487/RFC7231, June 2014, | |||
<http://www.rfc-editor.org/info/rfc7231>. | <https://www.rfc-editor.org/info/rfc7231>. | |||
7.2. Informative References | 7.2. Informative References | |||
[Err1912] RFC Errata, "Errata ID 1912, RFC 2978", October 2009, | [Err1912] RFC Errata, "Erratum ID 1912, RFC 2978", | |||
<http://www.rfc-editor.org>. | <https://www.rfc-editor.org/errata/eid1912>. | |||
[ISO-8859-1] | [ISO-8859-1] | |||
International Organization for Standardization, | International Organization for Standardization, | |||
"Information technology -- 8-bit single-byte coded graphic | "Information technology -- 8-bit single-byte coded graphic | |||
character sets -- Part 1: Latin alphabet No. 1", ISO/ | character sets -- Part 1: Latin alphabet No. 1", ISO/ | |||
IEC 8859-1:1998, 1998. | IEC 8859-1:1998, 1998. | |||
[RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | |||
Extensions (MIME) Part One: Format of Internet Message | Extensions (MIME) Part One: Format of Internet Message | |||
Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996, | Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996, | |||
<http://www.rfc-editor.org/info/rfc2045>. | <https://www.rfc-editor.org/info/rfc2045>. | |||
[RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions) | [RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions) | |||
Part Three: Message Header Extensions for Non-ASCII Text", | Part Three: Message Header Extensions for Non-ASCII Text", | |||
RFC 2047, DOI 10.17487/RFC2047, November 1996, | RFC 2047, DOI 10.17487/RFC2047, November 1996, | |||
<http://www.rfc-editor.org/info/rfc2047>. | <https://www.rfc-editor.org/info/rfc2047>. | |||
[RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded | [RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded | |||
Word Extensions: Character Sets, Languages, and | Word Extensions: Character Sets, Languages, and | |||
Continuations", RFC 2231, DOI 10.17487/RFC2231, November | Continuations", RFC 2231, DOI 10.17487/RFC2231, November | |||
1997, <http://www.rfc-editor.org/info/rfc2231>. | 1997, <https://www.rfc-editor.org/info/rfc2231>. | |||
[RFC2277] Alvestrand, H., "IETF Policy on Character Sets and | [RFC2277] Alvestrand, H., "IETF Policy on Character Sets and | |||
Languages", BCP 18, RFC 2277, DOI 10.17487/RFC2277, | Languages", BCP 18, RFC 2277, DOI 10.17487/RFC2277, | |||
January 1998, <http://www.rfc-editor.org/info/rfc2277>. | January 1998, <https://www.rfc-editor.org/info/rfc2277>. | |||
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., | [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., | |||
Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext | Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext | |||
Transfer Protocol -- HTTP/1.1", RFC 2616, | Transfer Protocol -- HTTP/1.1", RFC 2616, | |||
DOI 10.17487/RFC2616, June 1999, | DOI 10.17487/RFC2616, June 1999, | |||
<http://www.rfc-editor.org/info/rfc2616>. | <https://www.rfc-editor.org/info/rfc2616>. | |||
[RFC5987] Reschke, J., "Character Set and Language Encoding for | [RFC5987] Reschke, J., "Character Set and Language Encoding for | |||
Hypertext Transfer Protocol (HTTP) Header Field | Hypertext Transfer Protocol (HTTP) Header Field | |||
Parameters", RFC 5987, DOI 10.17487/RFC5987, August 2010, | Parameters", RFC 5987, DOI 10.17487/RFC5987, August 2010, | |||
<http://www.rfc-editor.org/info/rfc5987>. | <https://www.rfc-editor.org/info/rfc5987>. | |||
[RFC5988] Nottingham, M., "Web Linking", RFC 5988, | [RFC5988] Nottingham, M., "Web Linking", RFC 5988, | |||
DOI 10.17487/RFC5988, October 2010, | DOI 10.17487/RFC5988, October 2010, | |||
<http://www.rfc-editor.org/info/rfc5988>. | <https://www.rfc-editor.org/info/rfc5988>. | |||
[RFC6266] Reschke, J., "Use of the Content-Disposition Header Field | [RFC6266] Reschke, J., "Use of the Content-Disposition Header Field | |||
in the Hypertext Transfer Protocol (HTTP)", RFC 6266, | in the Hypertext Transfer Protocol (HTTP)", RFC 6266, | |||
DOI 10.17487/RFC6266, June 2011, | DOI 10.17487/RFC6266, June 2011, | |||
<http://www.rfc-editor.org/info/rfc6266>. | <https://www.rfc-editor.org/info/rfc6266>. | |||
[RFC6365] Hoffman, P. and J. Klensin, "Terminology Used in | [RFC6365] Hoffman, P. and J. Klensin, "Terminology Used in | |||
Internationalization in the IETF", BCP 166, RFC 6365, | Internationalization in the IETF", BCP 166, RFC 6365, | |||
DOI 10.17487/RFC6365, September 2011, | DOI 10.17487/RFC6365, September 2011, | |||
<http://www.rfc-editor.org/info/rfc6365>. | <https://www.rfc-editor.org/info/rfc6365>. | |||
[RFC7578] Masinter, L., "Returning Values from Forms: multipart/ | [RFC7578] Masinter, L., "Returning Values from Forms: multipart/ | |||
form-data", RFC 7578, DOI 10.17487/RFC7578, July 2015, | form-data", RFC 7578, DOI 10.17487/RFC7578, July 2015, | |||
<http://www.rfc-editor.org/info/rfc7578>. | <https://www.rfc-editor.org/info/rfc7578>. | |||
[RFC7616] Shekh-Yusef, R., Ed., Ahrens, D., and S. Bremer, "HTTP | [RFC7616] Shekh-Yusef, R., Ed., Ahrens, D., and S. Bremer, "HTTP | |||
Digest Access Authentication", RFC 7616, | Digest Access Authentication", RFC 7616, | |||
DOI 10.17487/RFC7616, September 2015, | DOI 10.17487/RFC7616, September 2015, | |||
<http://www.rfc-editor.org/info/rfc7616>. | <https://www.rfc-editor.org/info/rfc7616>. | |||
[RFC8053] Oiwa, Y., Watanabe, H., Takagi, H., Maeda, K., Hayashi, | [RFC8053] Oiwa, Y., Watanabe, H., Takagi, H., Maeda, K., Hayashi, | |||
T., and Y. Ioku, "HTTP Authentication Extensions for | T., and Y. Ioku, "HTTP Authentication Extensions for | |||
Interactive Clients", RFC 8053, DOI 10.17487/RFC8053, | Interactive Clients", RFC 8053, DOI 10.17487/RFC8053, | |||
January 2017, <http://www.rfc-editor.org/info/rfc8053>. | January 2017, <https://www.rfc-editor.org/info/rfc8053>. | |||
[XMLHttpRequest] | [XMLHttpRequest] | |||
WhatWG, "XMLHttpRequest", <https://xhr.spec.whatwg.org/>. | WhatWG, "XMLHttpRequest", <https://xhr.spec.whatwg.org/>. | |||
Appendix A. Changes from RFC 5987 | Appendix A. Changes from RFC 5987 | |||
This section summarizes the changes compared to [RFC5987]: | This section summarizes the changes compared to [RFC5987]: | |||
o The document title was changed to "Indicating Character Encoding | o The document title was changed to "Indicating Character Encoding | |||
and Language for HTTP Header Field Parameters". | and Language for HTTP Header Field Parameters". | |||
o The introduction was rewritten to better explain the issues around | o The introduction was rewritten to better explain the issues around | |||
non-ASCII characters in field values. | non-ASCII characters in field values. | |||
o The requirement to support the "ISO-8859-1" encoding was removed. | o The requirement to support the "ISO-8859-1" encoding was removed. | |||
o The document does not attempt to re-define a generic "parameter" | o This document no longer attempts to redefine a generic "parameter" | |||
ABNF anymore (it turned out that there really isn't a generic | ABNF (it turned out that there really isn't a generic definition | |||
definition of parameters in HTTP; for instance, there are subtle | of parameters in HTTP; for instance, there are subtle differences | |||
differences with respect to whitespace handling). | with respect to whitespace handling). | |||
o A note about defects in error handling in current implementations | o A note about defects in error handling in current implementations | |||
was removed, as it wasn't accurate anymore. | was removed, as it was no longer accurate. | |||
Appendix B. Implementation Report | Appendix B. Implementation Report | |||
The encoding defined in this document currently is used in four | The encoding defined in this document is currently used in four | |||
different HTTP header fields: | different HTTP header fields: | |||
o "Authentication-Control", defined in [RFC8053], | o "Authentication-Control", defined in [RFC8053], | |||
o "Authorization" (as used in HTTP Digest Authentication, defined in | o "Authorization" (as used in HTTP Digest Authentication, defined in | |||
[RFC7616]), | [RFC7616]), | |||
o "Content-Disposition", defined in [RFC6266], and | o "Content-Disposition", defined in [RFC6266], and | |||
o "Link", defined in [RFC5988]. | o "Link", defined in [RFC5988]. | |||
As the encoding is a profile/clarification of the one defined in | As the encoding is a profile/clarification of the one defined in | |||
[RFC2231] in 1997, many user agents already supported it for use in | [RFC2231] in 1997, many user agents already supported it for use in | |||
"Content-Disposition" when [RFC5987] got published. | "Content-Disposition" when [RFC5987] was published. | |||
Since the publication of [RFC5987], three more popular desktop user | Since the publication of [RFC5987], three more popular desktop user | |||
agents have added support for this encoding; see | agents have added support for this encoding; see | |||
<http://purl.org/NET/http/content-disposition-tests#encoding- | <http://purl.org/NET/http/content-disposition-tests#encoding- | |||
2231-char> for details. At this time, the current versions of all | 2231-char> for details. At this time, the current versions of all | |||
major desktop user agents support it. | major desktop user agents support it. | |||
Note that the implementation in Internet Explorer 9 does not support | Note that the implementation in Internet Explorer 9 does not support | |||
the ISO-8859-1 character encoding; this document revision | the ISO-8859-1 character encoding; this document revision | |||
acknowledges that UTF-8 is sufficient for expressing all code points, | acknowledges that UTF-8 is sufficient for expressing all code points | |||
and removes the requirement to support ISO-8859-1. | and removes the requirement to support ISO-8859-1. | |||
The "Link" header field, on the other hand, was more recently | The "Link" header field, on the other hand, was more recently | |||
specified in [RFC5988]. At the time of this writing, no User Agent | specified in [RFC5988]. At the time of this writing, no user agent | |||
except Firefox supported the "title*" parameter (starting with | except Firefox supported the "title*" parameter (starting with | |||
release 15). | release 15). | |||
Section 3.4 of [RFC7616] defines the "username*" parameter for use in | Section 3.4 of [RFC7616] defines the "username*" parameter for use in | |||
HTTP Digest Authentication. At the time of writing, no User Agent | HTTP Digest Authentication. At the time of writing, no user agent | |||
implemented this extension. | implemented this extension. | |||
Appendix C. Change Log (to be removed by RFC Editor before publication) | ||||
C.1. Since RFC5987 | ||||
Only editorial changes for the purpose of starting the revision | ||||
process (obs5987). | ||||
C.2. Since draft-reschke-rfc5987bis-00 | ||||
Resolved issues "iso-8859-1" and "title" (title simplified). Added | ||||
and resolved issue "historic5987". | ||||
C.3. Since draft-reschke-rfc5987bis-01 | ||||
Added issues "httpbis", "parmsyntax", "terminology" and | ||||
"valuesyntax". Closed issue "impls". | ||||
C.4. Since draft-reschke-rfc5987bis-02 | ||||
Resolved issue "terminology". | ||||
C.5. Since draft-reschke-rfc5987bis-03 | ||||
In Section 3.2, pull historical notes into a separate subsection. | ||||
Resolved issues "valuesyntax" and "parmsyntax". | ||||
C.6. Since draft-reschke-rfc5987bis-04 | ||||
Update status of Firefox support in HTTP Link Header field. | ||||
C.7. Since draft-reschke-rfc5987bis-05 | ||||
Update status of Firefox support in HTTP Link Header field. | ||||
C.8. Since draft-reschke-rfc5987bis-06 | ||||
Update status with respect to Safari 6. | ||||
Started work on update with respect to RFC 723x. | ||||
C.9. Since draft-ietf-httpbis-rfc5987bis-00 | ||||
Editorial changes; introducing non-ASCII characters into author's | ||||
address, acknowledgements, and examples. | ||||
C.10. Since draft-ietf-httpbis-rfc5987bis-01 | ||||
Removed mention of RFC 2616 from Abstract and Introduction. | ||||
Reference RFC 20 for US-ASCII. | ||||
Do not attempt to define a generic parameter ABNF; just concentrate | ||||
on the parameter value syntax. | ||||
C.11. Since draft-ietf-httpbis-rfc5987bis-02 | ||||
RFC 2388 -> RFC 7578. | ||||
Expand on the motivation (see <https://github.com/httpwg/http- | ||||
extensions/issues/213>). | ||||
Mention RFC 7616 in implementation report. | ||||
C.12. Since draft-ietf-httpbis-rfc5987bis-03 | ||||
Fixed one editorial issue. Updated XHR reference. | ||||
Fixed <https://github.com/httpwg/http-extensions/issues/266>: use of | ||||
now undefined term "parmname". | ||||
Include WG into Acknowledgements for this revision. | ||||
Mention RFC 5987 in the abstract (<https://github.com/httpwg/http- | ||||
extensions/issues/271>). | ||||
C.13. Since draft-ietf-httpbis-rfc5987bis-04 | ||||
Mention RFC8053 in Implementation Report. | ||||
Acknowledgements | Acknowledgements | |||
Thanks to Martin Dürst and Frank Ellermann for help figuring out | Thanks to Martin Dürst and Frank Ellermann for help figuring out | |||
ABNF details, to Graham Klyne and Alexey Melnikov for general review, | ABNF details, to Graham Klyne and Alexey Melnikov for general review, | |||
to Chris Newman for pointing out an RFC 2231 incompatibility, and to | to Chris Newman for pointing out an RFC 2231 incompatibility, and to | |||
Benjamin Carlyle, Roar Lauritzsen, Eric Lawrence, and James Manger | Benjamin Carlyle, Roar Lauritzsen, Eric Lawrence, and James Manger | |||
for implementer's feedback. | for implementers feedback. | |||
Furthermore thanks to the members of the IETF HTTP Working Group for | Furthermore, thanks to the members of the IETF HTTP Working Group for | |||
the feedback specific to this update of RFC 5987. | the feedback specific to this update of RFC 5987. | |||
Author's Address | Author's Address | |||
Julian F. Reschke | Julian F. Reschke | |||
greenbytes GmbH | greenbytes GmbH | |||
Hafenweg 16 | Hafenweg 16 | |||
Münster, NW 48155 | Münster, NW 48155 | |||
Germany | Germany | |||
EMail: julian.reschke@greenbytes.de | Email: julian.reschke@greenbytes.de | |||
URI: http://greenbytes.de/tech/webdav/ | URI: http://greenbytes.de/tech/webdav/ | |||
End of changes. 75 change blocks. | ||||
233 lines changed or deleted | 122 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |