draft-ietf-httpbis-rfc5987bis-02.txt   draft-ietf-httpbis-rfc5987bis-03.txt 
HTTP Working Group J. Reschke HTTP Working Group J. Reschke
Internet-Draft greenbytes Internet-Draft greenbytes
Obsoletes: 5987 (if approved) July 8, 2016 Obsoletes: 5987 (if approved) October 11, 2016
Intended status: Standards Track Intended status: Standards Track
Expires: January 9, 2017 Expires: April 14, 2017
Indicating Character Encoding and Language for HTTP Header Field Indicating Character Encoding and Language for HTTP Header Field
Parameters Parameters
draft-ietf-httpbis-rfc5987bis-02 draft-ietf-httpbis-rfc5987bis-03
Abstract Abstract
By default, header field values in Hypertext Transfer Protocol (HTTP) By default, header field values in Hypertext Transfer Protocol (HTTP)
messages cannot directly 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
Multipurpose Internet Mail Extensions (MIME) headers. This document parameters inside Multipurpose Internet Mail Extensions (MIME) header
specifies an encoding suitable for use in HTTP header fields that is field values. This document specifies an encoding suitable for use
compatible with a profile of the encoding defined in RFC 2231. in HTTP header fields that is compatible with a simplified profile of
the encoding defined in RFC 2231.
Editorial Note (To be removed by RFC Editor before publication) Editorial Note (To be removed by RFC Editor before publication)
Discussion of this draft takes place on the HTTPBIS working group Discussion of this draft takes place on the HTTPBIS working group
mailing list (ietf-http-wg@w3.org), which is archived at mailing list (ietf-http-wg@w3.org), which is archived at
<https://lists.w3.org/Archives/Public/ietf-http-wg/>. <https://lists.w3.org/Archives/Public/ietf-http-wg/>.
Working Group information can be found at <http://httpwg.github.io/>; Working Group information can be found at <http://httpwg.github.io/>;
source code and issues list for this draft can be found at source code and issues list for this draft can be found at
<https://github.com/httpwg/http-extensions>. <https://github.com/httpwg/http-extensions>.
skipping to change at page 1, line 48 skipping to change at page 2, line 4
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 http://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 April 14, 2017.
This Internet-Draft will expire on January 9, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 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 (http://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 . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Notational Conventions . . . . . . . . . . . . . . . . . . . . 4 2. Notational Conventions . . . . . . . . . . . . . . . . . . . . 4
3. Comparison to RFC 2231 and Definition of the Encoding . . . . 4 3. Comparison to RFC 2231 and Definition of the Encoding . . . . 5
3.1. Parameter Continuations . . . . . . . . . . . . . . . . . 5 3.1. Parameter Continuations . . . . . . . . . . . . . . . . . 5
3.2. Parameter Value Character Encoding and Language 3.2. Parameter Value Character Encoding and Language
Information . . . . . . . . . . . . . . . . . . . . . . . 5 Information . . . . . . . . . . . . . . . . . . . . . . . 5
3.2.1. Definition . . . . . . . . . . . . . . . . . . . . . . 5 3.2.1. Definition . . . . . . . . . . . . . . . . . . . . . . 6
3.2.2. Historical Notes . . . . . . . . . . . . . . . . . . . 7 3.2.2. Historical Notes . . . . . . . . . . . . . . . . . . . 7
3.2.3. Examples . . . . . . . . . . . . . . . . . . . . . . . 7 3.2.3. Examples . . . . . . . . . . . . . . . . . . . . . . . 8
3.3. Language Specification in Encoded Words . . . . . . . . . 8 3.3. Language Specification in Encoded Words . . . . . . . . . 8
4. Guidelines for Usage in HTTP Header Field Definitions . . . . 8 4. Guidelines for Usage in HTTP Header Field Definitions . . . . 9
4.1. When to Use the Extension . . . . . . . . . . . . . . . . 9 4.1. When to Use the Extension . . . . . . . . . . . . . . . . 9
4.2. Error Handling . . . . . . . . . . . . . . . . . . . . . . 9 4.2. Error Handling . . . . . . . . . . . . . . . . . . . . . . 10
5. Security Considerations . . . . . . . . . . . . . . . . . . . 10 5. Security Considerations . . . . . . . . . . . . . . . . . . . 10
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
7.1. Normative References . . . . . . . . . . . . . . . . . . . 10 7.1. Normative References . . . . . . . . . . . . . . . . . . . 11
7.2. Informative References . . . . . . . . . . . . . . . . . . 11 7.2. Informative References . . . . . . . . . . . . . . . . . . 12
Appendix A. Changes from RFC 5987 . . . . . . . . . . . . . . . . 13 Appendix A. Changes from RFC 5987 . . . . . . . . . . . . . . . . 13
Appendix B. Implementation Report . . . . . . . . . . . . . . . . 13 Appendix B. Implementation Report . . . . . . . . . . . . . . . . 14
Appendix C. Change Log (to be removed by RFC Editor before Appendix C. Change Log (to be removed by RFC Editor before
publication) . . . . . . . . . . . . . . . . . . . . 14 publication) . . . . . . . . . . . . . . . . . . . . 14
C.1. Since RFC5987 . . . . . . . . . . . . . . . . . . . . . . 14 C.1. Since RFC5987 . . . . . . . . . . . . . . . . . . . . . . 14
C.2. Since draft-reschke-rfc5987bis-00 . . . . . . . . . . . . 14 C.2. Since draft-reschke-rfc5987bis-00 . . . . . . . . . . . . 15
C.3. Since draft-reschke-rfc5987bis-01 . . . . . . . . . . . . 14 C.3. Since draft-reschke-rfc5987bis-01 . . . . . . . . . . . . 15
C.4. Since draft-reschke-rfc5987bis-02 . . . . . . . . . . . . 14 C.4. Since draft-reschke-rfc5987bis-02 . . . . . . . . . . . . 15
C.5. Since draft-reschke-rfc5987bis-03 . . . . . . . . . . . . 14 C.5. Since draft-reschke-rfc5987bis-03 . . . . . . . . . . . . 15
C.6. Since draft-reschke-rfc5987bis-04 . . . . . . . . . . . . 14 C.6. Since draft-reschke-rfc5987bis-04 . . . . . . . . . . . . 15
C.7. Since draft-reschke-rfc5987bis-05 . . . . . . . . . . . . 14 C.7. Since draft-reschke-rfc5987bis-05 . . . . . . . . . . . . 15
C.8. Since draft-reschke-rfc5987bis-06 . . . . . . . . . . . . 14 C.8. Since draft-reschke-rfc5987bis-06 . . . . . . . . . . . . 15
C.9. Since draft-ietf-httpbis-rfc5987bis-00 . . . . . . . . . . 14 C.9. Since draft-ietf-httpbis-rfc5987bis-00 . . . . . . . . . . 15
C.10. Since draft-ietf-httpbis-rfc5987bis-01 . . . . . . . . . . 15 C.10. Since draft-ietf-httpbis-rfc5987bis-01 . . . . . . . . . . 15
Appendix D. Acknowledgements . . . . . . . . . . . . . . . . . . 15 C.11. Since draft-ietf-httpbis-rfc5987bis-02 . . . . . . . . . . 16
Appendix D. Acknowledgements . . . . . . . . . . . . . . . . . . 16
1. Introduction 1. Introduction
By default, header field values in HTTP messages ([RFC7230]) cannot Use of characters outside the US-ASCII coded character set
directly carry characters outside the US-ASCII coded character set ([RFC0020]) in HTTP header fields ([RFC7230]) is non-trivial:
([RFC0020]). RFC 2231 ([RFC2231]) defines an encoding mechanism for
use in MIME headers. This document specifies an encoding suitable o The HTTP specification discourages use of non-US-ASCII characters
for use in HTTP header fields that is compatible with a profile of in field values, placing them into the "obs-text" ABNF production
the encoding defined in RFC 2231. ([RFC7230], Section 3.2).
o Furthermore, it stays silent about default character encoding
schemes for field values, so any use of non-US-ASCII characters
would need to be specific to the field definition, or would
require some other kind of out-of-band information.
o Finally, some APIs assume a default character encoding scheme in
order to map from the octet sequences (obtained from the HTTP
message) to character sequences: for instance, the XMLHttpRequest
API ([XMLHttpRequest]) uses the Interface Definition Language type
"ByteString", effectively resulting in the ISO-8859-1 character
encoding scheme [ISO-8859-1] being used.
On the other hand, RFC 2231 defines an encoding mechanism for
parameters inside MIME header fields ([RFC2231]), which, as opposed
to HTTP messages, do need to be sent over non-binary transports.
This document specifies an encoding suitable for use in HTTP header
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
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; they are therefore 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"
([RFC2388]). ([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", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
This specification uses the ABNF (Augmented Backus-Naur Form) This specification uses the ABNF (Augmented Backus-Naur Form)
notation defined in [RFC5234]. The following core rules are included notation defined in [RFC5234]. The following core rules are included
by reference, as defined in [RFC5234], Appendix B.1: ALPHA (letters), by reference, as defined in [RFC5234], Appendix B.1: ALPHA (letters),
skipping to change at page 10, line 16 skipping to change at page 10, line 30
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.
Note: at the time of this writing, many implementations failed to
ignore the form they do not understand, or prioritize the ASCII
form although the extended syntax was present.
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, in which a displayed value appears to be something other scenarios, 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 relating to decoding
UTF-8. UTF-8.
skipping to change at page 10, line 47 skipping to change at page 11, line 9
specified. specified.
6. IANA Considerations 6. IANA Considerations
There are no IANA Considerations related to this specification. There are no IANA Considerations related to this specification.
7. References 7. References
7.1. Normative References 7.1. Normative References
[RFC0020] Cerf, V., "ASCII format for network interchange", [RFC0020] Cerf, V., "ASCII format for network interchange",
STD 80, RFC 20, DOI 10.17487/RFC0020, October 1969, STD 80, RFC 20, DOI 10.17487/RFC0020, October 1969,
<http://www.rfc-editor.org/info/rfc20>. <http://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, DOI 10.17487/ Requirement Levels", BCP 14, RFC 2119,
RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>. <http://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/
October 2000, <http://www.rfc-editor.org/info/rfc2978>. RFC2978, October 2000,
<http://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, 10646", STD 63, RFC 3629, DOI 10.17487/RFC3629,
November 2003, November 2003,
<http://www.rfc-editor.org/info/rfc3629>. <http://www.rfc-editor.org/info/rfc3629>.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter,
"Uniform Resource Identifier (URI): Generic Syntax", "Uniform Resource Identifier (URI): Generic
STD 66, RFC 3986, DOI 10.17487/RFC3986, January 2005, Syntax", STD 66, RFC 3986, DOI 10.17487/RFC3986,
<http://www.rfc-editor.org/info/rfc3986>. January 2005,
<http://www.rfc-editor.org/info/rfc3986>.
[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for
Syntax Specifications: ABNF", STD 68, RFC 5234, Syntax 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>. <http://www.rfc-editor.org/info/rfc5234>.
[RFC5646] Phillips, A., Ed. and M. Davis, Ed., "Tags for [RFC5646] Phillips, A., Ed. and M. Davis, Ed., "Tags for
Identifying Languages", BCP 47, RFC 5646, DOI 10.17487/ Identifying Languages", BCP 47, RFC 5646,
RFC5646, September 2009, DOI 10.17487/RFC5646, September 2009,
<http://www.rfc-editor.org/info/rfc5646>. <http://www.rfc-editor.org/info/rfc5646>.
[RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext [RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext
Transfer Protocol (HTTP/1.1): Message Syntax and Transfer Protocol (HTTP/1.1): Message Syntax and
Routing", RFC 7230, DOI 10.17487/RFC7230, June 2014, Routing", RFC 7230, DOI 10.17487/RFC7230,
<http://www.rfc-editor.org/info/rfc7230>. June 2014,
<http://www.rfc-editor.org/info/rfc7230>.
[RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext [RFC7231] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext
Transfer Protocol (HTTP/1.1): Semantics and Content", Transfer Protocol (HTTP/1.1): Semantics and
RFC 7231, DOI 10.17487/RFC7231, June 2014, Content", RFC 7231, DOI 10.17487/RFC7231,
<http://www.rfc-editor.org/info/rfc7231>. June 2014,
<http://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, "Errata ID 1912, RFC 2978",
<http://www.rfc-editor.org>. October 2009, <http://www.rfc-editor.org>.
[ISO-8859-1] International Organization for Standardization, [ISO-8859-1] International Organization for Standardization,
"Information technology -- 8-bit single-byte coded "Information technology -- 8-bit single-byte coded
graphic character sets -- Part 1: Latin alphabet No. graphic character sets -- Part 1: Latin alphabet
1", ISO/IEC 8859-1:1998, 1998. No. 1", ISO/IEC 8859-1:1998, 1998.
[RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet
Mail Extensions (MIME) Part One: Format of Internet Mail Extensions (MIME) Part One: Format of Internet
Message Bodies", RFC 2045, DOI 10.17487/RFC2045, Message Bodies", RFC 2045, DOI 10.17487/RFC2045,
November 1996, November 1996,
<http://www.rfc-editor.org/info/rfc2045>. <http://www.rfc-editor.org/info/rfc2045>.
[RFC2047] Moore, K., "MIME (Multipurpose Internet Mail [RFC2047] Moore, K., "MIME (Multipurpose Internet Mail
Extensions) Part Three: Message Header Extensions for Extensions) Part Three: Message Header Extensions
Non-ASCII Text", RFC 2047, DOI 10.17487/RFC2047, for Non-ASCII Text", RFC 2047, DOI 10.17487/
November 1996, RFC2047, November 1996,
<http://www.rfc-editor.org/info/rfc2047>. <http://www.rfc-editor.org/info/rfc2047>.
[RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and [RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and
Encoded Word Extensions: Character Sets, Languages, and Encoded Word Extensions: Character Sets, Languages,
Continuations", RFC 2231, DOI 10.17487/RFC2231, and Continuations", RFC 2231, DOI 10.17487/RFC2231,
November 1997, November 1997,
<http://www.rfc-editor.org/info/rfc2231>. <http://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,
<http://www.rfc-editor.org/info/rfc2277>.
[RFC2388] Masinter, L., "Returning Values from Forms: multipart/ [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
form-data", RFC 2388, DOI 10.17487/RFC2388, Masinter, L., Leach, P., and T. Berners-Lee,
August 1998, <http://www.rfc-editor.org/info/rfc2388>. "Hypertext Transfer Protocol -- HTTP/1.1",
RFC 2616, DOI 10.17487/RFC2616, June 1999,
<http://www.rfc-editor.org/info/rfc2616>.
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., [RFC5987] Reschke, J., "Character Set and Language Encoding
Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext for Hypertext Transfer Protocol (HTTP) Header Field
Transfer Protocol -- HTTP/1.1", RFC 2616, DOI 10.17487/ Parameters", RFC 5987, DOI 10.17487/RFC5987,
RFC2616, June 1999, August 2010,
<http://www.rfc-editor.org/info/rfc2616>. <http://www.rfc-editor.org/info/rfc5987>.
[RFC5987] Reschke, J., "Character Set and Language Encoding for [RFC5988] Nottingham, M., "Web Linking", RFC 5988,
Hypertext Transfer Protocol (HTTP) Header Field DOI 10.17487/RFC5988, October 2010,
Parameters", RFC 5987, DOI 10.17487/RFC5987, <http://www.rfc-editor.org/info/rfc5988>.
August 2010, <http://www.rfc-editor.org/info/rfc5987>.
[RFC5988] Nottingham, M., "Web Linking", RFC 5988, DOI 10.17487/ [RFC6266] Reschke, J., "Use of the Content-Disposition Header
RFC5988, October 2010, Field in the Hypertext Transfer Protocol (HTTP)",
<http://www.rfc-editor.org/info/rfc5988>. RFC 6266, DOI 10.17487/RFC6266, June 2011,
<http://www.rfc-editor.org/info/rfc6266>.
[RFC6266] Reschke, J., "Use of the Content-Disposition Header [RFC6365] Hoffman, P. and J. Klensin, "Terminology Used in
Field in the Hypertext Transfer Protocol (HTTP)", Internationalization in the IETF", BCP 166,
RFC 6266, DOI 10.17487/RFC6266, June 2011, RFC 6365, DOI 10.17487/RFC6365, September 2011,
<http://www.rfc-editor.org/info/rfc6266>. <http://www.rfc-editor.org/info/rfc6365>.
[RFC6365] Hoffman, P. and J. Klensin, "Terminology Used in [RFC7578] Masinter, L., "Returning Values from Forms:
Internationalization in the IETF", BCP 166, RFC 6365, multipart/form-data", RFC 7578, DOI 10.17487/
DOI 10.17487/RFC6365, September 2011, RFC7578, July 2015,
<http://www.rfc-editor.org/info/rfc6365>. <http://www.rfc-editor.org/info/rfc7578>.
[RFC7616] Shekh-Yusef, R., Ed., Ahrens, D., and S. Bremer,
"HTTP Digest Access Authentication", RFC 7616,
DOI 10.17487/RFC7616, September 2015,
<http://www.rfc-editor.org/info/rfc7616>.
[XMLHttpRequest] van Kesteren, A., Aubourg, J., Song, J., and H.
Steen, "XMLHttpRequest Level 1", W3C Working
Draft WD-XMLHttpRequest-20140130, January 2014, <ht
tp://www.w3.org/TR/2014/
WD-XMLHttpRequest-20140130/>.
Latest version available at
<http://www.w3.org/TR/XMLHttpRequest/>.
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
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 The document does not attempt to re-define a generic "parameter"
ABNF anymore (it turned out that there really isn't a generic ABNF anymore (it turned out that there really isn't a generic
definition of parameters in HTTP; for instance, there are subtle definition of parameters in HTTP; for instance, there are subtle
differences with respect to whitespace handling). differences with respect to whitespace handling).
o A note about defects in error handling in current implementations
was removed, as it wasn't accurate anymore.
Appendix B. Implementation Report Appendix B. Implementation Report
The encoding defined in this document currently is used for two The encoding defined in this document currently is used for two
different HTTP header fields: different HTTP header fields:
o "Authorization" (as used in HTTP Digest Authentication, defined in
[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] got 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 <http://purl.org/ agents have added support for this encoding; see <http://purl.org/
NET/http/content-disposition-tests#encoding-2231-char> for details. NET/http/content-disposition-tests#encoding-2231-char> for details.
At this time, the current versions of all major desktop user agents At this time, the current versions of all major desktop user agents
support it. 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 only recently The "Link" header field, on the other hand, was more recently
specified in [RFC5988]. At the time of this writing, no shipping specified in [RFC5988]. At the time of this writing, no User Agent
User Agent except Firefox supported the "title*" parameter (starting except Firefox supported the "title*" parameter (starting with
with release 15). release 15).
Section 3.4 of [RFC7616] defines the "username*" parameter for use in
HTTP Digest Authentication. At the time of writing, no User Agent
implemented this extension.
Appendix C. Change Log (to be removed by RFC Editor before publication) Appendix C. Change Log (to be removed by RFC Editor before publication)
C.1. Since RFC5987 C.1. Since RFC5987
Only editorial changes for the purpose of starting the revision Only editorial changes for the purpose of starting the revision
process (obs5987). process (obs5987).
C.2. Since draft-reschke-rfc5987bis-00 C.2. Since draft-reschke-rfc5987bis-00
skipping to change at page 15, line 14 skipping to change at page 16, line 5
C.10. Since draft-ietf-httpbis-rfc5987bis-01 C.10. Since draft-ietf-httpbis-rfc5987bis-01
Removed mention of RFC 2616 from Abstract and Introduction. Removed mention of RFC 2616 from Abstract and Introduction.
Reference RFC 20 for US-ASCII. Reference RFC 20 for US-ASCII.
Do not attempt to define a generic parameter ABNF; just concentrate Do not attempt to define a generic parameter ABNF; just concentrate
on the parameter value syntax. 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.
Appendix D. Acknowledgements Appendix D. 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 implementer's feedback.
Author's Address Author's Address
 End of changes. 44 change blocks. 
123 lines changed or deleted 183 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/