Changeset 2083 for draft-ietf-httpbis/latest
- Timestamp:
- 05/01/13 07:12:36 (10 years ago)
- Location:
- draft-ietf-httpbis/latest
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/httpbis.abnf
r2082 r2083 41 41 Last-Modified = HTTP-date 42 42 Location = URI-reference 43 MIME-Version = 1*DIGIT "." 1*DIGIT44 43 Max-Forwards = 1*DIGIT 45 44 OWS = *( SP / HTAB ) … … 264 263 ; Last-Modified defined but not used 265 264 ; Location defined but not used 266 ; MIME-Version defined but not used267 265 ; Max-Forwards defined but not used 268 266 ; Pragma defined but not used -
draft-ietf-httpbis/latest/p1-messaging.html
r2081 r2083 449 449 } 450 450 @bottom-center { 451 content: "Expires July 6, 2013";451 content: "Expires July 8, 2013"; 452 452 } 453 453 @bottom-right { … … 491 491 <meta name="dct.creator" content="Reschke, J. F."> 492 492 <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-p1-messaging-latest"> 493 <meta name="dct.issued" scheme="ISO8601" content="2013-01-0 2">493 <meta name="dct.issued" scheme="ISO8601" content="2013-01-04"> 494 494 <meta name="dct.replaces" content="urn:ietf:rfc:2145"> 495 495 <meta name="dct.replaces" content="urn:ietf:rfc:2616"> … … 520 520 <tr> 521 521 <td class="left">Intended status: Standards Track</td> 522 <td class="right">January 2, 2013</td>522 <td class="right">January 4, 2013</td> 523 523 </tr> 524 524 <tr> 525 <td class="left">Expires: July 6, 2013</td>525 <td class="left">Expires: July 8, 2013</td> 526 526 <td class="right"></td> 527 527 </tr> … … 551 551 in progress”. 552 552 </p> 553 <p>This Internet-Draft will expire on July 6, 2013.</p>553 <p>This Internet-Draft will expire on July 8, 2013.</p> 554 554 <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1> 555 555 <p>Copyright © 2013 IETF Trust and the persons identified as the document authors. All rights reserved.</p> … … 707 707 <h1 id="rfc.section.1" class="np"><a href="#rfc.section.1">1.</a> <a id="introduction" href="#introduction">Introduction</a></h1> 708 708 <p id="rfc.section.1.p.1">The Hypertext Transfer Protocol (HTTP) is an application-level request/response protocol that uses extensible semantics and 709 MIME-like message payloads for flexible interaction with network-based hypertext information systems. This document is the710 first in a series of documents that collectively form the HTTP/1.1 specification:709 self-descriptive message payloads for flexible interaction with network-based hypertext information systems. This document 710 is the first in a series of documents that collectively form the HTTP/1.1 specification: 711 711 </p> 712 712 <ul class="empty"> … … 2792 2792 </p> 2793 2793 <h3 id="rfc.section.A.1.3"><a href="#rfc.section.A.1.3">A.1.3</a> <a id="introduction.of.transfer-encoding" href="#introduction.of.transfer-encoding">Introduction of Transfer-Encoding</a></h3> 2794 <p id="rfc.section.A.1.3.p.1">HTTP/1.1 introduces the <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a> header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.4" title="Transfer-Encoding">Section 3.3.1</a>). Proxies/gateways <em class="bcp14">MUST</em> remove any transfer coding prior to forwarding a message viaa MIME-compliant protocol.2794 <p id="rfc.section.A.1.3.p.1">HTTP/1.1 introduces the <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a> header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.4" title="Transfer-Encoding">Section 3.3.1</a>). Transfer codings need to be decoded prior to forwarding an HTTP message over a MIME-compliant protocol. 2795 2795 </p> 2796 2796 <h2 id="rfc.section.A.2"><a href="#rfc.section.A.2">A.2</a> <a id="changes.from.rfc.2616" href="#changes.from.rfc.2616">Changes from RFC 2616</a></h2> -
draft-ietf-httpbis/latest/p1-messaging.xml
r2081 r2083 143 143 <t> 144 144 The Hypertext Transfer Protocol (HTTP) is an application-level 145 request/response protocol that uses extensible semantics and MIME-like145 request/response protocol that uses extensible semantics and self-descriptive 146 146 message payloads for flexible interaction with network-based hypertext 147 147 information systems. This document is the first in a series of documents … … 4676 4676 <t> 4677 4677 HTTP/1.1 introduces the <x:ref>Transfer-Encoding</x:ref> header field 4678 (<xref target="header.transfer-encoding"/>). Proxies/gateways &MUST; remove4679 any transfer coding prior to forwarding a message via a MIME-compliant4680 protocol.4678 (<xref target="header.transfer-encoding"/>). 4679 Transfer codings need to be decoded prior to forwarding an HTTP message 4680 over a MIME-compliant protocol. 4681 4681 </t> 4682 4682 </section> -
draft-ietf-httpbis/latest/p2-semantics.html
r2082 r2083 483 483 <link rel="Chapter" href="#rfc.section.11" title="11 References"> 484 484 <link rel="Appendix" title="A Differences between HTTP and MIME" href="#rfc.section.A"> 485 <link rel="Appendix" title="B Additional Features" href="#rfc.section.B"> 486 <link rel="Appendix" title="C Changes from RFC 2616" href="#rfc.section.C"> 487 <link rel="Appendix" title="D Imported ABNF" href="#rfc.section.D"> 488 <link rel="Appendix" title="E Collected ABNF" href="#rfc.section.E"> 489 <link rel="Appendix" title="F Change Log (to be removed by RFC Editor before publication)" href="#rfc.section.F"> 485 <link rel="Appendix" title="B Significant changes from RFC 2616" href="#rfc.section.B"> 486 <link rel="Appendix" title="C Imported ABNF" href="#rfc.section.C"> 487 <link rel="Appendix" title="D Collected ABNF" href="#rfc.section.D"> 488 <link rel="Appendix" title="E Change Log (to be removed by RFC Editor before publication)" href="#rfc.section.E"> 490 489 <link href="p1-messaging.html" rel="prev"> 491 490 <link href="p4-conditional.html" rel="next"> … … 543 542 <p>The current issues list is at <<a href="http://tools.ietf.org/wg/httpbis/trac/report/3">http://tools.ietf.org/wg/httpbis/trac/report/3</a>> and related documents (including fancy diffs) can be found at <<a href="http://tools.ietf.org/wg/httpbis/">http://tools.ietf.org/wg/httpbis/</a>>. 544 543 </p> 545 <p>The changes in this draft are summarized in <a href="#changes.since.21" title="Since draft-ietf-httpbis-p2-semantics-21">Appendix F.2</a>.544 <p>The changes in this draft are summarized in <a href="#changes.since.21" title="Since draft-ietf-httpbis-p2-semantics-21">Appendix E.2</a>. 546 545 </p> 547 546 <h1><a id="rfc.status" href="#rfc.status">Status of This Memo</a></h1> … … 785 784 <li><a href="#rfc.section.A.2">A.2</a> <a href="#conversion.to.canonical.form">Conversion to Canonical Form</a></li> 786 785 <li><a href="#rfc.section.A.3">A.3</a> <a href="#conversion.of.date.formats">Conversion of Date Formats</a></li> 787 <li><a href="#rfc.section.A.4">A.4</a> <a href="# introduction.of.content-encoding">Introduction of Content-Encoding</a></li>788 <li><a href="#rfc.section.A.5">A.5</a> <a href="# no.content-transfer-encoding">NoContent-Transfer-Encoding</a></li>786 <li><a href="#rfc.section.A.4">A.4</a> <a href="#conversion.content-encoding">Conversion of Content-Encoding</a></li> 787 <li><a href="#rfc.section.A.5">A.5</a> <a href="#conversion.content-transfer-encoding">Conversion of Content-Transfer-Encoding</a></li> 789 788 <li><a href="#rfc.section.A.6">A.6</a> <a href="#mhtml.line.length">MHTML and Line Length Limitations</a></li> 790 789 </ul> 791 790 </li> 792 <li><a href="#rfc.section.B">B.</a> <a href="#additional.features">Additional Features</a></li> 793 <li><a href="#rfc.section.C">C.</a> <a href="#changes.from.rfc.2616">Changes from RFC 2616</a></li> 794 <li><a href="#rfc.section.D">D.</a> <a href="#imported.abnf">Imported ABNF</a></li> 795 <li><a href="#rfc.section.E">E.</a> <a href="#collected.abnf">Collected ABNF</a></li> 796 <li><a href="#rfc.section.F">F.</a> <a href="#change.log">Change Log (to be removed by RFC Editor before publication)</a><ul> 797 <li><a href="#rfc.section.F.1">F.1</a> <a href="#rfc.section.F.1">Since RFC 2616</a></li> 798 <li><a href="#rfc.section.F.2">F.2</a> <a href="#changes.since.21">Since draft-ietf-httpbis-p2-semantics-21</a></li> 791 <li><a href="#rfc.section.B">B.</a> <a href="#changes.from.rfc.2616">Significant changes from RFC 2616</a></li> 792 <li><a href="#rfc.section.C">C.</a> <a href="#imported.abnf">Imported ABNF</a></li> 793 <li><a href="#rfc.section.D">D.</a> <a href="#collected.abnf">Collected ABNF</a></li> 794 <li><a href="#rfc.section.E">E.</a> <a href="#change.log">Change Log (to be removed by RFC Editor before publication)</a><ul> 795 <li><a href="#rfc.section.E.1">E.1</a> <a href="#rfc.section.E.1">Since RFC 2616</a></li> 796 <li><a href="#rfc.section.E.2">E.2</a> <a href="#changes.since.21">Since draft-ietf-httpbis-p2-semantics-21</a></li> 799 797 </ul> 800 798 </li> … … 824 822 </p> 825 823 <h2 id="rfc.section.1.2"><a href="#rfc.section.1.2">1.2</a> <a id="notation" href="#notation">Syntax Notation</a></h2> 826 <p id="rfc.section.1.2.p.1">This specification uses the Augmented Backus-Naur Form (ABNF) notation of <a href="#RFC5234" id="rfc.xref.RFC5234.1"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a> with the list rule extension defined in <a href="p1-messaging.html#notation" title="Syntax Notation">Section 1.2</a> of <a href="#Part1" id="rfc.xref.Part1.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>. <a href="#imported.abnf" title="Imported ABNF">Appendix D</a> describes rules imported from other documents. <a href="#collected.abnf" title="Collected ABNF">Appendix E</a> shows the collected ABNF with the list rule expanded.824 <p id="rfc.section.1.2.p.1">This specification uses the Augmented Backus-Naur Form (ABNF) notation of <a href="#RFC5234" id="rfc.xref.RFC5234.1"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a> with the list rule extension defined in <a href="p1-messaging.html#notation" title="Syntax Notation">Section 1.2</a> of <a href="#Part1" id="rfc.xref.Part1.3"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>. <a href="#imported.abnf" title="Imported ABNF">Appendix C</a> describes rules imported from other documents. <a href="#collected.abnf" title="Collected ABNF">Appendix D</a> shows the collected ABNF with the list rule expanded. 827 825 </p> 828 826 <p id="rfc.section.1.2.p.2">This specification uses the terms "character", "character encoding scheme", "charset", and "protocol element" as they are … … 926 924 <p id="rfc.section.3.1.1.3.p.1">Internet media types are registered with a canonical form in order to be interoperable among systems with varying native encoding 927 925 formats. Representations selected or transferred via HTTP ought to be in canonical form, for many of the same reasons described 928 by MIME <a href="#RFC2049" id="rfc.xref.RFC2049.1"><cite title="Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria and Examples">[RFC2049]</cite></a>. However, the performance characteristics of email deployments (i.e., store and forward messages to peers) are significantly926 by the Multipurpose Internet Mail Extensions (MIME) <a href="#RFC2045" id="rfc.xref.RFC2045.1"><cite title="Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies">[RFC2045]</cite></a>. However, the performance characteristics of email deployments (i.e., store and forward messages to peers) are significantly 929 927 different from those common to HTTP and the Web (server-based information services). Furthermore, MIME's constraints for the 930 928 sake of compatibility with older mail transfer protocols do not apply to HTTP (see <a href="#differences.between.http.and.mime" title="Differences between HTTP and MIME">Appendix A</a>). … … 2589 2587 <div id="rfc.iref.73"></div> 2590 2588 <h3 id="rfc.section.6.4.5"><a href="#rfc.section.6.4.5">6.4.5</a> <a id="status.305" href="#status.305">305 Use Proxy</a></h3> 2591 <p id="rfc.section.6.4.5.p.1">The <dfn>305 (Use Proxy)</dfn> status code was defined in a previous version of this specification and is now deprecated (<a href="#changes.from.rfc.2616" title=" Changes from RFC 2616">Appendix C</a>).2589 <p id="rfc.section.6.4.5.p.1">The <dfn>305 (Use Proxy)</dfn> status code was defined in a previous version of this specification and is now deprecated (<a href="#changes.from.rfc.2616" title="Significant changes from RFC 2616">Appendix B</a>). 2592 2590 </p> 2593 2591 <div id="rfc.iref.73"></div> … … 3937 3935 <h2 id="rfc.references.2"><a href="#rfc.section.11.2" id="rfc.section.11.2">11.2</a> Informative References 3938 3936 </h2> 3939 <table> 3937 <table> 3940 3938 <tr> 3941 3939 <td class="reference"><b id="BCP13">[BCP13]</b></td> … … 3971 3969 <td class="reference"><b id="RFC2068">[RFC2068]</b></td> 3972 3970 <td class="top"><a href="mailto:fielding@ics.uci.edu" title="University of California, Irvine, Department of Information and Computer Science">Fielding, R.</a>, <a href="mailto:jg@w3.org" title="MIT Laboratory for Computer Science">Gettys, J.</a>, <a href="mailto:mogul@wrl.dec.com" title="Digital Equipment Corporation, Western Research Laboratory">Mogul, J.</a>, <a href="mailto:frystyk@w3.org" title="MIT Laboratory for Computer Science">Nielsen, H.</a>, and <a href="mailto:timbl@w3.org" title="MIT Laboratory for Computer Science">T. Berners-Lee</a>, “<a href="http://tools.ietf.org/html/rfc2068">Hypertext Transfer Protocol -- HTTP/1.1</a>”, RFC 2068, January 1997. 3973 </td>3974 </tr>3975 <tr>3976 <td class="reference"><b id="RFC2076">[RFC2076]</b></td>3977 <td class="top"><a href="mailto:jpalme@dsv.su.se" title="Stockholm University/KTH">Palme, J.</a>, “<a href="http://tools.ietf.org/html/rfc2076">Common Internet Message Headers</a>”, RFC 2076, February 1997.3978 3971 </td> 3979 3972 </tr> … … 4029 4022 </tr> 4030 4023 <tr> 4031 <td class="reference"><b id="RFC6151">[RFC6151]</b></td>4032 <td class="top">Turner, S. and L. Chen, “<a href="http://tools.ietf.org/html/rfc6151">Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms</a>”, RFC 6151, March 2011.4033 </td>4034 </tr>4035 <tr>4036 4024 <td class="reference"><b id="RFC6265">[RFC6265]</b></td> 4037 4025 <td class="top"><a href="mailto:abarth@eecs.berkeley.edu" title="
 University of California, Berkeley
 ">Barth, A.</a>, “<a href="http://tools.ietf.org/html/rfc6265">HTTP State Management Mechanism</a>”, RFC 6265, April 2011. … … 4059 4047 </div> 4060 4048 <h1 id="rfc.section.A" class="np"><a href="#rfc.section.A">A.</a> <a id="differences.between.http.and.mime" href="#differences.between.http.and.mime">Differences between HTTP and MIME</a></h1> 4061 <p id="rfc.section.A.p.1">HTTP/1.1 uses many of the constructs defined for Internet Mail (<a href="#RFC5322" id="rfc.xref.RFC5322.7"><cite title="Internet Message Format">[RFC5322]</cite></a>) and the Multipurpose Internet Mail Extensions (MIME <a href="#RFC2045" id="rfc.xref.RFC2045.1"><cite title="Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies">[RFC2045]</cite></a>) to allow a message body to be transmitted in an open variety of representations and with extensible mechanisms. However, 4062 RFC 2045 discusses mail, and HTTP has a few features that are different from those described in MIME. These differences were 4063 carefully chosen to optimize performance over binary connections, to allow greater freedom in the use of new media types, 4064 to make date comparisons easier, and to acknowledge the practice of some early HTTP servers and clients. 4065 </p> 4066 <p id="rfc.section.A.p.2">This appendix describes specific areas where HTTP differs from MIME. Proxies and gateways to strict MIME environments <em class="bcp14">SHOULD</em> be aware of these differences and provide the appropriate conversions where necessary. Proxies and gateways from MIME environments 4067 to HTTP also need to be aware of the differences because some conversions might be required. 4049 <p id="rfc.section.A.p.1">HTTP/1.1 uses many of the constructs defined for the Internet Message Format <a href="#RFC5322" id="rfc.xref.RFC5322.7"><cite title="Internet Message Format">[RFC5322]</cite></a> and the Multipurpose Internet Mail Extensions (MIME) <a href="#RFC2045" id="rfc.xref.RFC2045.2"><cite title="Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies">[RFC2045]</cite></a> to allow a message body to be transmitted in an open variety of representations and with extensible header fields. However, 4050 RFC 2045 is focused only on email; applications of HTTP have many characteristics that differ from email, and hence HTTP has 4051 features that differ from MIME. These differences were carefully chosen to optimize performance over binary connections, to 4052 allow greater freedom in the use of new media types, to make date comparisons easier, and to acknowledge the practice of some 4053 early HTTP servers and clients. 4054 </p> 4055 <p id="rfc.section.A.p.2">This appendix describes specific areas where HTTP differs from MIME. Proxies and gateways to and from strict MIME environments 4056 need to be aware of these differences and provide the appropriate conversions where necessary. 4068 4057 </p> 4069 4058 <div id="rfc.iref.m.2"></div> 4070 4059 <h2 id="rfc.section.A.1"><a href="#rfc.section.A.1">A.1</a> <a id="mime-version" href="#mime-version">MIME-Version</a></h2> 4071 <p id="rfc.section.A.1.p.1">HTTP is not a MIME-compliant protocol. However, HTTP/1.1 messages <em class="bcp14">MAY</em> include a single MIME-Version header field to indicate what version of the MIME protocol was used to construct the message. 4072 Use of the MIME-Version header field indicates that the message is in full conformance with the MIME protocol (as defined 4073 in <a href="#RFC2045" id="rfc.xref.RFC2045.2"><cite title="Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies">[RFC2045]</cite></a>). Proxies/gateways are responsible for ensuring full conformance (where possible) when exporting HTTP messages to strict 4074 MIME environments. 4075 </p> 4076 <div id="rfc.figure.u.64"></div><pre class="inline"><span id="rfc.iref.g.62"></span> <a href="#mime-version" class="smpl">MIME-Version</a> = 1*<a href="#imported.abnf" class="smpl">DIGIT</a> "." 1*<a href="#imported.abnf" class="smpl">DIGIT</a> 4077 </pre><p id="rfc.section.A.1.p.3">MIME version "1.0" is the default for use in HTTP/1.1. However, HTTP/1.1 message parsing and semantics are defined by this 4078 document and not the MIME specification. 4060 <p id="rfc.section.A.1.p.1">HTTP is not a MIME-compliant protocol. However, messages can include a single MIME-Version header field to indicate what version 4061 of the MIME protocol was used to construct the message. Use of the MIME-Version header field indicates that the message is 4062 in full conformance with the MIME protocol (as defined in <a href="#RFC2045" id="rfc.xref.RFC2045.3"><cite title="Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies">[RFC2045]</cite></a>). Senders are responsible for ensuring full conformance (where possible) when exporting HTTP messages to strict MIME environments. 4079 4063 </p> 4080 4064 <h2 id="rfc.section.A.2"><a href="#rfc.section.A.2">A.2</a> <a id="conversion.to.canonical.form" href="#conversion.to.canonical.form">Conversion to Canonical Form</a></h2> 4081 <p id="rfc.section.A.2.p.1">MIME requires that an Internet mail body-part be converted to canonical form prior to being transferred, as described in <a href="http://tools.ietf.org/html/rfc2049#section-4">Section 4</a> of <a href="#RFC2049" id="rfc.xref.RFC2049. 2"><cite title="Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria and Examples">[RFC2049]</cite></a>. <a href="#canonicalization.and.text.defaults" title="Canonicalization and Text Defaults">Section 3.1.1.3</a> of this document describes the forms allowed for subtypes of the "text" media type when transmitted over HTTP. <a href="#RFC2046" id="rfc.xref.RFC2046.4"><cite title="Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types">[RFC2046]</cite></a> requires that content with a type of "text" represent line breaks as CRLF and forbids the use of CR or LF outside of line4082 break sequences. HTTP allows CRLF, bare CR, and bare LF to indicate a line break within text content when a message is transmitted4083 over HTTP.4084 < /p>4085 <p id="rfc.section.A.2.p.2">Where it is possible, a proxy or gateway from HTTP to a strict MIME environment <em class="bcp14">SHOULD</em> translate all line breaks within the text media types describedin <a href="#canonicalization.and.text.defaults" title="Canonicalization and Text Defaults">Section 3.1.1.3</a> of this document to the RFC 2049 canonical form of CRLF. Note, however, this might be complicated by the presence of a <a href="#header.content-encoding" class="smpl">Content-Encoding</a> and by the fact that HTTP allows the use of some charsets that do not use octets 13 and 10 to represent CR and LF, respectively.4065 <p id="rfc.section.A.2.p.1">MIME requires that an Internet mail body-part be converted to canonical form prior to being transferred, as described in <a href="http://tools.ietf.org/html/rfc2049#section-4">Section 4</a> of <a href="#RFC2049" id="rfc.xref.RFC2049.1"><cite title="Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria and Examples">[RFC2049]</cite></a>. <a href="#canonicalization.and.text.defaults" title="Canonicalization and Text Defaults">Section 3.1.1.3</a> of this document describes the forms allowed for subtypes of the "text" media type when transmitted over HTTP. <a href="#RFC2046" id="rfc.xref.RFC2046.4"><cite title="Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types">[RFC2046]</cite></a> requires that content with a type of "text" represent line breaks as CRLF and forbids the use of CR or LF outside of line 4066 break sequences. HTTP allows CRLF, bare CR, and bare LF to indicate a line break within text content. 4067 </p> 4068 <p id="rfc.section.A.2.p.2">A proxy or gateway from HTTP to a strict MIME environment ought to translate all line breaks within the text media types described 4069 in <a href="#canonicalization.and.text.defaults" title="Canonicalization and Text Defaults">Section 3.1.1.3</a> of this document to the RFC 2049 canonical form of CRLF. Note, however, this might be complicated by the presence of a <a href="#header.content-encoding" class="smpl">Content-Encoding</a> and by the fact that HTTP allows the use of some charsets that do not use octets 13 and 10 to represent CR and LF, respectively. 4086 4070 </p> 4087 4071 <p id="rfc.section.A.2.p.3">Conversion will break any cryptographic checksums applied to the original content unless the original content is already in … … 4089 4073 </p> 4090 4074 <h2 id="rfc.section.A.3"><a href="#rfc.section.A.3">A.3</a> <a id="conversion.of.date.formats" href="#conversion.of.date.formats">Conversion of Date Formats</a></h2> 4091 <p id="rfc.section.A.3.p.1">HTTP/1.1 uses a restricted set of date formats (<a href="#http.date" title="Date/Time Formats">Section 7.1.1.1</a>) to simplify the process of date comparison. Proxies and gateways from other protocols <em class="bcp14">SHOULD</em> ensure that any <a href="#header.date" class="smpl">Date</a> header field present in a message conforms to one of the HTTP/1.1 formats and rewrite the date if necessary. 4092 </p> 4093 <h2 id="rfc.section.A.4"><a href="#rfc.section.A.4">A.4</a> <a id="introduction.of.content-encoding" href="#introduction.of.content-encoding">Introduction of Content-Encoding</a></h2> 4094 <p id="rfc.section.A.4.p.1">MIME does not include any concept equivalent to HTTP/1.1's <a href="#header.content-encoding" class="smpl">Content-Encoding</a> header field. Since this acts as a modifier on the media type, proxies and gateways from HTTP to MIME-compliant protocols <em class="bcp14">MUST</em> either change the value of the <a href="#header.content-type" class="smpl">Content-Type</a> header field or decode the representation before forwarding the message. (Some experimental applications of Content-Type for 4075 <p id="rfc.section.A.3.p.1">HTTP/1.1 uses a restricted set of date formats (<a href="#http.date" title="Date/Time Formats">Section 7.1.1.1</a>) to simplify the process of date comparison. Proxies and gateways from other protocols ought to ensure that any <a href="#header.date" class="smpl">Date</a> header field present in a message conforms to one of the HTTP/1.1 formats and rewrite the date if necessary. 4076 </p> 4077 <h2 id="rfc.section.A.4"><a href="#rfc.section.A.4">A.4</a> <a id="conversion.content-encoding" href="#conversion.content-encoding">Conversion of Content-Encoding</a></h2> 4078 <p id="rfc.section.A.4.p.1">MIME does not include any concept equivalent to HTTP/1.1's <a href="#header.content-encoding" class="smpl">Content-Encoding</a> header field. Since this acts as a modifier on the media type, proxies and gateways from HTTP to MIME-compliant protocols 4079 ought to either change the value of the <a href="#header.content-type" class="smpl">Content-Type</a> header field or decode the representation before forwarding the message. (Some experimental applications of Content-Type for 4095 4080 Internet mail have used a media-type parameter of ";conversions=<content-coding>" to perform a function equivalent to Content-Encoding. 4096 4081 However, this parameter is not part of the MIME standards). 4097 4082 </p> 4098 4083 <div id="rfc.iref.c.10"></div> 4099 <h2 id="rfc.section.A.5"><a href="#rfc.section.A.5">A.5</a> <a id="no.content-transfer-encoding" href="#no.content-transfer-encoding">No Content-Transfer-Encoding</a></h2> 4100 <p id="rfc.section.A.5.p.1">HTTP does not use the Content-Transfer-Encoding field of MIME. Proxies and gateways from MIME-compliant protocols to HTTP <em class="bcp14">MUST</em> remove any Content-Transfer-Encoding prior to delivering the response message to an HTTP client. 4084 <h2 id="rfc.section.A.5"><a href="#rfc.section.A.5">A.5</a> <a id="conversion.content-transfer-encoding" href="#conversion.content-transfer-encoding">Conversion of Content-Transfer-Encoding</a></h2> 4085 <p id="rfc.section.A.5.p.1">HTTP does not use the Content-Transfer-Encoding field of MIME. Proxies and gateways from MIME-compliant protocols to HTTP 4086 need to remove any Content-Transfer-Encoding prior to delivering the response message to an HTTP client. 4101 4087 </p> 4102 4088 <p id="rfc.section.A.5.p.2">Proxies and gateways from HTTP to MIME-compliant protocols are responsible for ensuring that the message is in the correct 4103 4089 format and encoding for safe transport on that protocol, where "safe transport" is defined by the limitations of the protocol 4104 being used. Such a proxy or gateway <em class="bcp14">SHOULD</em> label the data with an appropriate Content-Transfer-Encoding if doing so will improve the likelihood of safe transport over4105 the destination protocol.4090 being used. Such a proxy or gateway ought to transform and label the data with an appropriate Content-Transfer-Encoding if 4091 doing so will improve the likelihood of safe transport over the destination protocol. 4106 4092 </p> 4107 4093 <h2 id="rfc.section.A.6"><a href="#rfc.section.A.6">A.6</a> <a id="mhtml.line.length" href="#mhtml.line.length">MHTML and Line Length Limitations</a></h2> 4108 4094 <p id="rfc.section.A.6.p.1">HTTP implementations that share code with MHTML <a href="#RFC2557" id="rfc.xref.RFC2557.2"><cite title="MIME Encapsulation of Aggregate Documents, such as HTML (MHTML)">[RFC2557]</cite></a> implementations need to be aware of MIME line length limitations. Since HTTP does not have this limitation, HTTP does not 4109 4095 fold long lines. MHTML messages being transported by HTTP follow all conventions of MHTML, including line length limitations 4110 and folding, canonicalization, etc., since HTTP transports all message-bodies as payload (see <a href="#multipart.types" title="Multipart Types">Section 3.1.1.4</a>) and does not interpret the content or any MIME header lines that might be contained therein. 4111 </p> 4112 <h1 id="rfc.section.B"><a href="#rfc.section.B">B.</a> <a id="additional.features" href="#additional.features">Additional Features</a></h1> 4113 <p id="rfc.section.B.p.1"> <a href="#RFC1945" id="rfc.xref.RFC1945.2"><cite title="Hypertext Transfer Protocol -- HTTP/1.0">[RFC1945]</cite></a> and <a href="#RFC2068" id="rfc.xref.RFC2068.4"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2068]</cite></a> document protocol elements used by some existing HTTP implementations, but not consistently and correctly across most HTTP/1.1 4114 applications. Implementers are advised to be aware of these features, but cannot rely upon their presence in, or interoperability 4115 with, other HTTP/1.1 applications. Some of these describe proposed experimental features, and some describe features that 4116 experimental deployment found lacking that are now addressed in the base HTTP/1.1 specification. 4117 </p> 4118 <p id="rfc.section.B.p.2">A number of other header fields, such as Content-Disposition and Title, from SMTP and MIME are also often implemented (see <a href="#RFC6266" id="rfc.xref.RFC6266.1"><cite title="Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)">[RFC6266]</cite></a> and <a href="#RFC2076" id="rfc.xref.RFC2076.1"><cite title="Common Internet Message Headers">[RFC2076]</cite></a>). 4119 </p> 4120 <h1 id="rfc.section.C"><a href="#rfc.section.C">C.</a> <a id="changes.from.rfc.2616" href="#changes.from.rfc.2616">Changes from RFC 2616</a></h1> 4121 <p id="rfc.section.C.p.1">Request semantics embedded in a URI should be disabled when those semantics are inconsistent with the request method, since 4122 this is a common cause of interoperability failure. 4123 </p> 4124 <p id="rfc.section.C.p.2">The term "representation" is introduced, replacing both "entity" and "variant." (<a href="#representations" title="Representations">Section 3</a>) 4125 </p> 4126 <p id="rfc.section.C.p.3">Rules for identifying the payload of a message have been defined. (<a href="#identifying.payload" title="Identifying a Representation">Section 3.1.4.1</a>) 4127 </p> 4128 <p id="rfc.section.C.p.4">"Server-Driven" and "agent-driven" content negotiation are now called "proactive" and "reactive" content negotiation (respectively). 4129 (<a href="#content.negotiation" title="Content Negotiation">Section 3.4</a>) 4130 </p> 4131 <p id="rfc.section.C.p.5"> <a href="#header.content-location" class="smpl">Content-Location</a> no longer sets a base URI, due to poor implementation support (which was caused by too many broken servers emitting bogus 4132 Content-Location header fields, and also the potentially undesirable effect of potentially breaking relative links in content-negotiated 4133 resources). (<a href="#header.content-location" id="rfc.xref.header.content-location.5" title="Content-Location">Section 3.1.4.2</a>) 4134 </p> 4135 <p id="rfc.section.C.p.6">GET requests can have a body; it just has no meaning. (<a href="#GET" id="rfc.xref.GET.4" title="GET">Section 4.3.1</a>) 4136 </p> 4137 <p id="rfc.section.C.p.7">The definition of POST has been clarified. (<a href="#POST" id="rfc.xref.POST.4" title="POST">Section 4.3.3</a>) 4138 </p> 4139 <p id="rfc.section.C.p.8">Servers are no longer required to handle all Content-* header fields in requests. (<a href="#PUT" id="rfc.xref.PUT.4" title="PUT">Section 4.3.4</a>) 4140 </p> 4141 <p id="rfc.section.C.p.9">Use of <a href="p5-range.html#header.content-range" class="smpl">Content-Range</a> is explicitly banned on PUT requests. (<a href="#PUT" id="rfc.xref.PUT.5" title="PUT">Section 4.3.4</a>) 4142 </p> 4143 <p id="rfc.section.C.p.10">The CONNECT method is now defined by this specification, taking over from <a href="#RFC2817" id="rfc.xref.RFC2817.2"><cite title="Upgrading to TLS Within HTTP/1.1">[RFC2817]</cite></a>. (<a href="#CONNECT" id="rfc.xref.CONNECT.3" title="CONNECT">Section 4.3.6</a>) 4144 </p> 4145 <p id="rfc.section.C.p.11">The requirements upon and semantics of CONNECT request and response bodies have been clarified. (<a href="#CONNECT" id="rfc.xref.CONNECT.4" title="CONNECT">Section 4.3.6</a>) 4146 </p> 4147 <p id="rfc.section.C.p.12">The <a href="#OPTIONS" class="smpl">OPTIONS</a> and <a href="#TRACE" class="smpl">TRACE</a> request methods are now defined as being safe. (<a href="#OPTIONS" id="rfc.xref.OPTIONS.4" title="OPTIONS">Section 4.3.7</a> and <a href="#TRACE" id="rfc.xref.TRACE.4" title="TRACE">Section 4.3.8</a>) 4148 </p> 4149 <p id="rfc.section.C.p.13">The <a href="#header.max-forwards" class="smpl">Max-Forwards</a> header field is now restricted to the OPTIONS and TRACE methods (previously, extension methods could have used it as well). 4150 (<a href="#header.max-forwards" id="rfc.xref.header.max-forwards.5" title="Max-Forwards">Section 5.1.1</a>) 4151 </p> 4152 <p id="rfc.section.C.p.14">The ABNF for the "<a href="#header.expect" class="smpl">Expect</a>" header field has been both fixed (allowing parameters for value-less expectations as well) and simplified (allowing trailing 4153 semicolons after "100-continue" when they were invalid before). (<a href="#header.expect" id="rfc.xref.header.expect.4" title="Expect">Section 5.1.2</a>) 4154 </p> 4155 <p id="rfc.section.C.p.15">Special casing for ISO-8859-1 in <a href="#header.accept-charset" class="smpl">Accept-Charset</a> has been removed. (<a href="#header.accept-charset" id="rfc.xref.header.accept-charset.3" title="Accept-Charset">Section 5.3.3</a>) 4156 </p> 4157 <p id="rfc.section.C.p.16">Requirements for sending the Date header field have been clarified. (<a href="#header.date" id="rfc.xref.header.date.4" title="Date">Section 7.1.1.2</a>) 4158 </p> 4159 <p id="rfc.section.C.p.17">The <a href="#header.referer" class="smpl">Referer</a> header field can now have a value of "about:blank" as an alternative to not sending a Referer header field. (<a href="#header.referer" id="rfc.xref.header.referer.4" title="Referer">Section 5.5.2</a>) 4160 </p> 4161 <p id="rfc.section.C.p.18">The <a href="#status.201" class="smpl">201 (Created)</a> status code can indicate that more than one resource has been created (as well as just one). 4162 </p> 4163 <p id="rfc.section.C.p.19">The definition of <a href="#status.203" class="smpl">203 (Non-Authoritative Information)</a> has been broadened to include cases of payload transformations as well. (<a href="#status.203" id="rfc.xref.status.203.3" title="203 Non-Authoritative Information">Section 6.3.4</a>) 4164 </p> 4165 <p id="rfc.section.C.p.20">Redirect status codes <a href="#status.301" class="smpl">301</a>, <a href="#status.302" class="smpl">302</a>, and <a href="#status.307" class="smpl">307</a> no longer have normative requirements on response payloads and user interaction. (<a href="#status.3xx" id="rfc.xref.status.3xx.1" title="Redirection 3xx">Section 6.4</a>) 4166 </p> 4167 <p id="rfc.section.C.p.21">The request methods that are safe to automatically redirect is no longer a closed set; user agents are able to make that determination 4168 based upon the request method semantics. (<a href="#status.3xx" id="rfc.xref.status.3xx.2" title="Redirection 3xx">Section 6.4</a>) 4169 </p> 4170 <p id="rfc.section.C.p.22">The syntax of the <a href="#header.location" class="smpl">Location</a> header field has been corrected to allow URI references (including relative references and fragments), along with some clarifications 4171 as to when use of fragments would not be appropriate. (<a href="#header.location" id="rfc.xref.header.location.6" title="Location">Section 7.1.2</a>) 4172 </p> 4173 <p id="rfc.section.C.p.23">The 303 (See Other) status code is now cacheable, if explicit freshness information is available. (<a href="#status.303" id="rfc.xref.status.303.3" title="303 See Other">Section 6.4.4</a>) 4174 </p> 4175 <p id="rfc.section.C.p.24">User agents are now allowed to rewrite the method from POST to GET for status codes <a href="#status.301" class="smpl">301</a> and <a href="#status.302" class="smpl">302</a>. (Sections <a href="#status.301" id="rfc.xref.status.301.3" title="301 Moved Permanently">6.4.2</a>, <a href="#status.302" id="rfc.xref.status.302.3" title="302 Found">6.4.3</a> and <a href="#status.307" id="rfc.xref.status.307.3" title="307 Temporary Redirect">6.4.7</a>) 4176 </p> 4177 <p id="rfc.section.C.p.25">The <a href="#status.305" class="smpl">305 (Use Proxy)</a> status code is now deprecated, because user agents did not implement it. It used to indicate that the target resource needed 4178 to be accessed through the proxy given by the <a href="#header.location" class="smpl">Location</a> field. The recipient was expected to repeat this single request via the proxy. (<a href="#status.305" id="rfc.xref.status.305.3" title="305 Use Proxy">Section 6.4.5</a>) 4179 </p> 4180 <p id="rfc.section.C.p.26">The <a href="#status.400" class="smpl">400 (Bad Request)</a> status code has been made more generic; it isn't limited to syntax errors. (<a href="#status.400" id="rfc.xref.status.400.3" title="400 Bad Request">Section 6.5.1</a>) 4181 </p> 4182 <p id="rfc.section.C.p.27">The <a href="#status.403" class="smpl">403 (Forbidden)</a> status code has been clarified, especially with regards to authentication. (<a href="#status.403" id="rfc.xref.status.403.3" title="403 Forbidden">Section 6.5.3</a>) 4183 </p> 4184 <p id="rfc.section.C.p.28">The <a href="#status.426" class="smpl">426 (Upgrade Required)</a> status code has been incorporated from <a href="#RFC2817" id="rfc.xref.RFC2817.3"><cite title="Upgrading to TLS Within HTTP/1.1">[RFC2817]</cite></a>. (<a href="#status.426" id="rfc.xref.status.426.3" title="426 Upgrade Required">Section 6.5.15</a>) 4185 </p> 4186 <p id="rfc.section.C.p.29"> <a href="#header.allow" class="smpl">Allow</a> has been reclassified as a response header field, removing the option to specify it in a PUT request. (<a href="#header.allow" id="rfc.xref.header.allow.4" title="Allow">Section 7.4.1</a>) 4187 </p> 4188 <p id="rfc.section.C.p.30">Requirements relating to the content of the Allow header have been relaxed; correspondingly, clients are not required to always 4189 trust its value. (<a href="#header.allow" id="rfc.xref.header.allow.5" title="Allow">Section 7.4.1</a>) 4190 </p> 4191 <p id="rfc.section.C.p.31">The requirement to generate a <a href="p1-messaging.html#header.via" class="smpl">Via</a> header field has been moved from the description of the <a href="#header.server" class="smpl">Server</a> header field to <a href="p1-messaging.html#header.via" title="Via">Section 5.7.1</a> of <a href="#Part1" id="rfc.xref.Part1.45"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>. (<a href="#header.server" id="rfc.xref.header.server.4" title="Server">Section 7.4.2</a>) 4192 </p> 4193 <p id="rfc.section.C.p.32">The contexts that charset is used in have been clarified. (<a href="#charset" title="Charset">Section 3.1.1.2</a>) 4194 </p> 4195 <p id="rfc.section.C.p.33">The default charset of "ISO-8859-1" for text media types has been removed; the default now is whatever the media type definition 4196 says. (<a href="#canonicalization.and.text.defaults" title="Canonicalization and Text Defaults">Section 3.1.1.3</a>) 4197 </p> 4198 <p id="rfc.section.C.p.34">Registration of Content Codings now requires IETF Review. (<a href="#content.coding.registry" title="Content Coding Registry">Section 8.4</a>) 4199 </p> 4200 <p id="rfc.section.C.p.35">The Content-MD5 header field has been removed, because it was inconsistently implemented with respect to partial responses, 4201 and also because of known deficiencies in the hash algorithm itself (see <a href="#RFC6151" id="rfc.xref.RFC6151.1"><cite title="Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms">[RFC6151]</cite></a> for details). 4202 </p> 4203 <p id="rfc.section.C.p.36">This specification introduces a Method Registry. (<a href="#method.registry" title="Method Registry">Section 8.1</a>) 4204 </p> 4205 <p id="rfc.section.C.p.37">The Status Code Registry is now defined by this specification; previously, it was defined in <a href="http://tools.ietf.org/html/rfc2817#section-7.1">Section 7.1</a> of <a href="#RFC2817" id="rfc.xref.RFC2817.4"><cite title="Upgrading to TLS Within HTTP/1.1">[RFC2817]</cite></a>. (<a href="#status.code.registry" title="Status Code Registry">Section 8.2</a>) 4206 </p> 4207 <p id="rfc.section.C.p.38">References to the "identity" transfer coding token have been removed. (<a href="#no.content-transfer-encoding" id="rfc.xref.no.content-transfer-encoding.1" title="No Content-Transfer-Encoding">Appendix A.5</a>) 4208 </p> 4209 <p id="rfc.section.C.p.39">The Content-Disposition header field is now defined by <a href="#RFC6266" id="rfc.xref.RFC6266.2"><cite title="Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)">[RFC6266]</cite></a>. (<a href="#additional.features" title="Additional Features">Appendix B</a>) 4210 </p> 4211 <h1 id="rfc.section.D"><a href="#rfc.section.D">D.</a> <a id="imported.abnf" href="#imported.abnf">Imported ABNF</a></h1> 4212 <p id="rfc.section.D.p.1">The following core rules are included by reference, as defined in <a href="http://tools.ietf.org/html/rfc5234#appendix-B.1">Appendix B.1</a> of <a href="#RFC5234" id="rfc.xref.RFC5234.3"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a>: ALPHA (letters), CR (carriage return), CRLF (CR LF), CTL (controls), DIGIT (decimal 0-9), DQUOTE (double quote), HEXDIG 4096 and folding, canonicalization, etc., since HTTP transfers message-bodies as payload and, aside from the "multipart/byteranges" 4097 type (<a href="p5-range.html#internet.media.type.multipart.byteranges" title="Internet Media Type multipart/byteranges">Appendix A</a> of <a href="#Part5" id="rfc.xref.Part5.13"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Range Requests">[Part5]</cite></a>), does not interpret the content or any MIME header lines that might be contained therein. 4098 </p> 4099 <h1 id="rfc.section.B"><a href="#rfc.section.B">B.</a> <a id="changes.from.rfc.2616" href="#changes.from.rfc.2616">Significant changes from RFC 2616</a></h1> 4100 <p id="rfc.section.B.p.1">The primary changes in this revision have been editorial in nature: extracting the messaging syntax and partitioning HTTP 4101 semantics into separate documents for the core features, conditional requests, partial requests, caching, and authentication. 4102 The conformance language has been revised to clearly target requirements and the terminology has been improved to distinguish 4103 payload from representations and representations from resources. An algorithm has been added for determining if a payload 4104 is associated with a specific identifier (<a href="#identifying.payload" title="Identifying a Representation">Section 3.1.4.1</a>). 4105 </p> 4106 <p id="rfc.section.B.p.2">A new requirement has been added that semantics embedded in a URI should be disabled when those semantics are inconsistent 4107 with the request method, since this is a common cause of interoperability failure. 4108 </p> 4109 <p id="rfc.section.B.p.3">The default charset of ISO-8859-1 for text media types has been removed; the default is now whatever the media type definition 4110 says (<a href="#canonicalization.and.text.defaults" title="Canonicalization and Text Defaults">Section 3.1.1.3</a>). Likewise, special treatment of ISO-8859-1 has been removed from the <a href="#header.accept-charset" class="smpl">Accept-Charset</a> header field (<a href="#header.accept-charset" id="rfc.xref.header.accept-charset.3" title="Accept-Charset">Section 5.3.3</a>). 4111 </p> 4112 <p id="rfc.section.B.p.4">The Content-Disposition header field has been removed since it is now defined by <a href="#RFC6266" id="rfc.xref.RFC6266.1"><cite title="Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)">[RFC6266]</cite></a>. 4113 </p> 4114 <p id="rfc.section.B.p.5">The definition of <a href="#header.content-location" class="smpl">Content-Location</a> has been changed to no longer affect the base URI for resolving relative URI references, due to poor implementation support 4115 and the undesirable effect of potentially breaking relative links in content-negotiated resources (<a href="#header.content-location" id="rfc.xref.header.content-location.5" title="Content-Location">Section 3.1.4.2</a>). 4116 </p> 4117 <p id="rfc.section.B.p.6">The Content-MD5 header field has been removed because it was inconsistently implemented with respect to partial responses.</p> 4118 <p id="rfc.section.B.p.7">To be consistent with the method-neutral parsing algorithm of <a href="#Part1" id="rfc.xref.Part1.45"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>, the definition of GET has been relaxed so that requests can have a body, even though a body has no meaning for GET (<a href="#GET" id="rfc.xref.GET.4" title="GET">Section 4.3.1</a>). 4119 </p> 4120 <p id="rfc.section.B.p.8">Servers are no longer required to handle all Content-* header fields and use of <a href="p5-range.html#header.content-range" class="smpl">Content-Range</a> has been explicitly banned in PUT requests (<a href="#PUT" id="rfc.xref.PUT.4" title="PUT">Section 4.3.4</a>). 4121 </p> 4122 <p id="rfc.section.B.p.9">Definition of the CONNECT method has been moved from <a href="#RFC2817" id="rfc.xref.RFC2817.2"><cite title="Upgrading to TLS Within HTTP/1.1">[RFC2817]</cite></a> to this specification (<a href="#CONNECT" id="rfc.xref.CONNECT.3" title="CONNECT">Section 4.3.6</a>). 4123 </p> 4124 <p id="rfc.section.B.p.10">The <a href="#OPTIONS" class="smpl">OPTIONS</a> (<a href="#OPTIONS" id="rfc.xref.OPTIONS.4" title="OPTIONS">Section 4.3.7</a>) and <a href="#TRACE" class="smpl">TRACE</a> (<a href="#TRACE" id="rfc.xref.TRACE.4" title="TRACE">Section 4.3.8</a>) request methods have been defined as being safe. 4125 </p> 4126 <p id="rfc.section.B.p.11">The definition of <a href="#header.expect" class="smpl">Expect</a> has been both fixed to allow parameters for value-less expectations and simplified to allow trailing semicolons after "100-continue" 4127 (<a href="#header.expect" id="rfc.xref.header.expect.4" title="Expect">Section 5.1.2</a>). 4128 </p> 4129 <p id="rfc.section.B.p.12">The <a href="#header.max-forwards" class="smpl">Max-Forwards</a> header field (<a href="#header.max-forwards" id="rfc.xref.header.max-forwards.5" title="Max-Forwards">Section 5.1.1</a>) has been restricted to the <a href="#OPTIONS" class="smpl">OPTIONS</a> and <a href="#TRACE" class="smpl">TRACE</a> methods; previously, extension methods could have used it as well. 4130 </p> 4131 <p id="rfc.section.B.p.13">The "about:blank" URI has been suggested as a value for the <a href="#header.referer" class="smpl">Referer</a> header field when no referring URI is applicable, which distinguishes that case from others where the Referer field is not 4132 sent or has been removed (<a href="#header.referer" id="rfc.xref.header.referer.4" title="Referer">Section 5.5.2</a>). 4133 </p> 4134 <p id="rfc.section.B.p.14">The <a href="#status.201" class="smpl">201 (Created)</a> status description has been changed to allow for the possibility that more than one resource has been created (<a href="#status.201" id="rfc.xref.status.201.3" title="201 Created">Section 6.3.2</a>). 4135 </p> 4136 <p id="rfc.section.B.p.15">The definition of <a href="#status.203" class="smpl">203 (Non-Authoritative Information)</a> has been broadened to include cases of payload transformations as well (<a href="#status.203" id="rfc.xref.status.203.3" title="203 Non-Authoritative Information">Section 6.3.4</a>). 4137 </p> 4138 <p id="rfc.section.B.p.16">The redirect status codes <a href="#status.301" class="smpl">301</a>, <a href="#status.302" class="smpl">302</a>, and <a href="#status.307" class="smpl">307</a> no longer have normative requirements on response payloads and user interaction (<a href="#status.3xx" id="rfc.xref.status.3xx.1" title="Redirection 3xx">Section 6.4</a>). 4139 </p> 4140 <p id="rfc.section.B.p.17">The request methods that are safe to automatically redirect is no longer a closed set; user agents are able to make that determination 4141 based upon the request method semantics (<a href="#status.3xx" id="rfc.xref.status.3xx.2" title="Redirection 3xx">Section 6.4</a>). 4142 </p> 4143 <p id="rfc.section.B.p.18">The description of 303 (See Other) status code has been changed to allow it to be cached if explicit freshness information 4144 is given, and a specific definition has been added for a 303 response to GET (<a href="#status.303" id="rfc.xref.status.303.3" title="303 See Other">Section 6.4.4</a>). 4145 </p> 4146 <p id="rfc.section.B.p.19">The status codes <a href="#status.301" class="smpl">301</a> and <a href="#status.302" class="smpl">302</a> (sections <a href="#status.301" id="rfc.xref.status.301.3" title="301 Moved Permanently">6.4.2</a> and <a href="#status.302" id="rfc.xref.status.302.3" title="302 Found">6.4.3</a>) have been changed to allow user agents to rewrite the method from POST to GET. 4147 </p> 4148 <p id="rfc.section.B.p.20">The <a href="#status.305" class="smpl">305 (Use Proxy)</a> status code has been deprecated due to security concerns regarding in-band configuration of a proxy (<a href="#status.305" id="rfc.xref.status.305.3" title="305 Use Proxy">Section 6.4.5</a>). 4149 </p> 4150 <p id="rfc.section.B.p.21">The <a href="#status.400" class="smpl">400 (Bad Request)</a> status code has been relaxed so that it isn't limited to syntax errors (<a href="#status.400" id="rfc.xref.status.400.3" title="400 Bad Request">Section 6.5.1</a>). 4151 </p> 4152 <p id="rfc.section.B.p.22">The <a href="#status.426" class="smpl">426 (Upgrade Required)</a> status code has been incorporated from <a href="#RFC2817" id="rfc.xref.RFC2817.3"><cite title="Upgrading to TLS Within HTTP/1.1">[RFC2817]</cite></a> (<a href="#status.426" id="rfc.xref.status.426.3" title="426 Upgrade Required">Section 6.5.15</a>). 4153 </p> 4154 <p id="rfc.section.B.p.23"> <a href="#header.allow" class="smpl">Allow</a> has been reclassified as a response header field, removing the option to specify it in a PUT request. Requirements relating 4155 to the content of Allow have been relaxed; correspondingly, clients are not required to always trust its value (<a href="#header.allow" id="rfc.xref.header.allow.4" title="Allow">Section 7.4.1</a>). 4156 </p> 4157 <p id="rfc.section.B.p.24">The target of requirements on HTTP-date and the Date header field have been reduced to those systems generating the date, 4158 rather than all systems sending a date (<a href="#origination.date" title="Origination Date">Section 7.1.1</a>). 4159 </p> 4160 <p id="rfc.section.B.p.25">The syntax of the <a href="#header.location" class="smpl">Location</a> header field has been changed to allow all URI references, including relative references and fragments, along with some clarifications 4161 as to when use of fragments would not be appropriate (<a href="#header.location" id="rfc.xref.header.location.6" title="Location">Section 7.1.2</a>). 4162 </p> 4163 <p id="rfc.section.B.p.26">A Method Registry has been defined (<a href="#method.registry" title="Method Registry">Section 8.1</a>). 4164 </p> 4165 <p id="rfc.section.B.p.27">The Status Code Registry (<a href="#status.code.registry" title="Status Code Registry">Section 8.2</a>) has been redefined by this specification; previously, it was defined in <a href="http://tools.ietf.org/html/rfc2817#section-7.1">Section 7.1</a> of <a href="#RFC2817" id="rfc.xref.RFC2817.4"><cite title="Upgrading to TLS Within HTTP/1.1">[RFC2817]</cite></a>. 4166 </p> 4167 <p id="rfc.section.B.p.28">Registration of Content Codings has been changed to require IETF Review (<a href="#content.coding.registry" title="Content Coding Registry">Section 8.4</a>). 4168 </p> 4169 <h1 id="rfc.section.C"><a href="#rfc.section.C">C.</a> <a id="imported.abnf" href="#imported.abnf">Imported ABNF</a></h1> 4170 <p id="rfc.section.C.p.1">The following core rules are included by reference, as defined in <a href="http://tools.ietf.org/html/rfc5234#appendix-B.1">Appendix B.1</a> of <a href="#RFC5234" id="rfc.xref.RFC5234.3"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a>: ALPHA (letters), CR (carriage return), CRLF (CR LF), CTL (controls), DIGIT (decimal 0-9), DQUOTE (double quote), HEXDIG 4213 4171 (hexadecimal 0-9/A-F/a-f), HTAB (horizontal tab), LF (line feed), OCTET (any 8-bit sequence of data), SP (space), and VCHAR 4214 4172 (any visible US-ASCII character). 4215 4173 </p> 4216 <p id="rfc.section. D.p.2">The rules below are defined in <a href="#Part1" id="rfc.xref.Part1.46"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>:4217 </p> 4218 <div id="rfc.figure.u.6 5"></div><pre class="inline"> <a href="#imported.abnf" class="smpl">BWS</a> = <BWS, defined in <a href="#Part1" id="rfc.xref.Part1.47"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>, <a href="p1-messaging.html#whitespace" title="Whitespace">Section 3.2.3</a>>4174 <p id="rfc.section.C.p.2">The rules below are defined in <a href="#Part1" id="rfc.xref.Part1.46"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>: 4175 </p> 4176 <div id="rfc.figure.u.64"></div><pre class="inline"> <a href="#imported.abnf" class="smpl">BWS</a> = <BWS, defined in <a href="#Part1" id="rfc.xref.Part1.47"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>, <a href="p1-messaging.html#whitespace" title="Whitespace">Section 3.2.3</a>> 4219 4177 <a href="#imported.abnf" class="smpl">OWS</a> = <OWS, defined in <a href="#Part1" id="rfc.xref.Part1.48"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>, <a href="p1-messaging.html#whitespace" title="Whitespace">Section 3.2.3</a>> 4220 4178 <a href="#imported.abnf" class="smpl">RWS</a> = <RWS, defined in <a href="#Part1" id="rfc.xref.Part1.49"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>, <a href="p1-messaging.html#whitespace" title="Whitespace">Section 3.2.3</a>> … … 4227 4185 <a href="#imported.abnf" class="smpl">token</a> = <token, defined in <a href="#Part1" id="rfc.xref.Part1.56"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.6</a>> 4228 4186 <a href="#imported.abnf" class="smpl">word</a> = <word, defined in <a href="#Part1" id="rfc.xref.Part1.57"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[Part1]</cite></a>, <a href="p1-messaging.html#field.components" title="Field value components">Section 3.2.6</a>> 4229 </pre><h1 id="rfc.section. E"><a href="#rfc.section.E">E.</a> <a id="collected.abnf" href="#collected.abnf">Collected ABNF</a></h1>4230 <div id="rfc.figure.u.6 6"></div> <pre class="inline"><a href="#header.accept" class="smpl">Accept</a> = [ ( "," / ( media-range [ accept-params ] ) ) *( OWS "," [4187 </pre><h1 id="rfc.section.D"><a href="#rfc.section.D">D.</a> <a id="collected.abnf" href="#collected.abnf">Collected ABNF</a></h1> 4188 <div id="rfc.figure.u.65"></div> <pre class="inline"><a href="#header.accept" class="smpl">Accept</a> = [ ( "," / ( media-range [ accept-params ] ) ) *( OWS "," [ 4231 4189 OWS ( media-range [ accept-params ] ) ] ) ] 4232 4190 <a href="#header.accept-charset" class="smpl">Accept-Charset</a> = *( "," OWS ) ( ( charset / "*" ) [ weight ] ) *( OWS … … 4261 4219 <a href="#header.location" class="smpl">Location</a> = URI-reference 4262 4220 4263 <a href="#mime-version" class="smpl">MIME-Version</a> = 1*DIGIT "." 1*DIGIT4264 4221 <a href="#header.max-forwards" class="smpl">Max-Forwards</a> = 1*DIGIT 4265 4222 … … 4366 4323 4367 4324 <a href="#preferred.date.format" class="smpl">year</a> = 4DIGIT 4368 </pre> <h1 id="rfc.section. F"><a href="#rfc.section.F">F.</a> <a id="change.log" href="#change.log">Change Log (to be removed by RFC Editor before publication)</a></h1>4369 <h2 id="rfc.section. F.1"><a href="#rfc.section.F.1">F.1</a> Since RFC 26164325 </pre> <h1 id="rfc.section.E"><a href="#rfc.section.E">E.</a> <a id="change.log" href="#change.log">Change Log (to be removed by RFC Editor before publication)</a></h1> 4326 <h2 id="rfc.section.E.1"><a href="#rfc.section.E.1">E.1</a> Since RFC 2616 4370 4327 </h2> 4371 <p id="rfc.section. F.1.p.1">Changes up to the first Working Group Last Call draft are summarized in <<a href="http://trac.tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-21#appendix-F">http://trac.tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-21#appendix-F</a>>.4372 </p> 4373 <h2 id="rfc.section. F.2"><a href="#rfc.section.F.2">F.2</a> <a id="changes.since.21" href="#changes.since.21">Since draft-ietf-httpbis-p2-semantics-21</a></h2>4374 <p id="rfc.section. F.2.p.1">Closed issues: </p>4328 <p id="rfc.section.E.1.p.1">Changes up to the first Working Group Last Call draft are summarized in <<a href="http://trac.tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-21#appendix-F">http://trac.tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-21#appendix-F</a>>. 4329 </p> 4330 <h2 id="rfc.section.E.2"><a href="#rfc.section.E.2">E.2</a> <a id="changes.since.21" href="#changes.since.21">Since draft-ietf-httpbis-p2-semantics-21</a></h2> 4331 <p id="rfc.section.E.2.p.1">Closed issues: </p> 4375 4332 <ul> 4376 4333 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/388">http://tools.ietf.org/wg/httpbis/trac/ticket/388</a>>: "User confirmation for unsafe methods" … … 4395 4352 <li><a id="rfc.index.2" href="#rfc.index.2"><b>2</b></a><ul> 4396 4353 <li>200 OK (status code) <a href="#rfc.xref.status.200.1">6.1</a>, <a href="#rfc.iref.72"><b>6.3.1</b></a>, <a href="#rfc.xref.status.200.2">8.2.3</a></li> 4397 <li>201 Created (status code) <a href="#rfc.xref.status.201.1">6.1</a>, <a href="#rfc.iref.72"><b>6.3.2</b></a>, <a href="#rfc.xref.status.201.2">8.2.3</a> </li>4354 <li>201 Created (status code) <a href="#rfc.xref.status.201.1">6.1</a>, <a href="#rfc.iref.72"><b>6.3.2</b></a>, <a href="#rfc.xref.status.201.2">8.2.3</a>, <a href="#rfc.xref.status.201.3">B</a></li> 4398 4355 <li>202 Accepted (status code) <a href="#rfc.xref.status.202.1">6.1</a>, <a href="#rfc.iref.72"><b>6.3.3</b></a>, <a href="#rfc.xref.status.202.2">8.2.3</a></li> 4399 <li>203 Non-Authoritative Information (status code) <a href="#rfc.xref.status.203.1">6.1</a>, <a href="#rfc.iref.72"><b>6.3.4</b></a>, <a href="#rfc.xref.status.203.2">8.2.3</a>, <a href="#rfc.xref.status.203.3"> C</a></li>4356 <li>203 Non-Authoritative Information (status code) <a href="#rfc.xref.status.203.1">6.1</a>, <a href="#rfc.iref.72"><b>6.3.4</b></a>, <a href="#rfc.xref.status.203.2">8.2.3</a>, <a href="#rfc.xref.status.203.3">B</a></li> 4400 4357 <li>204 No Content (status code) <a href="#rfc.xref.status.204.1">6.1</a>, <a href="#rfc.iref.72"><b>6.3.5</b></a>, <a href="#rfc.xref.status.204.2">8.2.3</a></li> 4401 4358 <li>205 Reset Content (status code) <a href="#rfc.xref.status.205.1">6.1</a>, <a href="#rfc.iref.72"><b>6.3.6</b></a>, <a href="#rfc.xref.status.205.2">8.2.3</a></li> … … 4405 4362 <li><a id="rfc.index.3" href="#rfc.index.3"><b>3</b></a><ul> 4406 4363 <li>300 Multiple Choices (status code) <a href="#rfc.xref.status.300.1">6.1</a>, <a href="#rfc.iref.73"><b>6.4.1</b></a>, <a href="#rfc.xref.status.300.2">8.2.3</a></li> 4407 <li>301 Moved Permanently (status code) <a href="#rfc.xref.status.301.1">6.1</a>, <a href="#rfc.iref.73"><b>6.4.2</b></a>, <a href="#rfc.xref.status.301.2">8.2.3</a>, <a href="#rfc.xref.status.301.3"> C</a></li>4408 <li>302 Found (status code) <a href="#rfc.xref.status.302.1">6.1</a>, <a href="#rfc.iref.73"><b>6.4.3</b></a>, <a href="#rfc.xref.status.302.2">8.2.3</a>, <a href="#rfc.xref.status.302.3"> C</a></li>4409 <li>303 See Other (status code) <a href="#rfc.xref.status.303.1">6.1</a>, <a href="#rfc.iref.73"><b>6.4.4</b></a>, <a href="#rfc.xref.status.303.2">8.2.3</a>, <a href="#rfc.xref.status.303.3"> C</a></li>4410 <li>305 Use Proxy (status code) <a href="#rfc.xref.status.305.1">6.1</a>, <a href="#rfc.iref.73"><b>6.4.5</b></a>, <a href="#rfc.xref.status.305.2">8.2.3</a>, <a href="#rfc.xref.status.305.3"> C</a></li>4364 <li>301 Moved Permanently (status code) <a href="#rfc.xref.status.301.1">6.1</a>, <a href="#rfc.iref.73"><b>6.4.2</b></a>, <a href="#rfc.xref.status.301.2">8.2.3</a>, <a href="#rfc.xref.status.301.3">B</a></li> 4365 <li>302 Found (status code) <a href="#rfc.xref.status.302.1">6.1</a>, <a href="#rfc.iref.73"><b>6.4.3</b></a>, <a href="#rfc.xref.status.302.2">8.2.3</a>, <a href="#rfc.xref.status.302.3">B</a></li> 4366 <li>303 See Other (status code) <a href="#rfc.xref.status.303.1">6.1</a>, <a href="#rfc.iref.73"><b>6.4.4</b></a>, <a href="#rfc.xref.status.303.2">8.2.3</a>, <a href="#rfc.xref.status.303.3">B</a></li> 4367 <li>305 Use Proxy (status code) <a href="#rfc.xref.status.305.1">6.1</a>, <a href="#rfc.iref.73"><b>6.4.5</b></a>, <a href="#rfc.xref.status.305.2">8.2.3</a>, <a href="#rfc.xref.status.305.3">B</a></li> 4411 4368 <li>306 (Unused) (status code) <a href="#rfc.iref.73"><b>6.4.6</b></a>, <a href="#rfc.xref.status.306.1">8.2.3</a></li> 4412 <li>307 Temporary Redirect (status code) <a href="#rfc.xref.status.307.1">6.1</a>, <a href="#rfc.iref.73"><b>6.4.7</b></a>, <a href="#rfc.xref.status.307.2">8.2.3</a> , <a href="#rfc.xref.status.307.3">C</a></li>4413 <li>3xx Redirection (status code class) <a href="#rfc.iref.72"><b>6.4</b></a>, <a href="#rfc.xref.status.3xx.1"> C</a>, <a href="#rfc.xref.status.3xx.2">C</a></li>4369 <li>307 Temporary Redirect (status code) <a href="#rfc.xref.status.307.1">6.1</a>, <a href="#rfc.iref.73"><b>6.4.7</b></a>, <a href="#rfc.xref.status.307.2">8.2.3</a></li> 4370 <li>3xx Redirection (status code class) <a href="#rfc.iref.72"><b>6.4</b></a>, <a href="#rfc.xref.status.3xx.1">B</a>, <a href="#rfc.xref.status.3xx.2">B</a></li> 4414 4371 </ul> 4415 4372 </li> 4416 4373 <li><a id="rfc.index.4" href="#rfc.index.4"><b>4</b></a><ul> 4417 <li>400 Bad Request (status code) <a href="#rfc.xref.status.400.1">6.1</a>, <a href="#rfc.iref.74"><b>6.5.1</b></a>, <a href="#rfc.xref.status.400.2">8.2.3</a>, <a href="#rfc.xref.status.400.3"> C</a></li>4374 <li>400 Bad Request (status code) <a href="#rfc.xref.status.400.1">6.1</a>, <a href="#rfc.iref.74"><b>6.5.1</b></a>, <a href="#rfc.xref.status.400.2">8.2.3</a>, <a href="#rfc.xref.status.400.3">B</a></li> 4418 4375 <li>402 Payment Required (status code) <a href="#rfc.xref.status.402.1">6.1</a>, <a href="#rfc.iref.74"><b>6.5.2</b></a>, <a href="#rfc.xref.status.402.2">8.2.3</a></li> 4419 <li>403 Forbidden (status code) <a href="#rfc.xref.status.403.1">6.1</a>, <a href="#rfc.iref.74"><b>6.5.3</b></a>, <a href="#rfc.xref.status.403.2">8.2.3</a> , <a href="#rfc.xref.status.403.3">C</a></li>4376 <li>403 Forbidden (status code) <a href="#rfc.xref.status.403.1">6.1</a>, <a href="#rfc.iref.74"><b>6.5.3</b></a>, <a href="#rfc.xref.status.403.2">8.2.3</a></li> 4420 4377 <li>404 Not Found (status code) <a href="#rfc.xref.status.404.1">6.1</a>, <a href="#rfc.iref.74"><b>6.5.4</b></a>, <a href="#rfc.xref.status.404.2">8.2.3</a></li> 4421 4378 <li>405 Method Not Allowed (status code) <a href="#rfc.xref.status.405.1">6.1</a>, <a href="#rfc.iref.74"><b>6.5.5</b></a>, <a href="#rfc.xref.status.405.2">8.2.3</a></li> … … 4429 4386 <li>415 Unsupported Media Type (status code) <a href="#rfc.xref.status.415.1">6.1</a>, <a href="#rfc.iref.74"><b>6.5.13</b></a>, <a href="#rfc.xref.status.415.2">8.2.3</a></li> 4430 4387 <li>417 Expectation Failed (status code) <a href="#rfc.xref.status.417.1">6.1</a>, <a href="#rfc.iref.74"><b>6.5.14</b></a>, <a href="#rfc.xref.status.417.2">8.2.3</a></li> 4431 <li>426 Upgrade Required (status code) <a href="#rfc.xref.status.426.1">6.1</a>, <a href="#rfc.iref.74"><b>6.5.15</b></a>, <a href="#rfc.xref.status.426.2">8.2.3</a>, <a href="#rfc.xref.status.426.3"> C</a></li>4388 <li>426 Upgrade Required (status code) <a href="#rfc.xref.status.426.1">6.1</a>, <a href="#rfc.iref.74"><b>6.5.15</b></a>, <a href="#rfc.xref.status.426.2">8.2.3</a>, <a href="#rfc.xref.status.426.3">B</a></li> 4432 4389 <li>4xx Client Error (status code class) <a href="#rfc.iref.73"><b>6.5</b></a></li> 4433 4390 </ul> … … 4445 4402 <li><a id="rfc.index.A" href="#rfc.index.A"><b>A</b></a><ul> 4446 4403 <li>Accept header field <a href="#rfc.xref.header.accept.1">3.1.1.1</a>, <a href="#rfc.xref.header.accept.2">5.3</a>, <a href="#rfc.iref.a.1"><b>5.3.2</b></a>, <a href="#rfc.xref.header.accept.3">8.3.2</a></li> 4447 <li>Accept-Charset header field <a href="#rfc.xref.header.accept-charset.1">5.3</a>, <a href="#rfc.iref.a.2"><b>5.3.3</b></a>, <a href="#rfc.xref.header.accept-charset.2">8.3.2</a>, <a href="#rfc.xref.header.accept-charset.3"> C</a></li>4404 <li>Accept-Charset header field <a href="#rfc.xref.header.accept-charset.1">5.3</a>, <a href="#rfc.iref.a.2"><b>5.3.3</b></a>, <a href="#rfc.xref.header.accept-charset.2">8.3.2</a>, <a href="#rfc.xref.header.accept-charset.3">B</a></li> 4448 4405 <li>Accept-Encoding header field <a href="#rfc.xref.header.accept-encoding.1">3.1.2.1</a>, <a href="#rfc.xref.header.accept-encoding.2">5.3</a>, <a href="#rfc.iref.a.3"><b>5.3.4</b></a>, <a href="#rfc.xref.header.accept-encoding.3">8.3.2</a>, <a href="#rfc.xref.header.accept-encoding.4">8.4.2</a></li> 4449 4406 <li>Accept-Language header field <a href="#rfc.xref.header.accept-language.1">5.3</a>, <a href="#rfc.iref.a.4"><b>5.3.5</b></a>, <a href="#rfc.xref.header.accept-language.2">8.3.2</a></li> 4450 <li>Allow header field <a href="#rfc.xref.header.allow.1">4.1</a>, <a href="#rfc.xref.header.allow.2">7.4</a>, <a href="#rfc.iref.a.5"><b>7.4.1</b></a>, <a href="#rfc.xref.header.allow.3">8.3.2</a>, <a href="#rfc.xref.header.allow.4"> C</a>, <a href="#rfc.xref.header.allow.5">C</a></li>4407 <li>Allow header field <a href="#rfc.xref.header.allow.1">4.1</a>, <a href="#rfc.xref.header.allow.2">7.4</a>, <a href="#rfc.iref.a.5"><b>7.4.1</b></a>, <a href="#rfc.xref.header.allow.3">8.3.2</a>, <a href="#rfc.xref.header.allow.4">B</a></li> 4451 4408 </ul> 4452 4409 </li> … … 4459 4416 <li>cacheable <a href="#rfc.iref.c.8"><b>4.2.3</b></a></li> 4460 4417 <li>compress (content coding) <a href="#rfc.iref.c.4"><b>3.1.2.1</b></a></li> 4461 <li>CONNECT method <a href="#rfc.xref.CONNECT.1">4.1</a>, <a href="#rfc.iref.c.9"><b>4.3.6</b></a>, <a href="#rfc.xref.CONNECT.2">8.1.3</a>, <a href="#rfc.xref.CONNECT.3"> C</a>, <a href="#rfc.xref.CONNECT.4">C</a></li>4418 <li>CONNECT method <a href="#rfc.xref.CONNECT.1">4.1</a>, <a href="#rfc.iref.c.9"><b>4.3.6</b></a>, <a href="#rfc.xref.CONNECT.2">8.1.3</a>, <a href="#rfc.xref.CONNECT.3">B</a></li> 4462 4419 <li>content coding <a href="#rfc.iref.c.3"><b>3.1.2.1</b></a></li> 4463 4420 <li>content negotiation <a href="#rfc.iref.c.1">1</a></li> 4464 4421 <li>Content-Encoding header field <a href="#rfc.xref.header.content-encoding.1">3.1</a>, <a href="#rfc.xref.header.content-encoding.2">3.1.2.1</a>, <a href="#rfc.iref.c.5"><b>3.1.2.2</b></a>, <a href="#rfc.xref.header.content-encoding.3">8.3.2</a></li> 4465 4422 <li>Content-Language header field <a href="#rfc.xref.header.content-language.1">3.1</a>, <a href="#rfc.iref.c.6"><b>3.1.3.2</b></a>, <a href="#rfc.xref.header.content-language.2">8.3.2</a></li> 4466 <li>Content-Location header field <a href="#rfc.xref.header.content-location.1">3.1</a>, <a href="#rfc.iref.c.7"><b>3.1.4.2</b></a>, <a href="#rfc.xref.header.content-location.2">4.3.3</a>, <a href="#rfc.xref.header.content-location.3">7.1.2</a>, <a href="#rfc.xref.header.content-location.4">8.3.2</a>, <a href="#rfc.xref.header.content-location.5"> C</a></li>4467 <li>Content-Transfer-Encoding header field <a href="#rfc.iref.c.10">A.5</a> , <a href="#rfc.xref.no.content-transfer-encoding.1">C</a></li>4423 <li>Content-Location header field <a href="#rfc.xref.header.content-location.1">3.1</a>, <a href="#rfc.iref.c.7"><b>3.1.4.2</b></a>, <a href="#rfc.xref.header.content-location.2">4.3.3</a>, <a href="#rfc.xref.header.content-location.3">7.1.2</a>, <a href="#rfc.xref.header.content-location.4">8.3.2</a>, <a href="#rfc.xref.header.content-location.5">B</a></li> 4424 <li>Content-Transfer-Encoding header field <a href="#rfc.iref.c.10">A.5</a></li> 4468 4425 <li>Content-Type header field <a href="#rfc.xref.header.content-type.1">3.1</a>, <a href="#rfc.xref.header.content-type.2">3.1.1.1</a>, <a href="#rfc.iref.c.2"><b>3.1.1.5</b></a>, <a href="#rfc.xref.header.content-type.3">8.3.1</a>, <a href="#rfc.xref.header.content-type.4">8.3.2</a></li> 4469 4426 </ul> 4470 4427 </li> 4471 4428 <li><a id="rfc.index.D" href="#rfc.index.D"><b>D</b></a><ul> 4472 <li>Date header field <a href="#rfc.xref.header.date.1">3.3</a>, <a href="#rfc.xref.header.date.2">7.1</a>, <a href="#rfc.iref.d.3"><b>7.1.1.2</b></a>, <a href="#rfc.xref.header.date.3">8.3.2</a> , <a href="#rfc.xref.header.date.4">C</a></li>4429 <li>Date header field <a href="#rfc.xref.header.date.1">3.3</a>, <a href="#rfc.xref.header.date.2">7.1</a>, <a href="#rfc.iref.d.3"><b>7.1.1.2</b></a>, <a href="#rfc.xref.header.date.3">8.3.2</a></li> 4473 4430 <li>deflate (content coding) <a href="#rfc.iref.d.1"><b>3.1.2.1</b></a></li> 4474 4431 <li>DELETE method <a href="#rfc.xref.DELETE.1">4.1</a>, <a href="#rfc.iref.d.2"><b>4.3.5</b></a>, <a href="#rfc.xref.DELETE.2">8.1.3</a></li> … … 4476 4433 </li> 4477 4434 <li><a id="rfc.index.E" href="#rfc.index.E"><b>E</b></a><ul> 4478 <li>Expect header field <a href="#rfc.xref.header.expect.1">5.1</a>, <a href="#rfc.iref.e.1"><b>5.1.2</b></a>, <a href="#rfc.xref.header.expect.2">6.5.14</a>, <a href="#rfc.xref.header.expect.3">8.3.2</a>, <a href="#rfc.xref.header.expect.4"> C</a></li>4435 <li>Expect header field <a href="#rfc.xref.header.expect.1">5.1</a>, <a href="#rfc.iref.e.1"><b>5.1.2</b></a>, <a href="#rfc.xref.header.expect.2">6.5.14</a>, <a href="#rfc.xref.header.expect.3">8.3.2</a>, <a href="#rfc.xref.header.expect.4">B</a></li> 4479 4436 <li>Expect Values 4480 4437 <ul> … … 4489 4446 </li> 4490 4447 <li><a id="rfc.index.G" href="#rfc.index.G"><b>G</b></a><ul> 4491 <li>GET method <a href="#rfc.xref.GET.1">3.3</a>, <a href="#rfc.xref.GET.2">4.1</a>, <a href="#rfc.iref.g.16"><b>4.3.1</b></a>, <a href="#rfc.xref.GET.3">8.1.3</a>, <a href="#rfc.xref.GET.4"> C</a></li>4448 <li>GET method <a href="#rfc.xref.GET.1">3.3</a>, <a href="#rfc.xref.GET.2">4.1</a>, <a href="#rfc.iref.g.16"><b>4.3.1</b></a>, <a href="#rfc.xref.GET.3">8.1.3</a>, <a href="#rfc.xref.GET.4">B</a></li> 4492 4449 <li><tt>Grammar</tt> 4493 4450 <ul> … … 4531 4488 <li><tt>media-type</tt> <a href="#rfc.iref.g.1"><b>3.1.1.1</b></a></li> 4532 4489 <li><tt>method</tt> <a href="#rfc.iref.g.15"><b>4.1</b></a></li> 4533 <li><tt>MIME-Version</tt> <a href="#rfc.iref.g.62"><b>A.1</b></a></li>4534 4490 <li><tt>minute</tt> <a href="#rfc.iref.g.44"><b>7.1.1.1</b></a></li> 4535 4491 <li><tt>month</tt> <a href="#rfc.iref.g.49"><b>7.1.1.1</b></a></li> … … 4566 4522 </li> 4567 4523 <li><a id="rfc.index.L" href="#rfc.index.L"><b>L</b></a><ul> 4568 <li>Location header field <a href="#rfc.xref.header.location.1">4.3.3</a>, <a href="#rfc.xref.header.location.2">6.4</a>, <a href="#rfc.xref.header.location.3">7.1</a>, <a href="#rfc.iref.l.1"><b>7.1.2</b></a>, <a href="#rfc.xref.header.location.4">8.3.2</a>, <a href="#rfc.xref.header.location.5">9.5</a>, <a href="#rfc.xref.header.location.6"> C</a></li>4524 <li>Location header field <a href="#rfc.xref.header.location.1">4.3.3</a>, <a href="#rfc.xref.header.location.2">6.4</a>, <a href="#rfc.xref.header.location.3">7.1</a>, <a href="#rfc.iref.l.1"><b>7.1.2</b></a>, <a href="#rfc.xref.header.location.4">8.3.2</a>, <a href="#rfc.xref.header.location.5">9.5</a>, <a href="#rfc.xref.header.location.6">B</a></li> 4569 4525 </ul> 4570 4526 </li> 4571 4527 <li><a id="rfc.index.M" href="#rfc.index.M"><b>M</b></a><ul> 4572 <li>Max-Forwards header field <a href="#rfc.xref.header.max-forwards.1">4.3.7</a>, <a href="#rfc.xref.header.max-forwards.2">4.3.8</a>, <a href="#rfc.xref.header.max-forwards.3">5.1</a>, <a href="#rfc.iref.m.1"><b>5.1.1</b></a>, <a href="#rfc.xref.header.max-forwards.4">8.3.2</a>, <a href="#rfc.xref.header.max-forwards.5"> C</a></li>4528 <li>Max-Forwards header field <a href="#rfc.xref.header.max-forwards.1">4.3.7</a>, <a href="#rfc.xref.header.max-forwards.2">4.3.8</a>, <a href="#rfc.xref.header.max-forwards.3">5.1</a>, <a href="#rfc.iref.m.1"><b>5.1.1</b></a>, <a href="#rfc.xref.header.max-forwards.4">8.3.2</a>, <a href="#rfc.xref.header.max-forwards.5">B</a></li> 4573 4529 <li>MIME-Version header field <a href="#rfc.xref.mime-version.1">8.3.2</a>, <a href="#rfc.iref.m.2"><b>A.1</b></a></li> 4574 4530 </ul> 4575 4531 </li> 4576 4532 <li><a id="rfc.index.O" href="#rfc.index.O"><b>O</b></a><ul> 4577 <li>OPTIONS method <a href="#rfc.xref.OPTIONS.1">4.1</a>, <a href="#rfc.iref.o.1"><b>4.3.7</b></a>, <a href="#rfc.xref.OPTIONS.2">5.1.1</a>, <a href="#rfc.xref.OPTIONS.3">8.1.3</a>, <a href="#rfc.extref.o.13"> C</a>, <a href="#rfc.xref.OPTIONS.4">C</a></li>4533 <li>OPTIONS method <a href="#rfc.xref.OPTIONS.1">4.1</a>, <a href="#rfc.iref.o.1"><b>4.3.7</b></a>, <a href="#rfc.xref.OPTIONS.2">5.1.1</a>, <a href="#rfc.xref.OPTIONS.3">8.1.3</a>, <a href="#rfc.extref.o.13">B</a>, <a href="#rfc.xref.OPTIONS.4">B</a>, <a href="#rfc.extref.o.14">B</a></li> 4578 4534 </ul> 4579 4535 </li> 4580 4536 <li><a id="rfc.index.P" href="#rfc.index.P"><b>P</b></a><ul> 4581 <li><em>Part1</em> <a href="#rfc.xref.Part1.1">1</a>, <a href="#rfc.xref.Part1.2">1.1</a>, <a href="#rfc.xref.Part1.3">1.2</a>, <a href="#rfc.xref.Part1.4">2</a>, <a href="#rfc.xref.Part1.5">2</a>, <a href="#rfc.xref.Part1.6">2</a>, <a href="#rfc.xref.Part1.7">3.1.2.1</a>, <a href="#rfc.xref.Part1.8">3.1.2.1</a>, <a href="#rfc.xref.Part1.9">3.1.2.1</a>, <a href="#rfc.xref.Part1.10">3.1.2.2</a>, <a href="#rfc.xref.Part1.11">3.1.4.1</a>, <a href="#rfc.xref.Part1.12">3.1.4.2</a>, <a href="#rfc.xref.Part1.13">3.3</a>, <a href="#rfc.xref.Part1.14">3.3</a>, <a href="#rfc.xref.Part1.15">4.3.6</a>, <a href="#rfc.xref.Part1.16">4.3.7</a>, <a href="#rfc.xref.Part1.17">4.3.8</a>, <a href="#rfc.xref.Part1.18">4.3.8</a>, <a href="#rfc.xref.Part1.19">5.1</a>, <a href="#rfc.xref.Part1.20">5.5</a>, <a href="#rfc.xref.Part1.21">5.5.3</a>, <a href="#rfc.xref.Part1.22">6.2.2</a>, <a href="#rfc.xref.Part1.23">6.3.4</a>, <a href="#rfc.xref.Part1.24">6.5.7</a>, <a href="#rfc.xref.Part1.25">6.5.10</a>, <a href="#rfc.xref.Part1.26">6.5.12</a>, <a href="#rfc.xref.Part1.27">6.5.15</a>, <a href="#rfc.xref.Part1.28">6.6.6</a>, <a href="#rfc.xref.Part1.29">7.4.2</a>, <a href="#rfc.xref.Part1.30">8.1.2</a>, <a href="#rfc.xref.Part1.31">8.3.1</a>, <a href="#rfc.xref.Part1.32">8.3.1</a>, <a href="#rfc.xref.Part1.33">8.3.1</a>, <a href="#rfc.xref.Part1.34">8.3.1</a>, <a href="#rfc.xref.Part1.35">8.3.1</a>, <a href="#rfc.xref.Part1.36">8.3.1</a>, <a href="#rfc.xref.Part1.37">8.4</a>, <a href="#rfc.xref.Part1.38">8.4.1</a>, <a href="#rfc.xref.Part1.39">8.4.1</a>, <a href="#rfc.xref.Part1.40">8.4.2</a>, <a href="#rfc.xref.Part1.41">8.4.2</a>, <a href="#rfc.xref.Part1.42">8.4.2</a>, <a href="#rfc.xref.Part1.43">9.4</a>, <a href="#rfc.xref.Part1.44">10</a>, <a href="#Part1"><b>11.1</b></a>, <a href="#rfc.xref.Part1.45"> C</a>, <a href="#rfc.xref.Part1.46">D</a>, <a href="#rfc.xref.Part1.47">D</a>, <a href="#rfc.xref.Part1.48">D</a>, <a href="#rfc.xref.Part1.49">D</a>, <a href="#rfc.xref.Part1.50">D</a>, <a href="#rfc.xref.Part1.51">D</a>, <a href="#rfc.xref.Part1.52">D</a>, <a href="#rfc.xref.Part1.53">D</a>, <a href="#rfc.xref.Part1.54">D</a>, <a href="#rfc.xref.Part1.55">D</a>, <a href="#rfc.xref.Part1.56">D</a>, <a href="#rfc.xref.Part1.57">D</a><ul>4537 <li><em>Part1</em> <a href="#rfc.xref.Part1.1">1</a>, <a href="#rfc.xref.Part1.2">1.1</a>, <a href="#rfc.xref.Part1.3">1.2</a>, <a href="#rfc.xref.Part1.4">2</a>, <a href="#rfc.xref.Part1.5">2</a>, <a href="#rfc.xref.Part1.6">2</a>, <a href="#rfc.xref.Part1.7">3.1.2.1</a>, <a href="#rfc.xref.Part1.8">3.1.2.1</a>, <a href="#rfc.xref.Part1.9">3.1.2.1</a>, <a href="#rfc.xref.Part1.10">3.1.2.2</a>, <a href="#rfc.xref.Part1.11">3.1.4.1</a>, <a href="#rfc.xref.Part1.12">3.1.4.2</a>, <a href="#rfc.xref.Part1.13">3.3</a>, <a href="#rfc.xref.Part1.14">3.3</a>, <a href="#rfc.xref.Part1.15">4.3.6</a>, <a href="#rfc.xref.Part1.16">4.3.7</a>, <a href="#rfc.xref.Part1.17">4.3.8</a>, <a href="#rfc.xref.Part1.18">4.3.8</a>, <a href="#rfc.xref.Part1.19">5.1</a>, <a href="#rfc.xref.Part1.20">5.5</a>, <a href="#rfc.xref.Part1.21">5.5.3</a>, <a href="#rfc.xref.Part1.22">6.2.2</a>, <a href="#rfc.xref.Part1.23">6.3.4</a>, <a href="#rfc.xref.Part1.24">6.5.7</a>, <a href="#rfc.xref.Part1.25">6.5.10</a>, <a href="#rfc.xref.Part1.26">6.5.12</a>, <a href="#rfc.xref.Part1.27">6.5.15</a>, <a href="#rfc.xref.Part1.28">6.6.6</a>, <a href="#rfc.xref.Part1.29">7.4.2</a>, <a href="#rfc.xref.Part1.30">8.1.2</a>, <a href="#rfc.xref.Part1.31">8.3.1</a>, <a href="#rfc.xref.Part1.32">8.3.1</a>, <a href="#rfc.xref.Part1.33">8.3.1</a>, <a href="#rfc.xref.Part1.34">8.3.1</a>, <a href="#rfc.xref.Part1.35">8.3.1</a>, <a href="#rfc.xref.Part1.36">8.3.1</a>, <a href="#rfc.xref.Part1.37">8.4</a>, <a href="#rfc.xref.Part1.38">8.4.1</a>, <a href="#rfc.xref.Part1.39">8.4.1</a>, <a href="#rfc.xref.Part1.40">8.4.2</a>, <a href="#rfc.xref.Part1.41">8.4.2</a>, <a href="#rfc.xref.Part1.42">8.4.2</a>, <a href="#rfc.xref.Part1.43">9.4</a>, <a href="#rfc.xref.Part1.44">10</a>, <a href="#Part1"><b>11.1</b></a>, <a href="#rfc.xref.Part1.45">B</a>, <a href="#rfc.xref.Part1.46">C</a>, <a href="#rfc.xref.Part1.47">C</a>, <a href="#rfc.xref.Part1.48">C</a>, <a href="#rfc.xref.Part1.49">C</a>, <a href="#rfc.xref.Part1.50">C</a>, <a href="#rfc.xref.Part1.51">C</a>, <a href="#rfc.xref.Part1.52">C</a>, <a href="#rfc.xref.Part1.53">C</a>, <a href="#rfc.xref.Part1.54">C</a>, <a href="#rfc.xref.Part1.55">C</a>, <a href="#rfc.xref.Part1.56">C</a>, <a href="#rfc.xref.Part1.57">C</a><ul> 4582 4538 <li><em>Section 1.2</em> <a href="#rfc.xref.Part1.3">1.2</a></li> 4583 4539 <li><em>Section 2.5</em> <a href="#rfc.xref.Part1.2">1.1</a></li> 4584 4540 <li><em>Section 2.6</em> <a href="#rfc.xref.Part1.28">6.6.6</a></li> 4585 <li><em>Section 2.7</em> <a href="#rfc.xref.Part1.4">2</a>, <a href="#rfc.xref.Part1.50"> D</a>, <a href="#rfc.xref.Part1.51">D</a>, <a href="#rfc.xref.Part1.54">D</a></li>4586 <li><em>Section 3.2</em> <a href="#rfc.xref.Part1.21">5.5.3</a>, <a href="#rfc.xref.Part1.29">7.4.2</a>, <a href="#rfc.xref.Part1.31">8.3.1</a>, <a href="#rfc.xref.Part1.34">8.3.1</a>, <a href="#rfc.xref.Part1.53"> D</a></li>4587 <li><em>Section 3.2.3</em> <a href="#rfc.xref.Part1.47"> D</a>, <a href="#rfc.xref.Part1.48">D</a>, <a href="#rfc.xref.Part1.49">D</a></li>4588 <li><em>Section 3.2.6</em> <a href="#rfc.xref.Part1.33">8.3.1</a>, <a href="#rfc.xref.Part1.52"> D</a>, <a href="#rfc.xref.Part1.55">D</a>, <a href="#rfc.xref.Part1.56">D</a>, <a href="#rfc.xref.Part1.57">D</a></li>4541 <li><em>Section 2.7</em> <a href="#rfc.xref.Part1.4">2</a>, <a href="#rfc.xref.Part1.50">C</a>, <a href="#rfc.xref.Part1.51">C</a>, <a href="#rfc.xref.Part1.54">C</a></li> 4542 <li><em>Section 3.2</em> <a href="#rfc.xref.Part1.21">5.5.3</a>, <a href="#rfc.xref.Part1.29">7.4.2</a>, <a href="#rfc.xref.Part1.31">8.3.1</a>, <a href="#rfc.xref.Part1.34">8.3.1</a>, <a href="#rfc.xref.Part1.53">C</a></li> 4543 <li><em>Section 3.2.3</em> <a href="#rfc.xref.Part1.47">C</a>, <a href="#rfc.xref.Part1.48">C</a>, <a href="#rfc.xref.Part1.49">C</a></li> 4544 <li><em>Section 3.2.6</em> <a href="#rfc.xref.Part1.33">8.3.1</a>, <a href="#rfc.xref.Part1.52">C</a>, <a href="#rfc.xref.Part1.55">C</a>, <a href="#rfc.xref.Part1.56">C</a>, <a href="#rfc.xref.Part1.57">C</a></li> 4589 4545 <li><em>Section 3.3.1</em> <a href="#rfc.xref.Part1.10">3.1.2.2</a>, <a href="#rfc.xref.Part1.14">3.3</a></li> 4590 4546 <li><em>Section 3.3</em> <a href="#rfc.xref.Part1.30">8.1.2</a></li> … … 4600 4556 <li><em>Section 5.4</em> <a href="#rfc.xref.Part1.19">5.1</a></li> 4601 4557 <li><em>Section 5.5</em> <a href="#rfc.xref.Part1.6">2</a>, <a href="#rfc.xref.Part1.11">3.1.4.1</a>, <a href="#rfc.xref.Part1.12">3.1.4.2</a></li> 4602 <li><em>Section 5.7.1</em> <a href="#rfc.xref.Part1.18">4.3.8</a>, <a href="#rfc.xref.Part1.43">9.4</a> , <a href="#rfc.xref.Part1.45">C</a></li>4558 <li><em>Section 5.7.1</em> <a href="#rfc.xref.Part1.18">4.3.8</a>, <a href="#rfc.xref.Part1.43">9.4</a></li> 4603 4559 <li><em>Section 5.7.2</em> <a href="#rfc.xref.Part1.23">6.3.4</a></li> 4604 4560 <li><em>Section 6.1</em> <a href="#rfc.xref.Part1.24">6.5.7</a>, <a href="#rfc.xref.Part1.35">8.3.1</a></li> … … 4621 4577 </ul> 4622 4578 </li> 4623 <li><em>Part5</em> <a href="#rfc.xref.Part5.1">3.1.1.4</a>, <a href="#rfc.xref.Part5.2">3.3</a>, <a href="#rfc.xref.Part5.3">4.3.1</a>, <a href="#rfc.xref.Part5.4">4.3.1</a>, <a href="#rfc.xref.Part5.5">4.3.4</a>, <a href="#rfc.xref.Part5.6">5.1</a>, <a href="#rfc.xref.Part5.7">5.2</a>, <a href="#rfc.xref.Part5.8">6.1</a>, <a href="#rfc.xref.Part5.9">6.1</a>, <a href="#rfc.xref.Part5.10">6.1</a>, <a href="#rfc.xref.Part5.11">7.4</a>, <a href="#rfc.xref.Part5.12">8.1.2</a>, <a href="#Part5"><b>11.1</b></a> <ul>4579 <li><em>Part5</em> <a href="#rfc.xref.Part5.1">3.1.1.4</a>, <a href="#rfc.xref.Part5.2">3.3</a>, <a href="#rfc.xref.Part5.3">4.3.1</a>, <a href="#rfc.xref.Part5.4">4.3.1</a>, <a href="#rfc.xref.Part5.5">4.3.4</a>, <a href="#rfc.xref.Part5.6">5.1</a>, <a href="#rfc.xref.Part5.7">5.2</a>, <a href="#rfc.xref.Part5.8">6.1</a>, <a href="#rfc.xref.Part5.9">6.1</a>, <a href="#rfc.xref.Part5.10">6.1</a>, <a href="#rfc.xref.Part5.11">7.4</a>, <a href="#rfc.xref.Part5.12">8.1.2</a>, <a href="#Part5"><b>11.1</b></a>, <a href="#rfc.xref.Part5.13">A.6</a><ul> 4624 4580 <li><em>Section 3</em> <a href="#rfc.xref.Part5.8">6.1</a></li> 4625 4581 <li><em>Section 3.1</em> <a href="#rfc.xref.Part5.9">6.1</a></li> … … 4629 4585 <li><em>Section 5.3</em> <a href="#rfc.xref.Part5.7">5.2</a></li> 4630 4586 <li><em>Section 5.4</em> <a href="#rfc.xref.Part5.4">4.3.1</a>, <a href="#rfc.xref.Part5.6">5.1</a></li> 4587 <li><em>Appendix A</em> <a href="#rfc.xref.Part5.13">A.6</a></li> 4631 4588 </ul> 4632 4589 </li> … … 4653 4610 </li> 4654 4611 <li>payload <a href="#rfc.iref.p.1">3.3</a></li> 4655 <li>POST method <a href="#rfc.xref.POST.1">3.3</a>, <a href="#rfc.xref.POST.2">4.1</a>, <a href="#rfc.iref.p.2"><b>4.3.3</b></a>, <a href="#rfc.xref.POST.3">8.1.3</a> , <a href="#rfc.xref.POST.4">C</a></li>4656 <li>PUT method <a href="#rfc.xref.PUT.1">3.3</a>, <a href="#rfc.xref.PUT.2">4.1</a>, <a href="#rfc.iref.p.3"><b>4.3.4</b></a>, <a href="#rfc.xref.PUT.3">8.1.3</a>, <a href="#rfc.xref.PUT.4"> C</a>, <a href="#rfc.xref.PUT.5">C</a></li>4612 <li>POST method <a href="#rfc.xref.POST.1">3.3</a>, <a href="#rfc.xref.POST.2">4.1</a>, <a href="#rfc.iref.p.2"><b>4.3.3</b></a>, <a href="#rfc.xref.POST.3">8.1.3</a></li> 4613 <li>PUT method <a href="#rfc.xref.PUT.1">3.3</a>, <a href="#rfc.xref.PUT.2">4.1</a>, <a href="#rfc.iref.p.3"><b>4.3.4</b></a>, <a href="#rfc.xref.PUT.3">8.1.3</a>, <a href="#rfc.xref.PUT.4">B</a></li> 4657 4614 </ul> 4658 4615 </li> 4659 4616 <li><a id="rfc.index.R" href="#rfc.index.R"><b>R</b></a><ul> 4660 <li>Referer header field <a href="#rfc.xref.header.referer.1">5.5</a>, <a href="#rfc.iref.r.2"><b>5.5.2</b></a>, <a href="#rfc.xref.header.referer.2">8.3.2</a>, <a href="#rfc.xref.header.referer.3">9.3</a>, <a href="#rfc.xref.header.referer.4"> C</a></li>4617 <li>Referer header field <a href="#rfc.xref.header.referer.1">5.5</a>, <a href="#rfc.iref.r.2"><b>5.5.2</b></a>, <a href="#rfc.xref.header.referer.2">8.3.2</a>, <a href="#rfc.xref.header.referer.3">9.3</a>, <a href="#rfc.xref.header.referer.4">B</a></li> 4661 4618 <li>representation <a href="#rfc.iref.r.1">3</a></li> 4662 4619 <li><em>REST</em> <a href="#rfc.xref.REST.1">3</a>, <a href="#rfc.xref.REST.2">4.1</a>, <a href="#REST"><b>11.2</b></a></li> 4663 4620 <li>Retry-After header field <a href="#rfc.xref.header.retry-after.1">6.6.4</a>, <a href="#rfc.xref.header.retry-after.2">7.1</a>, <a href="#rfc.iref.r.3"><b>7.1.3</b></a>, <a href="#rfc.xref.header.retry-after.3">8.3.2</a></li> 4664 4621 <li><em>RFC1305</em> <a href="#rfc.xref.RFC1305.1">7.1.1.1</a>, <a href="#RFC1305"><b>11.2</b></a></li> 4665 <li><em>RFC1945</em> <a href="#rfc.xref.RFC1945.1">6.4</a>, <a href="#RFC1945"><b>11.2</b></a> , <a href="#rfc.xref.RFC1945.2">B</a><ul>4622 <li><em>RFC1945</em> <a href="#rfc.xref.RFC1945.1">6.4</a>, <a href="#RFC1945"><b>11.2</b></a><ul> 4666 4623 <li><em>Section 9.3</em> <a href="#rfc.xref.RFC1945.1">6.4</a></li> 4667 4624 </ul> … … 4670 4627 <li><em>RFC1951</em> <a href="#rfc.xref.RFC1951.1">8.4.2</a>, <a href="#RFC1951"><b>11.1</b></a></li> 4671 4628 <li><em>RFC1952</em> <a href="#rfc.xref.RFC1952.1">8.4.2</a>, <a href="#RFC1952"><b>11.1</b></a></li> 4672 <li><em>RFC2045</em> <a href="# RFC2045"><b>11.1</b></a>, <a href="#rfc.xref.RFC2045.1">A</a>, <a href="#rfc.xref.RFC2045.2">A.1</a></li>4629 <li><em>RFC2045</em> <a href="#rfc.xref.RFC2045.1">3.1.1.3</a>, <a href="#RFC2045"><b>11.1</b></a>, <a href="#rfc.xref.RFC2045.2">A</a>, <a href="#rfc.xref.RFC2045.3">A.1</a></li> 4673 4630 <li><em>RFC2046</em> <a href="#rfc.xref.RFC2046.1">3.1.1.1</a>, <a href="#rfc.xref.RFC2046.2">3.1.1.4</a>, <a href="#rfc.xref.RFC2046.3">3.1.1.5</a>, <a href="#RFC2046"><b>11.1</b></a>, <a href="#rfc.xref.RFC2046.4">A.2</a><ul> 4674 4631 <li><em>Section 4.5.1</em> <a href="#rfc.xref.RFC2046.3">3.1.1.5</a></li> … … 4676 4633 </ul> 4677 4634 </li> 4678 <li><em>RFC2049</em> <a href="# rfc.xref.RFC2049.1">3.1.1.3</a>, <a href="#RFC2049"><b>11.2</b></a>, <a href="#rfc.xref.RFC2049.2">A.2</a><ul>4679 <li><em>Section 4</em> <a href="#rfc.xref.RFC2049. 2">A.2</a></li>4635 <li><em>RFC2049</em> <a href="#RFC2049"><b>11.2</b></a>, <a href="#rfc.xref.RFC2049.1">A.2</a><ul> 4636 <li><em>Section 4</em> <a href="#rfc.xref.RFC2049.1">A.2</a></li> 4680 4637 </ul> 4681 4638 </li> 4682 <li><em>RFC2068</em> <a href="#rfc.xref.RFC2068.1">5.1.2.1</a>, <a href="#rfc.xref.RFC2068.2">6.4</a>, <a href="#rfc.xref.RFC2068.3">6.4</a>, <a href="#RFC2068"><b>11.2</b></a> , <a href="#rfc.xref.RFC2068.4">B</a><ul>4639 <li><em>RFC2068</em> <a href="#rfc.xref.RFC2068.1">5.1.2.1</a>, <a href="#rfc.xref.RFC2068.2">6.4</a>, <a href="#rfc.xref.RFC2068.3">6.4</a>, <a href="#RFC2068"><b>11.2</b></a><ul> 4683 4640 <li><em>Section 10.3</em> <a href="#rfc.xref.RFC2068.3">6.4</a></li> 4684 4641 <li><em>Section 10.3.4</em> <a href="#rfc.xref.RFC2068.2">6.4</a></li> 4685 4642 </ul> 4686 4643 </li> 4687 <li><em>RFC2076</em> <a href="#RFC2076"><b>11.2</b></a>, <a href="#rfc.xref.RFC2076.1">B</a></li>4688 4644 <li><em>RFC2119</em> <a href="#rfc.xref.RFC2119.1">1.1</a>, <a href="#RFC2119"><b>11.1</b></a></li> 4689 4645 <li><em>RFC2295</em> <a href="#rfc.xref.RFC2295.1">3.4</a>, <a href="#RFC2295"><b>11.2</b></a></li> … … 4698 4654 </ul> 4699 4655 </li> 4700 <li><em>RFC2817</em> <a href="#rfc.xref.RFC2817.1">8.2</a>, <a href="#RFC2817"><b>11.2</b></a>, <a href="#rfc.xref.RFC2817.2"> C</a>, <a href="#rfc.xref.RFC2817.3">C</a>, <a href="#rfc.xref.RFC2817.4">C</a><ul>4701 <li><em>Section 7.1</em> <a href="#rfc.xref.RFC2817.1">8.2</a>, <a href="#rfc.xref.RFC2817.4"> C</a></li>4656 <li><em>RFC2817</em> <a href="#rfc.xref.RFC2817.1">8.2</a>, <a href="#RFC2817"><b>11.2</b></a>, <a href="#rfc.xref.RFC2817.2">B</a>, <a href="#rfc.xref.RFC2817.3">B</a>, <a href="#rfc.xref.RFC2817.4">B</a><ul> 4657 <li><em>Section 7.1</em> <a href="#rfc.xref.RFC2817.1">8.2</a>, <a href="#rfc.xref.RFC2817.4">B</a></li> 4702 4658 </ul> 4703 4659 </li> … … 4719 4675 </ul> 4720 4676 </li> 4721 <li><em>RFC5234</em> <a href="#rfc.xref.RFC5234.1">1.2</a>, <a href="#rfc.xref.RFC5234.2">8.3.1</a>, <a href="#RFC5234"><b>11.1</b></a>, <a href="#rfc.xref.RFC5234.3"> D</a><ul>4722 <li><em>Appendix B.1</em> <a href="#rfc.xref.RFC5234.3"> D</a></li>4677 <li><em>RFC5234</em> <a href="#rfc.xref.RFC5234.1">1.2</a>, <a href="#rfc.xref.RFC5234.2">8.3.1</a>, <a href="#RFC5234"><b>11.1</b></a>, <a href="#rfc.xref.RFC5234.3">C</a><ul> 4678 <li><em>Appendix B.1</em> <a href="#rfc.xref.RFC5234.3">C</a></li> 4723 4679 </ul> 4724 4680 </li> … … 4735 4691 <li><em>RFC5789</em> <a href="#rfc.xref.RFC5789.1">4.3.4</a>, <a href="#RFC5789"><b>11.2</b></a></li> 4736 4692 <li><em>RFC5987</em> <a href="#rfc.xref.RFC5987.1">8.3.1</a>, <a href="#RFC5987"><b>11.2</b></a></li> 4737 <li><em>RFC6151</em> <a href="#RFC6151"><b>11.2</b></a>, <a href="#rfc.xref.RFC6151.1">C</a></li>4738 4693 <li><em>RFC6265</em> <a href="#rfc.xref.RFC6265.1">4.3.8</a>, <a href="#RFC6265"><b>11.2</b></a></li> 4739 <li><em>RFC6266</em> <a href="#RFC6266"><b>11.2</b></a>, <a href="#rfc.xref.RFC6266.1">B</a> , <a href="#rfc.xref.RFC6266.2">C</a></li>4694 <li><em>RFC6266</em> <a href="#RFC6266"><b>11.2</b></a>, <a href="#rfc.xref.RFC6266.1">B</a></li> 4740 4695 <li><em>RFC6365</em> <a href="#rfc.xref.RFC6365.1">1.2</a>, <a href="#rfc.xref.RFC6365.2">3.1.1.2</a>, <a href="#RFC6365"><b>11.1</b></a></li> 4741 4696 </ul> … … 4744 4699 <li>safe <a href="#rfc.iref.s.1"><b>4.2.1</b></a></li> 4745 4700 <li>selected representation <a href="#rfc.iref.s.7"><b>7.2</b></a></li> 4746 <li>Server header field <a href="#rfc.xref.header.server.1">7.4</a>, <a href="#rfc.iref.s.8"><b>7.4.2</b></a>, <a href="#rfc.xref.header.server.2">8.3.2</a>, <a href="#rfc.xref.header.server.3">9.4</a> , <a href="#rfc.xref.header.server.4">C</a></li>4701 <li>Server header field <a href="#rfc.xref.header.server.1">7.4</a>, <a href="#rfc.iref.s.8"><b>7.4.2</b></a>, <a href="#rfc.xref.header.server.2">8.3.2</a>, <a href="#rfc.xref.header.server.3">9.4</a></li> 4747 4702 <li>Status Codes Classes 4748 4703 <ul> 4749 4704 <li>1xx Informational <a href="#rfc.iref.s.2"><b>6.2</b></a></li> 4750 4705 <li>2xx Successful <a href="#rfc.iref.s.3"><b>6.3</b></a></li> 4751 <li>3xx Redirection <a href="#rfc.iref.s.4"><b>6.4</b></a>, <a href="#rfc.xref.status.3xx.1"> C</a>, <a href="#rfc.xref.status.3xx.2">C</a></li>4706 <li>3xx Redirection <a href="#rfc.iref.s.4"><b>6.4</b></a>, <a href="#rfc.xref.status.3xx.1">B</a>, <a href="#rfc.xref.status.3xx.2">B</a></li> 4752 4707 <li>4xx Client Error <a href="#rfc.iref.s.5"><b>6.5</b></a></li> 4753 4708 <li>5xx Server Error <a href="#rfc.iref.s.6"><b>6.6</b></a></li> … … 4758 4713 </li> 4759 4714 <li><a id="rfc.index.T" href="#rfc.index.T"><b>T</b></a><ul> 4760 <li>TRACE method <a href="#rfc.xref.TRACE.1">4.1</a>, <a href="#rfc.iref.t.1"><b>4.3.8</b></a>, <a href="#rfc.xref.TRACE.2">5.1.1</a>, <a href="#rfc.xref.TRACE.3">8.1.3</a>, <a href="#rfc.extref.t.50"> C</a>, <a href="#rfc.xref.TRACE.4">C</a></li>4715 <li>TRACE method <a href="#rfc.xref.TRACE.1">4.1</a>, <a href="#rfc.iref.t.1"><b>4.3.8</b></a>, <a href="#rfc.xref.TRACE.2">5.1.1</a>, <a href="#rfc.xref.TRACE.3">8.1.3</a>, <a href="#rfc.extref.t.50">B</a>, <a href="#rfc.xref.TRACE.4">B</a>, <a href="#rfc.extref.t.51">B</a></li> 4761 4716 </ul> 4762 4717 </li> -
draft-ietf-httpbis/latest/p2-semantics.xml
r2082 r2083 408 408 interoperable among systems with varying native encoding formats. 409 409 Representations selected or transferred via HTTP ought to be in canonical 410 form, for many of the same reasons described by MIME411 <xref target="RFC2049"/>.410 form, for many of the same reasons described by the Multipurpose Internet 411 Mail Extensions (MIME) <xref target="RFC2045"/>. 412 412 However, the performance characteristics of email deployments (i.e., store 413 413 and forward messages to peers) are significantly different from those … … 5277 5277 </reference> 5278 5278 5279 <reference anchor="RFC2076">5280 <front>5281 <title abbrev="Internet Message Headers">Common Internet Message Headers</title>5282 <author initials="J." surname="Palme" fullname="Jacob Palme">5283 <organization>Stockholm University/KTH</organization>5284 <address><email>jpalme@dsv.su.se</email></address>5285 </author>5286 <date month="February" year="1997"/>5287 </front>5288 <seriesInfo name="RFC" value="2076"/>5289 </reference>5290 5291 5279 <reference anchor='RFC2295'> 5292 5280 <front> … … 5510 5498 </reference> 5511 5499 5512 <reference anchor="RFC6151">5513 <front>5514 <title>Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms</title>5515 <author initials="S." surname="Turner" fullname="S. Turner"/>5516 <author initials="L." surname="Chen" fullname="L. Chen"/>5517 <date year="2011" month="March" />5518 </front>5519 <seriesInfo name="RFC" value="6151" />5520 </reference>5521 5522 5500 <reference anchor="RFC6265"> 5523 5501 <front> … … 5567 5545 <section title="Differences between HTTP and MIME" anchor="differences.between.http.and.mime"> 5568 5546 <t> 5569 HTTP/1.1 uses many of the constructs defined for Internet Mail (<xref target="RFC5322"/>) and the Multipurpose Internet Mail Extensions (MIME <xref target="RFC2045"/>) to 5547 HTTP/1.1 uses many of the constructs defined for the 5548 Internet Message Format <xref target="RFC5322"/> and the Multipurpose 5549 Internet Mail Extensions (MIME) <xref target="RFC2045"/> to 5570 5550 allow a message body to be transmitted in an open variety of 5571 representations and with extensible mechanisms. However, RFC 20455572 discusses mail, and HTTP has a few features that are different from5573 th ose described in MIME. These differences were carefully chosen5574 to optimize performance over binary connections, to allow greater5575 freedom in the use of new media types, to make date comparisons5576 easier, and to acknowledge the practice of some early HTTP servers5577 and clients.5551 representations and with extensible header fields. However, RFC 2045 5552 is focused only on email; applications of HTTP have many characteristics 5553 that differ from email, and hence HTTP has features that differ from MIME. 5554 These differences were carefully chosen to optimize performance over binary 5555 connections, to allow greater freedom in the use of new media types, to 5556 make date comparisons easier, and to acknowledge the practice of some early 5557 HTTP servers and clients. 5578 5558 </t> 5579 5559 <t> 5580 5560 This appendix describes specific areas where HTTP differs from MIME. 5581 Proxies and gateways to strict MIME environments &SHOULD;be5561 Proxies and gateways to and from strict MIME environments need to be 5582 5562 aware of these differences and provide the appropriate conversions 5583 where necessary. Proxies and gateways from MIME environments to HTTP 5584 also need to be aware of the differences because some conversions 5585 might be required. 5563 where necessary. 5586 5564 </t> 5587 5565 … … 5590 5568 <x:anchor-alias value="MIME-Version"/> 5591 5569 <t> 5592 HTTP is not a MIME-compliant protocol. However, HTTP/1.1 messages &MAY;5570 HTTP is not a MIME-compliant protocol. However, messages can 5593 5571 include a single MIME-Version header field to indicate what 5594 5572 version of the MIME protocol was used to construct the message. Use 5595 5573 of the MIME-Version header field indicates that the message is in 5596 5574 full conformance with the MIME protocol (as defined in <xref target="RFC2045"/>). 5597 Proxies/gateways are responsible for ensuring full conformance (where5575 Senders are responsible for ensuring full conformance (where 5598 5576 possible) when exporting HTTP messages to strict MIME environments. 5599 5577 </t> 5600 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="MIME-Version"/>5601 <x:ref>MIME-Version</x:ref> = 1*<x:ref>DIGIT</x:ref> "." 1*<x:ref>DIGIT</x:ref>5602 </artwork></figure>5603 <t>5604 MIME version "1.0" is the default for use in HTTP/1.1. However,5605 HTTP/1.1 message parsing and semantics are defined by this document5606 and not the MIME specification.5607 </t>5608 5578 </section> 5609 5579 5610 5580 <section title="Conversion to Canonical Form" anchor="conversion.to.canonical.form"> 5611 5581 <t> 5612 MIME requires that an Internet mail body-part be converted to 5613 canonical form prior to being transferred, as described in <xref target="RFC2049" x:fmt="of" x:sec="4"/>. 5614 <xref target="canonicalization.and.text.defaults"/> of this document describes the forms 5615 allowed for subtypes of the "text" media type when transmitted over 5616 HTTP. <xref target="RFC2046"/> requires that content with a type of "text" represent 5617 line breaks as CRLF and forbids the use of CR or LF outside of line 5618 break sequences. HTTP allows CRLF, bare CR, and bare LF to indicate a 5619 line break within text content when a message is transmitted over 5620 HTTP. 5621 </t> 5622 <t> 5623 Where it is possible, a proxy or gateway from HTTP to a strict MIME 5624 environment &SHOULD; translate all line breaks within the text media 5582 MIME requires that an Internet mail body-part be converted to canonical 5583 form prior to being transferred, as described in <xref target="RFC2049" 5584 x:fmt="of" x:sec="4"/>. <xref target="canonicalization.and.text.defaults"/> 5585 of this document describes the forms allowed for subtypes of the "text" 5586 media type when transmitted over HTTP. <xref target="RFC2046"/> requires 5587 that content with a type of "text" represent line breaks as CRLF and 5588 forbids the use of CR or LF outside of line break sequences. HTTP allows 5589 CRLF, bare CR, and bare LF to indicate a line break within text content. 5590 </t> 5591 <t> 5592 A proxy or gateway from HTTP to a strict MIME 5593 environment ought to translate all line breaks within the text media 5625 5594 types described in <xref target="canonicalization.and.text.defaults"/> 5626 5595 of this document to the RFC 2049 canonical form of CRLF. Note, however, … … 5642 5611 HTTP/1.1 uses a restricted set of date formats (&http-date;) to 5643 5612 simplify the process of date comparison. Proxies and gateways from 5644 other protocols &SHOULD;ensure that any <x:ref>Date</x:ref> header field5613 other protocols ought to ensure that any <x:ref>Date</x:ref> header field 5645 5614 present in a message conforms to one of the HTTP/1.1 formats and rewrite 5646 5615 the date if necessary. … … 5648 5617 </section> 5649 5618 5650 <section title=" Introduction of Content-Encoding" anchor="introduction.of.content-encoding">5619 <section title="Conversion of Content-Encoding" anchor="conversion.content-encoding"> 5651 5620 <t> 5652 5621 MIME does not include any concept equivalent to HTTP/1.1's 5653 5622 <x:ref>Content-Encoding</x:ref> header field. Since this acts as a modifier 5654 5623 on the media type, proxies and gateways from HTTP to MIME-compliant 5655 protocols &MUST;either change the value of the <x:ref>Content-Type</x:ref>5624 protocols ought to either change the value of the <x:ref>Content-Type</x:ref> 5656 5625 header field or decode the representation before forwarding the message. 5657 5626 (Some experimental applications of Content-Type for Internet mail have used … … 5662 5631 </section> 5663 5632 5664 <section title=" No Content-Transfer-Encoding" anchor="no.content-transfer-encoding">5633 <section title="Conversion of Content-Transfer-Encoding" anchor="conversion.content-transfer-encoding"> 5665 5634 <iref item="Content-Transfer-Encoding header field" x:for-anchor=""/> 5666 5635 <t> 5667 5636 HTTP does not use the Content-Transfer-Encoding field of MIME. 5668 Proxies and gateways from MIME-compliant protocols to HTTP &MUST;5669 remove any Content-Transfer-Encoding5670 prior to delivering the response message toan HTTP client.5637 Proxies and gateways from MIME-compliant protocols to HTTP need to remove 5638 any Content-Transfer-Encoding prior to delivering the response message to 5639 an HTTP client. 5671 5640 </t> 5672 5641 <t> … … 5675 5644 and encoding for safe transport on that protocol, where "safe 5676 5645 transport" is defined by the limitations of the protocol being used. 5677 Such a proxy or gateway &SHOULD; label the data with an appropriate5678 Content-Transfer-Encoding if doing so will improve the likelihood of5679 safe transport over the destination protocol.5646 Such a proxy or gateway ought to transform and label the data with an 5647 appropriate Content-Transfer-Encoding if doing so will improve the 5648 likelihood of safe transport over the destination protocol. 5680 5649 </t> 5681 5650 </section> … … 5683 5652 <section title="MHTML and Line Length Limitations" anchor="mhtml.line.length"> 5684 5653 <t> 5685 HTTP implementations that share code with MHTML <xref target="RFC2557"/> implementations 5686 need to be aware of MIME line length limitations. Since HTTP does not 5687 have this limitation, HTTP does not fold long lines. MHTML messages 5688 being transported by HTTP follow all conventions of MHTML, including 5689 line length limitations and folding, canonicalization, etc., since 5690 HTTP transports all message-bodies as payload (see <xref target="multipart.types"/>) and 5691 does not interpret the content or any MIME header lines that might be 5692 contained therein. 5693 </t> 5694 </section> 5695 </section> 5696 5697 <section title="Additional Features" anchor="additional.features"> 5698 <t> 5699 <xref target="RFC1945"/> and <xref target="RFC2068"/> document protocol elements used by some 5700 existing HTTP implementations, but not consistently and correctly 5701 across most HTTP/1.1 applications. Implementers are advised to be 5702 aware of these features, but cannot rely upon their presence in, or 5703 interoperability with, other HTTP/1.1 applications. Some of these 5704 describe proposed experimental features, and some describe features 5705 that experimental deployment found lacking that are now addressed in 5706 the base HTTP/1.1 specification. 5707 </t> 5708 <t> 5709 A number of other header fields, such as Content-Disposition and Title, 5710 from SMTP and MIME are also often implemented (see <xref target="RFC6266"/> 5711 and <xref target="RFC2076"/>). 5712 </t> 5713 </section> 5714 5715 <section title="Changes from RFC 2616" anchor="changes.from.rfc.2616"> 5716 <t> 5717 Request semantics embedded in a URI should be disabled when those 5718 semantics are inconsistent with the request method, since this is a 5719 common cause of interoperability failure. 5720 </t> 5721 <t> 5722 The term "representation" is introduced, replacing both "entity" and 5723 "variant." 5724 (<xref target="representations" />) 5725 </t> 5726 <t> 5727 Rules for identifying the payload of a message have been defined. 5728 (<xref target="identifying.payload" />) 5729 </t> 5730 <t> 5731 "Server-Driven" and "agent-driven" content negotiation are now called 5732 "proactive" and "reactive" content negotiation (respectively). 5733 (<xref target="content.negotiation" />) 5734 </t> 5735 <t> 5736 <x:ref>Content-Location</x:ref> no longer sets a base URI, due to poor 5737 implementation support (which was caused by too many broken servers emitting 5738 bogus Content-Location header fields, and also the potentially undesirable 5739 effect of potentially breaking relative links in content-negotiated 5740 resources). 5741 (<xref target="header.content-location"/>) 5742 </t> 5743 <t> 5744 GET requests can have a body; it just has no meaning. 5745 (<xref target="GET"/>) 5746 </t> 5747 <t> 5748 The definition of POST has been clarified. 5749 (<xref target="POST"/>) 5750 </t> 5751 <t> 5752 Servers are no longer required to handle all Content-* header fields in 5753 requests. 5754 (<xref target="PUT"/>) 5755 </t> 5756 <t> 5757 Use of <x:ref>Content-Range</x:ref> is explicitly banned on PUT requests. 5758 (<xref target="PUT"/>) 5759 </t> 5760 <t> 5761 The CONNECT method is now defined by this specification, taking over from 5762 <xref target="RFC2817"/>. 5763 (<xref target="CONNECT"/>) 5764 </t> 5765 <t> 5766 The requirements upon and semantics of CONNECT request and response bodies 5767 have been clarified. 5768 (<xref target="CONNECT"/>) 5769 </t> 5770 <t> 5771 The <x:ref>OPTIONS</x:ref> and <x:ref>TRACE</x:ref> request methods are 5772 now defined as being safe. 5773 (<xref target="OPTIONS"/> and <xref target="TRACE"/>) 5774 </t> 5775 <t> 5776 The <x:ref>Max-Forwards</x:ref> header field is now restricted to the 5777 OPTIONS and TRACE methods (previously, extension methods could have used it 5778 as well). 5779 (<xref target="header.max-forwards"/>) 5780 </t> 5781 <t> 5782 The ABNF for the "<x:ref>Expect</x:ref>" header field has been both fixed 5783 (allowing parameters for value-less expectations as well) and simplified 5784 (allowing trailing semicolons after "100-continue" when they were invalid 5785 before). 5786 (<xref target="header.expect"/>) 5787 </t> 5788 <t> 5789 Special casing for ISO-8859-1 in <x:ref>Accept-Charset</x:ref> has been 5790 removed. 5791 (<xref target="header.accept-charset"/>) 5792 </t> 5793 <t> 5794 Requirements for sending the Date header field have been clarified. 5795 (<xref target="header.date"/>) 5796 </t> 5797 <t> 5798 The <x:ref>Referer</x:ref> header field can now have a value of 5799 "about:blank" as an alternative to not sending a Referer header field. 5800 (<xref target="header.referer"/>) 5801 </t> 5802 <t> 5803 The <x:ref>201 (Created)</x:ref> status code can indicate that more than 5804 one resource has been created (as well as just one). 5805 </t> 5806 <t> 5807 The definition of <x:ref>203 (Non-Authoritative Information)</x:ref> has 5808 been broadened to include cases of payload transformations as well. 5809 (<xref target="status.203"/>) 5810 </t> 5811 <t> 5812 Redirect status codes <x:ref>301</x:ref>, <x:ref>302</x:ref>, and 5813 <x:ref>307</x:ref> no longer have normative requirements on response 5814 payloads and user interaction. 5815 (<xref target="status.3xx"/>) 5816 </t> 5817 <t> 5818 The request methods that are safe to automatically redirect is no 5819 longer a closed set; user agents are able to make that determination 5820 based upon the request method semantics. 5821 (<xref target="status.3xx"/>) 5822 </t> 5823 <t> 5824 The syntax of the <x:ref>Location</x:ref> header field has been corrected 5825 to allow URI references (including relative references and fragments), along 5826 with some clarifications as to when use of fragments would not be 5827 appropriate. 5828 (<xref target="header.location"/>) 5829 </t> 5830 <t> 5831 The 303 (See Other) status code is now cacheable, if explicit freshness 5832 information is available. 5833 (<xref target="status.303" />) 5834 </t> 5835 <t> 5836 User agents are now allowed to rewrite the method from POST to GET 5837 for status codes <x:ref>301</x:ref> and <x:ref>302</x:ref>. 5838 (Sections <xref format="counter" target="status.301"/>, 5839 <xref format="counter" target="status.302"/> and 5840 <xref format="counter" target="status.307"/>) 5841 </t> 5842 <t> 5843 The <x:ref>305 (Use Proxy)</x:ref> status code is now deprecated, because 5844 user agents did not implement it. It used to indicate that the target 5845 resource needed to be accessed through the proxy given by the 5846 <x:ref>Location</x:ref> field. The recipient was expected to repeat this 5847 single request via the proxy. 5848 (<xref target="status.305"/>) 5849 </t> 5850 <t> 5851 The <x:ref>400 (Bad Request)</x:ref> status code has been made more generic; 5852 it isn't limited to syntax errors. 5853 (<xref target="status.400"/>) 5854 </t> 5855 <t> 5856 The <x:ref>403 (Forbidden)</x:ref> status code has been clarified, 5857 especially with regards to authentication. 5858 (<xref target="status.403"/>) 5859 </t> 5860 <t> 5861 The <x:ref>426 (Upgrade Required)</x:ref> status code has been incorporated 5862 from <xref target="RFC2817"/>. 5863 (<xref target="status.426"/>) 5864 </t> 5865 <t> 5866 <x:ref>Allow</x:ref> has been reclassified as a response header field, 5867 removing the option to specify it in a PUT request. 5868 (<xref target="header.allow"/>) 5869 </t> 5870 <t> 5871 Requirements relating to the content of the Allow header have been relaxed; 5872 correspondingly, clients are not required to always trust its value. 5873 (<xref target="header.allow"/>) 5874 </t> 5875 <t> 5876 The requirement to generate a <x:ref>Via</x:ref> header field has been moved 5877 from the description of the <x:ref>Server</x:ref> header field to 5878 &header-via;. 5879 (<xref target="header.server"/>) 5880 </t> 5881 <t> 5882 The contexts that charset is used in have been clarified. 5883 (<xref target="charset"/>) 5884 </t> 5885 <t> 5886 The default charset of "ISO-8859-1" for text media types has been removed; 5887 the default now is whatever the media type definition says. 5888 (<xref target="canonicalization.and.text.defaults"/>) 5889 </t> 5890 <t> 5891 Registration of Content Codings now requires IETF Review. 5892 (<xref target="content.coding.registry"/>) 5893 </t> 5894 <t> 5895 The Content-MD5 header field has been removed, because it was inconsistently 5896 implemented with respect to partial responses, and also because of known 5897 deficiencies in the hash algorithm itself (see <xref target="RFC6151"/> for 5898 details). 5899 </t> 5900 <t> 5901 This specification introduces a Method Registry. 5902 (<xref target="method.registry"/>) 5903 </t> 5904 <t> 5905 The Status Code Registry is now defined by this specification; previously, 5906 it was defined in <xref target="RFC2817" x:fmt="of" x:sec="7.1"/>. 5907 (<xref target="status.code.registry"/>) 5908 </t> 5909 <t> 5910 References to the "identity" transfer coding token have been removed. 5911 (<xref target="no.content-transfer-encoding"/>) 5912 </t> 5913 <t> 5914 The Content-Disposition header field is now defined by <xref 5915 target="RFC6266"/>. 5916 (<xref target="additional.features"/>) 5654 HTTP implementations that share code with MHTML <xref target="RFC2557"/> 5655 implementations need to be aware of MIME line length limitations. 5656 Since HTTP does not have this limitation, HTTP does not fold long lines. 5657 MHTML messages being transported by HTTP follow all conventions of MHTML, 5658 including line length limitations and folding, canonicalization, etc., 5659 since HTTP transfers message-bodies as payload and, aside from the 5660 "multipart/byteranges" type (&multipart-byteranges;), does not interpret 5661 the content or any MIME header lines that might be contained therein. 5662 </t> 5663 </section> 5664 </section> 5665 5666 <section title="Significant changes from RFC 2616" anchor="changes.from.rfc.2616"> 5667 <t> 5668 The primary changes in this revision have been editorial in nature: 5669 extracting the messaging syntax and partitioning HTTP semantics into 5670 separate documents for the core features, conditional requests, partial 5671 requests, caching, and authentication. The conformance language has been 5672 revised to clearly target requirements and the terminology has been 5673 improved to distinguish payload from representations and representations 5674 from resources. 5675 An algorithm has been added for determining if a payload is associated with 5676 a specific identifier (<xref target="identifying.payload" />). 5677 </t> 5678 <t> 5679 A new requirement has been added that semantics embedded in a URI 5680 should be disabled when those semantics are inconsistent with the request 5681 method, since this is a common cause of interoperability failure. 5682 </t> 5683 <t> 5684 The default charset of ISO-8859-1 for text media types has been removed; 5685 the default is now whatever the media type definition says 5686 (<xref target="canonicalization.and.text.defaults"/>). Likewise, 5687 special treatment of ISO-8859-1 has been removed from the 5688 <x:ref>Accept-Charset</x:ref> header field 5689 (<xref target="header.accept-charset"/>). 5690 </t> 5691 <t> 5692 The Content-Disposition header field has been removed since it is now 5693 defined by <xref target="RFC6266"/>. 5694 </t> 5695 <t> 5696 The definition of <x:ref>Content-Location</x:ref> has been changed to no 5697 longer affect the base URI for resolving relative URI references, due to 5698 poor implementation support and the undesirable effect of potentially 5699 breaking relative links in content-negotiated resources 5700 (<xref target="header.content-location"/>). 5701 </t> 5702 <t> 5703 The Content-MD5 header field has been removed because it was inconsistently 5704 implemented with respect to partial responses. 5705 </t> 5706 <t> 5707 To be consistent with the method-neutral parsing algorithm of 5708 <xref target="Part1"/>, the definition of GET has been relaxed so that 5709 requests can have a body, even though a body has no meaning for GET 5710 (<xref target="GET"/>). 5711 </t> 5712 <t> 5713 Servers are no longer required to handle all Content-* header fields and 5714 use of <x:ref>Content-Range</x:ref> has been explicitly banned in PUT 5715 requests (<xref target="PUT"/>). 5716 </t> 5717 <t> 5718 Definition of the CONNECT method has been moved from 5719 <xref target="RFC2817"/> to this specification (<xref target="CONNECT"/>). 5720 </t> 5721 <t> 5722 The <x:ref>OPTIONS</x:ref> (<xref target="OPTIONS"/>) and 5723 <x:ref>TRACE</x:ref> (<xref target="TRACE"/>) request methods have been 5724 defined as being safe. 5725 </t> 5726 <t> 5727 The definition of <x:ref>Expect</x:ref> has been both fixed to allow 5728 parameters for value-less expectations and simplified to allow trailing 5729 semicolons after "100-continue" (<xref target="header.expect"/>). 5730 </t> 5731 <t> 5732 The <x:ref>Max-Forwards</x:ref> header field 5733 (<xref target="header.max-forwards"/>) has been restricted to the 5734 <x:ref>OPTIONS</x:ref> and <x:ref>TRACE</x:ref> methods; previously, 5735 extension methods could have used it as well. 5736 </t> 5737 <t> 5738 The "about:blank" URI has been suggested as a value for the 5739 <x:ref>Referer</x:ref> header field when no referring URI is applicable, 5740 which distinguishes that case from others where the Referer field is 5741 not sent or has been removed (<xref target="header.referer"/>). 5742 </t> 5743 <t> 5744 The <x:ref>201 (Created)</x:ref> status description has been changed to 5745 allow for the possibility that more than one resource has been created 5746 (<xref target="status.201"/>). 5747 </t> 5748 <t> 5749 The definition of <x:ref>203 (Non-Authoritative Information)</x:ref> has 5750 been broadened to include cases of payload transformations as well 5751 (<xref target="status.203"/>). 5752 </t> 5753 <t> 5754 The redirect status codes <x:ref>301</x:ref>, <x:ref>302</x:ref>, and 5755 <x:ref>307</x:ref> no longer have normative requirements on response 5756 payloads and user interaction (<xref target="status.3xx"/>). 5757 </t> 5758 <t> 5759 The request methods that are safe to automatically redirect is no 5760 longer a closed set; user agents are able to make that determination 5761 based upon the request method semantics (<xref target="status.3xx"/>). 5762 </t> 5763 <t> 5764 The description of 303 (See Other) status code has been changed to allow 5765 it to be cached if explicit freshness information is given, and a specific 5766 definition has been added for a 303 response to GET 5767 (<xref target="status.303"/>). 5768 </t> 5769 <t> 5770 The status codes <x:ref>301</x:ref> and <x:ref>302</x:ref> 5771 (sections <xref format="counter" target="status.301"/> and 5772 <xref format="counter" target="status.302"/>) have been changed to allow 5773 user agents to rewrite the method from POST to GET. 5774 </t> 5775 <t> 5776 The <x:ref>305 (Use Proxy)</x:ref> status code has been deprecated due to 5777 security concerns regarding in-band configuration of a proxy 5778 (<xref target="status.305"/>). 5779 </t> 5780 <t> 5781 The <x:ref>400 (Bad Request)</x:ref> status code has been relaxed so that 5782 it isn't limited to syntax errors (<xref target="status.400"/>). 5783 </t> 5784 <t> 5785 The <x:ref>426 (Upgrade Required)</x:ref> status code has been incorporated 5786 from <xref target="RFC2817"/> (<xref target="status.426"/>). 5787 </t> 5788 <t> 5789 <x:ref>Allow</x:ref> has been reclassified as a response header field, 5790 removing the option to specify it in a PUT request. 5791 Requirements relating to the content of Allow have been relaxed; 5792 correspondingly, clients are not required to always trust its value 5793 (<xref target="header.allow"/>). 5794 </t> 5795 <t> 5796 The target of requirements on HTTP-date and the Date header field have been 5797 reduced to those systems generating the date, rather than all systems 5798 sending a date (<xref target="origination.date"/>). 5799 </t> 5800 <t> 5801 The syntax of the <x:ref>Location</x:ref> header field has been changed 5802 to allow all URI references, including relative references and fragments, 5803 along with some clarifications as to when use of fragments would not be 5804 appropriate (<xref target="header.location"/>). 5805 </t> 5806 <t> 5807 A Method Registry has been defined (<xref target="method.registry"/>). 5808 </t> 5809 <t> 5810 The Status Code Registry (<xref target="status.code.registry"/>) has been 5811 redefined by this specification; previously, it was defined in 5812 <xref target="RFC2817" x:fmt="of" x:sec="7.1"/>. 5813 </t> 5814 <t> 5815 Registration of Content Codings has been changed to require IETF Review 5816 (<xref target="content.coding.registry"/>). 5917 5817 </t> 5918 5818 </section> … … 6001 5901 <x:ref>Location</x:ref> = URI-reference 6002 5902 6003 <x:ref>MIME-Version</x:ref> = 1*DIGIT "." 1*DIGIT6004 5903 <x:ref>Max-Forwards</x:ref> = 1*DIGIT 6005 5904
Note: See TracChangeset
for help on using the changeset viewer.