| 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) October 13, 2025 | |||
| Intended status: Standards Track | Intended status: Standards Track | |||
| Expires: September 3, 2017 | Expires: April 16, 2026 | |||
| 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 April 16, 2026. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2025 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/ | ||||