Changeset 676 for draft-ietf-httpbis/latest
- Timestamp:
- 13/08/09 00:53:02 (13 years ago)
- Location:
- draft-ietf-httpbis/latest
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/p1-messaging.html
r675 r676 373 373 <link rel="Chapter" title="1 Introduction" href="#rfc.section.1"> 374 374 <link rel="Chapter" title="2 HTTP architecture" href="#rfc.section.2"> 375 <link rel="Chapter" title="3 Header Field Definitions" href="#rfc.section.3"> 376 <link rel="Chapter" title="4 IANA Considerations" href="#rfc.section.4"> 377 <link rel="Chapter" title="5 Security Considerations" href="#rfc.section.5"> 378 <link rel="Chapter" title="6 Acknowledgments" href="#rfc.section.6"> 379 <link rel="Chapter" href="#rfc.section.7" title="7 References"> 375 <link rel="Chapter" title="3 HTTP Message" href="#rfc.section.3"> 376 <link rel="Chapter" title="4 Request" href="#rfc.section.4"> 377 <link rel="Chapter" title="5 Response" href="#rfc.section.5"> 378 <link rel="Chapter" title="6 Protocol Parameters" href="#rfc.section.6"> 379 <link rel="Chapter" title="7 Connections" href="#rfc.section.7"> 380 <link rel="Chapter" title="8 Miscellaneous notes that may disappear" href="#rfc.section.8"> 381 <link rel="Chapter" title="9 Header Field Definitions" href="#rfc.section.9"> 382 <link rel="Chapter" title="10 IANA Considerations" href="#rfc.section.10"> 383 <link rel="Chapter" title="11 Security Considerations" href="#rfc.section.11"> 384 <link rel="Chapter" title="12 Acknowledgments" href="#rfc.section.12"> 385 <link rel="Chapter" href="#rfc.section.13" title="13 References"> 380 386 <link rel="Appendix" title="A Tolerant Applications" href="#rfc.section.A"> 381 387 <link rel="Appendix" title="B Compatibility with Previous Versions" href="#rfc.section.B"> … … 547 553 </ul> 548 554 </li> 549 <li class="tocline1">2.7 <a href="#http.message">HTTP Message</a><ul class="toc"> 550 <li class="tocline1">2.7.1 <a href="#message.robustness">Message Parsing Robustness</a></li> 551 <li class="tocline1">2.7.2 <a href="#header.fields">Header Fields</a></li> 552 <li class="tocline1">2.7.3 <a href="#message.body">Message Body</a></li> 553 <li class="tocline1">2.7.4 <a href="#message.length">Message Length</a></li> 554 <li class="tocline1">2.7.5 <a href="#general.header.fields">General Header Fields</a></li> 555 </ul> 556 </li> 557 <li class="tocline0">3. <a href="#http.message">HTTP Message</a><ul class="toc"> 558 <li class="tocline1">3.1 <a href="#message.robustness">Message Parsing Robustness</a></li> 559 <li class="tocline1">3.2 <a href="#header.fields">Header Fields</a></li> 560 <li class="tocline1">3.3 <a href="#message.body">Message Body</a></li> 561 <li class="tocline1">3.4 <a href="#message.length">Message Length</a></li> 562 <li class="tocline1">3.5 <a href="#general.header.fields">General Header Fields</a></li> 563 </ul> 564 </li> 565 <li class="tocline0">4. <a href="#request">Request</a><ul class="toc"> 566 <li class="tocline1">4.1 <a href="#request-line">Request-Line</a><ul class="toc"> 567 <li class="tocline1">4.1.1 <a href="#method">Method</a></li> 568 <li class="tocline1">4.1.2 <a href="#request-target">request-target</a></li> 555 569 </ul> 556 570 </li> 557 <li class="tocline1">2.8 <a href="#request">Request</a><ul class="toc"> 558 <li class="tocline1">2.8.1 <a href="#request-line">Request-Line</a><ul class="toc"> 559 <li class="tocline1">2.8.1.1 <a href="#method">Method</a></li> 560 <li class="tocline1">2.8.1.2 <a href="#request-target">request-target</a></li> 571 <li class="tocline1">4.2 <a href="#the.resource.identified.by.a.request">The Resource Identified by a Request</a></li> 572 </ul> 573 </li> 574 <li class="tocline0">5. <a href="#response">Response</a><ul class="toc"> 575 <li class="tocline1">5.1 <a href="#status-line">Status-Line</a><ul class="toc"> 576 <li class="tocline1">5.1.1 <a href="#status.code.and.reason.phrase">Status Code and Reason Phrase</a></li> 577 </ul> 578 </li> 579 </ul> 580 </li> 581 <li class="tocline0">6. <a href="#protocol.parameters">Protocol Parameters</a><ul class="toc"> 582 <li class="tocline1">6.1 <a href="#date.time.formats.full.date">Date/Time Formats: Full Date</a></li> 583 <li class="tocline1">6.2 <a href="#transfer.codings">Transfer Codings</a><ul class="toc"> 584 <li class="tocline1">6.2.1 <a href="#chunked.encoding">Chunked Transfer Coding</a></li> 585 <li class="tocline1">6.2.2 <a href="#compression.codings">Compression Codings</a><ul class="toc"> 586 <li class="tocline1">6.2.2.1 <a href="#compress.coding">Compress Coding</a></li> 587 <li class="tocline1">6.2.2.2 <a href="#deflate.coding">Deflate Coding</a></li> 588 <li class="tocline1">6.2.2.3 <a href="#gzip.coding">Gzip Coding</a></li> 561 589 </ul> 562 590 </li> 563 <li class="tocline1"> 2.8.2 <a href="#the.resource.identified.by.a.request">The Resource Identified by a Request</a></li>591 <li class="tocline1">6.2.3 <a href="#transfer.coding.registry">Transfer Coding Registry</a></li> 564 592 </ul> 565 593 </li> 566 <li class="tocline1">2.9 <a href="#response">Response</a><ul class="toc"> 567 <li class="tocline1">2.9.1 <a href="#status-line">Status-Line</a><ul class="toc"> 568 <li class="tocline1">2.9.1.1 <a href="#status.code.and.reason.phrase">Status Code and Reason Phrase</a></li> 594 <li class="tocline1">6.3 <a href="#product.tokens">Product Tokens</a></li> 595 <li class="tocline1">6.4 <a href="#quality.values">Quality Values</a></li> 596 </ul> 597 </li> 598 <li class="tocline0">7. <a href="#connections">Connections</a><ul class="toc"> 599 <li class="tocline1">7.1 <a href="#persistent.connections">Persistent Connections</a><ul class="toc"> 600 <li class="tocline1">7.1.1 <a href="#persistent.purpose">Purpose</a></li> 601 <li class="tocline1">7.1.2 <a href="#persistent.overall">Overall Operation</a><ul class="toc"> 602 <li class="tocline1">7.1.2.1 <a href="#persistent.negotiation">Negotiation</a></li> 603 <li class="tocline1">7.1.2.2 <a href="#pipelining">Pipelining</a></li> 569 604 </ul> 570 605 </li> 606 <li class="tocline1">7.1.3 <a href="#persistent.proxy">Proxy Servers</a></li> 607 <li class="tocline1">7.1.4 <a href="#persistent.practical">Practical Considerations</a></li> 571 608 </ul> 572 609 </li> 573 <li class="tocline1">2.10 <a href="#protocol.parameters">Protocol Parameters</a><ul class="toc"> 574 <li class="tocline1">2.10.1 <a href="#date.time.formats.full.date">Date/Time Formats: Full Date</a></li> 575 <li class="tocline1">2.10.2 <a href="#transfer.codings">Transfer Codings</a><ul class="toc"> 576 <li class="tocline1">2.10.2.1 <a href="#chunked.encoding">Chunked Transfer Coding</a></li> 577 <li class="tocline1">2.10.2.2 <a href="#compression.codings">Compression Codings</a><ul class="toc"> 578 <li class="tocline1">2.10.2.2.1 <a href="#compress.coding">Compress Coding</a></li> 579 <li class="tocline1">2.10.2.2.2 <a href="#deflate.coding">Deflate Coding</a></li> 580 <li class="tocline1">2.10.2.2.3 <a href="#gzip.coding">Gzip Coding</a></li> 581 </ul> 582 </li> 583 <li class="tocline1">2.10.2.3 <a href="#transfer.coding.registry">Transfer Coding Registry</a></li> 584 </ul> 585 </li> 586 <li class="tocline1">2.10.3 <a href="#product.tokens">Product Tokens</a></li> 587 <li class="tocline1">2.10.4 <a href="#quality.values">Quality Values</a></li> 610 <li class="tocline1">7.2 <a href="#message.transmission.requirements">Message Transmission Requirements</a><ul class="toc"> 611 <li class="tocline1">7.2.1 <a href="#persistent.flow">Persistent Connections and Flow Control</a></li> 612 <li class="tocline1">7.2.2 <a href="#persistent.monitor">Monitoring Connections for Error Status Messages</a></li> 613 <li class="tocline1">7.2.3 <a href="#use.of.the.100.status">Use of the 100 (Continue) Status</a></li> 614 <li class="tocline1">7.2.4 <a href="#connection.premature">Client Behavior if Server Prematurely Closes Connection</a></li> 588 615 </ul> 589 616 </li> 590 <li class="tocline1">2.11 <a href="#connections">Connections</a><ul class="toc"> 591 <li class="tocline1">2.11.1 <a href="#persistent.connections">Persistent Connections</a><ul class="toc"> 592 <li class="tocline1">2.11.1.1 <a href="#persistent.purpose">Purpose</a></li> 593 <li class="tocline1">2.11.1.2 <a href="#persistent.overall">Overall Operation</a><ul class="toc"> 594 <li class="tocline1">2.11.1.2.1 <a href="#persistent.negotiation">Negotiation</a></li> 595 <li class="tocline1">2.11.1.2.2 <a href="#pipelining">Pipelining</a></li> 596 </ul> 597 </li> 598 <li class="tocline1">2.11.1.3 <a href="#persistent.proxy">Proxy Servers</a></li> 599 <li class="tocline1">2.11.1.4 <a href="#persistent.practical">Practical Considerations</a></li> 600 </ul> 601 </li> 602 <li class="tocline1">2.11.2 <a href="#message.transmission.requirements">Message Transmission Requirements</a><ul class="toc"> 603 <li class="tocline1">2.11.2.1 <a href="#persistent.flow">Persistent Connections and Flow Control</a></li> 604 <li class="tocline1">2.11.2.2 <a href="#persistent.monitor">Monitoring Connections for Error Status Messages</a></li> 605 <li class="tocline1">2.11.2.3 <a href="#use.of.the.100.status">Use of the 100 (Continue) Status</a></li> 606 <li class="tocline1">2.11.2.4 <a href="#connection.premature">Client Behavior if Server Prematurely Closes Connection</a></li> 607 </ul> 608 </li> 617 </ul> 618 </li> 619 <li class="tocline0">8. <a href="#misc">Miscellaneous notes that may disappear</a><ul class="toc"> 620 <li class="tocline1">8.1 <a href="#scheme.aliases">Scheme aliases considered harmful</a></li> 621 <li class="tocline1">8.2 <a href="#http.proxy">Use of HTTP for proxy communication</a></li> 622 <li class="tocline1">8.3 <a href="#http.intercept">Interception of HTTP for access control</a></li> 623 <li class="tocline1">8.4 <a href="#http.others">Use of HTTP by other protocols</a></li> 624 <li class="tocline1">8.5 <a href="#http.media">Use of HTTP by media type specification</a></li> 625 </ul> 626 </li> 627 <li class="tocline0">9. <a href="#header.field.definitions">Header Field Definitions</a><ul class="toc"> 628 <li class="tocline1">9.1 <a href="#header.connection">Connection</a></li> 629 <li class="tocline1">9.2 <a href="#header.content-length">Content-Length</a></li> 630 <li class="tocline1">9.3 <a href="#header.date">Date</a><ul class="toc"> 631 <li class="tocline1">9.3.1 <a href="#clockless.origin.server.operation">Clockless Origin Server Operation</a></li> 609 632 </ul> 610 633 </li> 611 <li class="tocline1">2.12 <a href="#misc">Miscellaneous notes that may disappear</a><ul class="toc"> 612 <li class="tocline1">2.12.1 <a href="#scheme.aliases">Scheme aliases considered harmful</a></li> 634 <li class="tocline1">9.4 <a href="#header.host">Host</a></li> 635 <li class="tocline1">9.5 <a href="#header.te">TE</a></li> 636 <li class="tocline1">9.6 <a href="#header.trailer">Trailer</a></li> 637 <li class="tocline1">9.7 <a href="#header.transfer-encoding">Transfer-Encoding</a></li> 638 <li class="tocline1">9.8 <a href="#header.upgrade">Upgrade</a></li> 639 <li class="tocline1">9.9 <a href="#header.via">Via</a></li> 640 </ul> 641 </li> 642 <li class="tocline0">10. <a href="#IANA.considerations">IANA Considerations</a><ul class="toc"> 643 <li class="tocline1">10.1 <a href="#message.header.registration">Message Header Registration</a></li> 644 <li class="tocline1">10.2 <a href="#uri.scheme.registration">URI Scheme Registration</a></li> 645 <li class="tocline1">10.3 <a href="#internet.media.type.http">Internet Media Type Registrations</a><ul class="toc"> 646 <li class="tocline1">10.3.1 <a href="#internet.media.type.message.http">Internet Media Type message/http</a></li> 647 <li class="tocline1">10.3.2 <a href="#internet.media.type.application.http">Internet Media Type application/http</a></li> 613 648 </ul> 614 649 </li> 615 <li class="tocline1">2.13 <a href="#http.proxy">Use of HTTP for proxy communication</a></li> 616 <li class="tocline1">2.14 <a href="#http.intercept">Interception of HTTP for access control</a></li> 617 <li class="tocline1">2.15 <a href="#http.others">Use of HTTP by other protocols</a></li> 618 <li class="tocline1">2.16 <a href="#http.media">Use of HTTP by media type specification</a></li> 650 <li class="tocline1">10.4 <a href="#transfer.coding.registration">Transfer Coding Registry</a></li> 619 651 </ul> 620 652 </li> 621 <li class="tocline0">3. <a href="#header.field.definitions">Header Field Definitions</a><ul class="toc"> 622 <li class="tocline1">3.1 <a href="#header.connection">Connection</a></li> 623 <li class="tocline1">3.2 <a href="#header.content-length">Content-Length</a></li> 624 <li class="tocline1">3.3 <a href="#header.date">Date</a><ul class="toc"> 625 <li class="tocline1">3.3.1 <a href="#clockless.origin.server.operation">Clockless Origin Server Operation</a></li> 626 </ul> 627 </li> 628 <li class="tocline1">3.4 <a href="#header.host">Host</a></li> 629 <li class="tocline1">3.5 <a href="#header.te">TE</a></li> 630 <li class="tocline1">3.6 <a href="#header.trailer">Trailer</a></li> 631 <li class="tocline1">3.7 <a href="#header.transfer-encoding">Transfer-Encoding</a></li> 632 <li class="tocline1">3.8 <a href="#header.upgrade">Upgrade</a></li> 633 <li class="tocline1">3.9 <a href="#header.via">Via</a></li> 653 <li class="tocline0">11. <a href="#security.considerations">Security Considerations</a><ul class="toc"> 654 <li class="tocline1">11.1 <a href="#personal.information">Personal Information</a></li> 655 <li class="tocline1">11.2 <a href="#abuse.of.server.log.information">Abuse of Server Log Information</a></li> 656 <li class="tocline1">11.3 <a href="#attack.pathname">Attacks Based On File and Path Names</a></li> 657 <li class="tocline1">11.4 <a href="#dns.spoofing">DNS Spoofing</a></li> 658 <li class="tocline1">11.5 <a href="#attack.proxies">Proxies and Caching</a></li> 659 <li class="tocline1">11.6 <a href="#attack.DoS">Denial of Service Attacks on Proxies</a></li> 634 660 </ul> 635 661 </li> 636 <li class="tocline0">4. <a href="#IANA.considerations">IANA Considerations</a><ul class="toc"> 637 <li class="tocline1">4.1 <a href="#message.header.registration">Message Header Registration</a></li> 638 <li class="tocline1">4.2 <a href="#uri.scheme.registration">URI Scheme Registration</a></li> 639 <li class="tocline1">4.3 <a href="#internet.media.type.http">Internet Media Type Registrations</a><ul class="toc"> 640 <li class="tocline1">4.3.1 <a href="#internet.media.type.message.http">Internet Media Type message/http</a></li> 641 <li class="tocline1">4.3.2 <a href="#internet.media.type.application.http">Internet Media Type application/http</a></li> 642 </ul> 643 </li> 644 <li class="tocline1">4.4 <a href="#transfer.coding.registration">Transfer Coding Registry</a></li> 645 </ul> 646 </li> 647 <li class="tocline0">5. <a href="#security.considerations">Security Considerations</a><ul class="toc"> 648 <li class="tocline1">5.1 <a href="#personal.information">Personal Information</a></li> 649 <li class="tocline1">5.2 <a href="#abuse.of.server.log.information">Abuse of Server Log Information</a></li> 650 <li class="tocline1">5.3 <a href="#attack.pathname">Attacks Based On File and Path Names</a></li> 651 <li class="tocline1">5.4 <a href="#dns.spoofing">DNS Spoofing</a></li> 652 <li class="tocline1">5.5 <a href="#attack.proxies">Proxies and Caching</a></li> 653 <li class="tocline1">5.6 <a href="#attack.DoS">Denial of Service Attacks on Proxies</a></li> 654 </ul> 655 </li> 656 <li class="tocline0">6. <a href="#ack">Acknowledgments</a></li> 657 <li class="tocline0">7. <a href="#rfc.references">References</a><ul class="toc"> 658 <li class="tocline1">7.1 <a href="#rfc.references.1">Normative References</a></li> 659 <li class="tocline1">7.2 <a href="#rfc.references.2">Informative References</a></li> 662 <li class="tocline0">12. <a href="#ack">Acknowledgments</a></li> 663 <li class="tocline0">13. <a href="#rfc.references">References</a><ul class="toc"> 664 <li class="tocline1">13.1 <a href="#rfc.references.1">Normative References</a></li> 665 <li class="tocline1">13.2 <a href="#rfc.references.2">Informative References</a></li> 660 666 </ul> 661 667 </li> … … 786 792 ; "bad" whitespace 787 793 <a href="#rule.whitespace" class="smpl">obs-fold</a> = <a href="#core.rules" class="smpl">CRLF</a> 788 ; see <a href="#header.fields" title="Header Fields">Section 2.7.2</a>794 ; see <a href="#header.fields" title="Header Fields">Section 3.2</a> 789 795 </pre><div id="rule.token.separators"> 790 <p id="rfc.section.1.2.2.p.8"> Many HTTP/1.1 header field values consist of words separated by whitespace or special characters. These special characters <em class="bcp14">MUST</em> be in a quoted string to be used within a parameter value (as defined in <a href="#transfer.codings" title="Transfer Codings">Section 2.10.2</a>).796 <p id="rfc.section.1.2.2.p.8"> Many HTTP/1.1 header field values consist of words separated by whitespace or special characters. These special characters <em class="bcp14">MUST</em> be in a quoted string to be used within a parameter value (as defined in <a href="#transfer.codings" title="Transfer Codings">Section 6.2</a>). 791 797 </p> 792 798 </div> … … 849 855 <div id="rfc.iref.r.1"></div> 850 856 <div id="rfc.iref.r.2"></div> 851 <p id="rfc.section.2.1.p.5">A client sends an HTTP request to the server in the form of a request message (<a href="#request" title="Request">Section 2.8</a>), beginning with a method, URI, and protocol version, followed by MIME-like header fields containing request modifiers, client852 information, and payload metadata, an empty line, and finally the payload body (if any). The server response (<a href="#response" title="Response">Section 2.9</a>) begins with a status line, including the protocol version, a success or error code, and textual reason phrase, followed857 <p id="rfc.section.2.1.p.5">A client sends an HTTP request to the server in the form of a request message (<a href="#request" title="Request">Section 4</a>), beginning with a method, URI, and protocol version, followed by MIME-like header fields containing request modifiers, client 858 information, and payload metadata, an empty line, and finally the payload body (if any). The server response (<a href="#response" title="Response">Section 5</a>) begins with a status line, including the protocol version, a success or error code, and textual reason phrase, followed 853 859 by MIME-like header fields containing server information, resource metadata, payload metadata, an empty line, and finally 854 860 the payload body (if any). … … 945 951 </p> 946 952 <p id="rfc.section.2.4.p.3">In HTTP/1.0, most implementations used a new connection for each request/response exchange. In HTTP/1.1, a connection may 947 be used for one or more request/response exchanges, although connections may be closed for a variety of reasons (see <a href="#persistent.connections" title="Persistent Connections">Section 2.11.1</a>).953 be used for one or more request/response exchanges, although connections may be closed for a variety of reasons (see <a href="#persistent.connections" title="Persistent Connections">Section 7.1</a>). 948 954 </p> 949 955 <h2 id="rfc.section.2.5"><a href="#rfc.section.2.5">2.5</a> <a id="http.version" href="#http.version">HTTP Version</a></h2> … … 1024 1030 </p> 1025 1031 <p id="rfc.section.2.6.1.p.5">When an "http" URI is used within a context that calls for access to the indicated resource, a client <em class="bcp14">MAY</em> attempt access by resolving the host to an IP address, establishing a TCP connection to that address on the indicated port, 1026 and sending an HTTP request message to the server containing the URI's identifying data as described in <a href="#request" title="Request">Section 2.8</a>. If the server responds to that request with a non-interim HTTP response message, as described in <a href="#response" title="Response">Section 2.9</a>, then that response is considered an authoritative answer to the client's request.1032 and sending an HTTP request message to the server containing the URI's identifying data as described in <a href="#request" title="Request">Section 4</a>. If the server responds to that request with a non-interim HTTP response message, as described in <a href="#response" title="Response">Section 5</a>, then that response is considered an authoritative answer to the client's request. 1027 1033 </p> 1028 1034 <p id="rfc.section.2.6.1.p.6">Although HTTP is independent of the transport protocol, the "http" scheme is specific to TCP-based services because the name … … 1062 1068 http://EXAMPLE.com:/%7esmith/home.html 1063 1069 </pre><p id="rfc.section.2.6.3.p.5"> <span class="comment" id="rfc.comment.1">[<a href="#rfc.comment.1" class="smpl">rfc.comment.1</a>: [[This paragraph does not belong here. --Roy]]]</span> If path-abempty is the empty string (i.e., there is no slash "/" path separator following the authority), then the "http" 1064 URI <em class="bcp14">MUST</em> be given as "/" when used as a request-target (<a href="#request-target" title="request-target">Section 2.8.1.2</a>). If a proxy receives a host name which is not a fully qualified domain name, it <em class="bcp14">MAY</em> add its domain to the host name it received. If a proxy receives a fully qualified domain name, the proxy <em class="bcp14">MUST NOT</em> change the host name.1065 </p> 1066 <h 2 id="rfc.section.2.7"><a href="#rfc.section.2.7">2.7</a> <a id="http.message" href="#http.message">HTTP Message</a></h2>1070 URI <em class="bcp14">MUST</em> be given as "/" when used as a request-target (<a href="#request-target" title="request-target">Section 4.1.2</a>). If a proxy receives a host name which is not a fully qualified domain name, it <em class="bcp14">MAY</em> add its domain to the host name it received. If a proxy receives a fully qualified domain name, the proxy <em class="bcp14">MUST NOT</em> change the host name. 1071 </p> 1072 <h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a> <a id="http.message" href="#http.message">HTTP Message</a></h1> 1067 1073 <div id="rfc.iref.h.3"></div> 1068 1074 <div id="rfc.iref.h.4"></div> 1069 1075 <div id="rfc.iref.h.5"></div> 1070 <p id="rfc.section. 2.7.p.1">All HTTP/1.1 messages consist of a start-line followed by a sequence of characters in a format similar to the Internet Message1076 <p id="rfc.section.3.p.1">All HTTP/1.1 messages consist of a start-line followed by a sequence of characters in a format similar to the Internet Message 1071 1077 Format <a href="#RFC5322" id="rfc.xref.RFC5322.2"><cite title="Internet Message Format">[RFC5322]</cite></a>: zero or more header fields (collectively referred to as the "headers" or the "header section"), an empty line indicating 1072 1078 the end of the header section, and an optional message-body. 1073 1079 </p> 1074 <p id="rfc.section. 2.7.p.2">An HTTP message can either be a request from client to server or a response from server to client. Syntactically, the two1080 <p id="rfc.section.3.p.2">An HTTP message can either be a request from client to server or a response from server to client. Syntactically, the two 1075 1081 types of message differ only in the start-line, which is either a Request-Line (for requests) or a Status-Line (for responses), 1076 and in the algorithm for determining the length of the message-body (<a href="#message.length" title="Message Length">Section 2.7.4</a>). In theory, a client could receive requests and a server could receive responses, distinguishing them by their different1082 and in the algorithm for determining the length of the message-body (<a href="#message.length" title="Message Length">Section 3.4</a>). In theory, a client could receive requests and a server could receive responses, distinguishing them by their different 1077 1083 start-line formats, but in practice servers are implemented to only expect a request (a response is interpreted as an unknown 1078 1084 or invalid request method) and clients are implemented to only expect a response. … … 1083 1089 [ <a href="#message.body" class="smpl">message-body</a> ] 1084 1090 <a href="#http.message" class="smpl">start-line</a> = <a href="#request-line" class="smpl">Request-Line</a> / <a href="#status-line" class="smpl">Status-Line</a> 1085 </pre><p id="rfc.section. 2.7.p.4">Whitespace (WSP) <em class="bcp14">MUST NOT</em> be sent between the start-line and the first header field. The presence of whitespace might be an attempt to trick a noncompliant1091 </pre><p id="rfc.section.3.p.4">Whitespace (WSP) <em class="bcp14">MUST NOT</em> be sent between the start-line and the first header field. The presence of whitespace might be an attempt to trick a noncompliant 1086 1092 implementation of HTTP into ignoring that field or processing the next line as a new request, either of which may result in 1087 1093 security issues when implementations within the request chain interpret the same message differently. HTTP/1.1 servers <em class="bcp14">MUST</em> reject such a message with a 400 (Bad Request) response. 1088 1094 </p> 1089 <h 3 id="rfc.section.2.7.1"><a href="#rfc.section.2.7.1">2.7.1</a> <a id="message.robustness" href="#message.robustness">Message Parsing Robustness</a></h3>1090 <p id="rfc.section. 2.7.1.p.1">In the interest of robustness, servers <em class="bcp14">SHOULD</em> ignore at least one empty line received where a Request-Line is expected. In other words, if the server is reading the protocol1095 <h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a> <a id="message.robustness" href="#message.robustness">Message Parsing Robustness</a></h2> 1096 <p id="rfc.section.3.1.p.1">In the interest of robustness, servers <em class="bcp14">SHOULD</em> ignore at least one empty line received where a Request-Line is expected. In other words, if the server is reading the protocol 1091 1097 stream at the beginning of a message and receives a CRLF first, it should ignore the CRLF. 1092 1098 </p> 1093 <p id="rfc.section. 2.7.1.p.2">Some old HTTP/1.0 client implementations generate an extra CRLF after a POST request as a lame workaround for some early server1099 <p id="rfc.section.3.1.p.2">Some old HTTP/1.0 client implementations generate an extra CRLF after a POST request as a lame workaround for some early server 1094 1100 applications that failed to read message-body content that was not terminated by a line-ending. An HTTP/1.1 client <em class="bcp14">MUST NOT</em> preface or follow a request with an extra CRLF. If terminating the request message-body with a line-ending is desired, then 1095 1101 the client <em class="bcp14">MUST</em> include the terminating CRLF octets as part of the message-body length. 1096 1102 </p> 1097 <p id="rfc.section. 2.7.1.p.3">The normal procedure for parsing an HTTP message is to read the start-line into a structure, read each header field into a1103 <p id="rfc.section.3.1.p.3">The normal procedure for parsing an HTTP message is to read the start-line into a structure, read each header field into a 1098 1104 hash table by field name until the empty line, and then use the parsed data to determine if a message-body is expected. If 1099 1105 a message-body has been indicated, then it is read as a stream until an amount of OCTETs equal to the message-length is read … … 1102 1108 security flaws due to the differing ways that such parsers interpret invalid characters. 1103 1109 </p> 1104 <h 3 id="rfc.section.2.7.2"><a href="#rfc.section.2.7.2">2.7.2</a> <a id="header.fields" href="#header.fields">Header Fields</a></h3>1105 <p id="rfc.section. 2.7.2.p.1">Each HTTP header field consists of a case-insensitive field name followed by a colon (":"), optional whitespace, and the field1110 <h2 id="rfc.section.3.2"><a href="#rfc.section.3.2">3.2</a> <a id="header.fields" href="#header.fields">Header Fields</a></h2> 1111 <p id="rfc.section.3.2.p.1">Each HTTP header field consists of a case-insensitive field name followed by a colon (":"), optional whitespace, and the field 1106 1112 value. 1107 1113 </p> … … 1110 1116 <a href="#header.fields" class="smpl">field-value</a> = *( <a href="#header.fields" class="smpl">field-content</a> / <a href="#rule.whitespace" class="smpl">OWS</a> ) 1111 1117 <a href="#header.fields" class="smpl">field-content</a> = *( <a href="#core.rules" class="smpl">WSP</a> / <a href="#core.rules" class="smpl">VCHAR</a> / <a href="#rule.quoted-string" class="smpl">obs-text</a> ) 1112 </pre><p id="rfc.section. 2.7.2.p.3">No whitespace is allowed between the header field name and colon. For security reasons, any request message received containing1118 </pre><p id="rfc.section.3.2.p.3">No whitespace is allowed between the header field name and colon. For security reasons, any request message received containing 1113 1119 such whitespace <em class="bcp14">MUST</em> be rejected with a response code of 400 (Bad Request). A proxy <em class="bcp14">MUST</em> remove any such whitespace from a response message before forwarding the message downstream. 1114 1120 </p> 1115 <p id="rfc.section. 2.7.2.p.4">A field value <em class="bcp14">MAY</em> be preceded by optional whitespace (OWS); a single SP is preferred. The field value does not include any leading or trailing1121 <p id="rfc.section.3.2.p.4">A field value <em class="bcp14">MAY</em> be preceded by optional whitespace (OWS); a single SP is preferred. The field value does not include any leading or trailing 1116 1122 white space: OWS occurring before the first non-whitespace character of the field value or after the last non-whitespace character 1117 1123 of the field value is ignored and <em class="bcp14">SHOULD</em> be removed without changing the meaning of the header field. 1118 1124 </p> 1119 <p id="rfc.section. 2.7.2.p.5">The order in which header fields with differing field names are received is not significant. However, it is "good practice"1125 <p id="rfc.section.3.2.p.5">The order in which header fields with differing field names are received is not significant. However, it is "good practice" 1120 1126 to send header fields that contain control data first, such as Host on requests and Date on responses, so that implementations 1121 1127 can decide when not to handle a message as early as possible. A server <em class="bcp14">MUST</em> wait until the entire header section is received before interpreting a request message, since later header fields might include 1122 1128 conditionals, authentication credentials, or deliberately misleading duplicate header fields that would impact request processing. 1123 1129 </p> 1124 <p id="rfc.section. 2.7.2.p.6">Multiple header fields with the same field name <em class="bcp14">MUST NOT</em> be sent in a message unless the entire field value for that header field is defined as a comma-separated list [i.e., #(values)].1130 <p id="rfc.section.3.2.p.6">Multiple header fields with the same field name <em class="bcp14">MUST NOT</em> be sent in a message unless the entire field value for that header field is defined as a comma-separated list [i.e., #(values)]. 1125 1131 Multiple header fields with the same field name can be combined into one "field-name: field-value" pair, without changing 1126 1132 the semantics of the message, by appending each subsequent field value to the combined field value in order, separated by … … 1133 1139 </p> 1134 1140 </div> 1135 <p id="rfc.section. 2.7.2.p.8">Historically, HTTP header field values could be extended over multiple lines by preceding each extra line with at least one1141 <p id="rfc.section.3.2.p.8">Historically, HTTP header field values could be extended over multiple lines by preceding each extra line with at least one 1136 1142 space or horizontal tab character (line folding). This specification deprecates such line folding except within the message/http 1137 media type (<a href="#internet.media.type.message.http" title="Internet Media Type message/http">Section 4.3.1</a>). HTTP/1.1 senders <em class="bcp14">MUST NOT</em> produce messages that include line folding (i.e., that contain any field-content that matches the obs-fold rule) unless the1143 media type (<a href="#internet.media.type.message.http" title="Internet Media Type message/http">Section 10.3.1</a>). HTTP/1.1 senders <em class="bcp14">MUST NOT</em> produce messages that include line folding (i.e., that contain any field-content that matches the obs-fold rule) unless the 1138 1144 message is intended for packaging within the message/http media type. HTTP/1.1 recipients <em class="bcp14">SHOULD</em> accept line folding and replace any embedded obs-fold whitespace with a single SP prior to interpreting the field value or 1139 1145 forwarding the message downstream. 1140 1146 </p> 1141 <p id="rfc.section. 2.7.2.p.9">Historically, HTTP has allowed field content with text in the ISO-8859-1 <a href="#ISO-8859-1" id="rfc.xref.ISO-8859-1.1"><cite title="Information technology -- 8-bit single-byte coded graphic character sets -- Part 1: Latin alphabet No. 1">[ISO-8859-1]</cite></a> character encoding and supported other character sets only through use of <a href="#RFC2047" id="rfc.xref.RFC2047.1"><cite title="MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text">[RFC2047]</cite></a> encoding. In practice, most HTTP header field values use only a subset of the US-ASCII character encoding <a href="#USASCII" id="rfc.xref.USASCII.2"><cite title="Coded Character Set -- 7-bit American Standard Code for Information Interchange">[USASCII]</cite></a>. Newly defined header fields <em class="bcp14">SHOULD</em> limit their field values to US-ASCII characters. Recipients <em class="bcp14">SHOULD</em> treat other (obs-text) octets in field content as opaque data.1147 <p id="rfc.section.3.2.p.9">Historically, HTTP has allowed field content with text in the ISO-8859-1 <a href="#ISO-8859-1" id="rfc.xref.ISO-8859-1.1"><cite title="Information technology -- 8-bit single-byte coded graphic character sets -- Part 1: Latin alphabet No. 1">[ISO-8859-1]</cite></a> character encoding and supported other character sets only through use of <a href="#RFC2047" id="rfc.xref.RFC2047.1"><cite title="MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text">[RFC2047]</cite></a> encoding. In practice, most HTTP header field values use only a subset of the US-ASCII character encoding <a href="#USASCII" id="rfc.xref.USASCII.2"><cite title="Coded Character Set -- 7-bit American Standard Code for Information Interchange">[USASCII]</cite></a>. Newly defined header fields <em class="bcp14">SHOULD</em> limit their field values to US-ASCII characters. Recipients <em class="bcp14">SHOULD</em> treat other (obs-text) octets in field content as opaque data. 1142 1148 </p> 1143 1149 <div id="rule.comment"> 1144 <p id="rfc.section. 2.7.2.p.10"> Comments can be included in some HTTP header fields by surrounding the comment text with parentheses. Comments are only allowed1150 <p id="rfc.section.3.2.p.10"> Comments can be included in some HTTP header fields by surrounding the comment text with parentheses. Comments are only allowed 1145 1151 in fields containing "comment" as part of their field value definition. 1146 1152 </p> … … 1149 1155 <a href="#rule.comment" class="smpl">ctext</a> = <a href="#rule.whitespace" class="smpl">OWS</a> / %x21-27 / %x2A-5B / %x5D-7E / <a href="#rule.quoted-string" class="smpl">obs-text</a> 1150 1156 ; <a href="#rule.whitespace" class="smpl">OWS</a> / <<a href="#core.rules" class="smpl">VCHAR</a> except "(", ")", and "\"> / <a href="#rule.quoted-string" class="smpl">obs-text</a> 1151 </pre><h 3 id="rfc.section.2.7.3"><a href="#rfc.section.2.7.3">2.7.3</a> <a id="message.body" href="#message.body">Message Body</a></h3>1152 <p id="rfc.section. 2.7.3.p.1">The message-body (if any) of an HTTP message is used to carry the entity-body associated with the request or response. The1157 </pre><h2 id="rfc.section.3.3"><a href="#rfc.section.3.3">3.3</a> <a id="message.body" href="#message.body">Message Body</a></h2> 1158 <p id="rfc.section.3.3.p.1">The message-body (if any) of an HTTP message is used to carry the entity-body associated with the request or response. The 1153 1159 message-body differs from the entity-body only when a transfer-coding has been applied, as indicated by the Transfer-Encoding 1154 header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.1" title="Transfer-Encoding">Section 3.7</a>).1160 header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.1" title="Transfer-Encoding">Section 9.7</a>). 1155 1161 </p> 1156 1162 <div id="rfc.figure.u.25"></div><pre class="inline"><span id="rfc.iref.g.42"></span> <a href="#message.body" class="smpl">message-body</a> = <a href="#abnf.dependencies" class="smpl">entity-body</a> 1157 1163 / <entity-body encoded as per <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a>> 1158 </pre><p id="rfc.section. 2.7.3.p.3">Transfer-Encoding <em class="bcp14">MUST</em> be used to indicate any transfer-codings applied by an application to ensure safe and proper transfer of the message. Transfer-Encoding1159 is a property of the message, not of the entity, and thus <em class="bcp14">MAY</em> be added or removed by any application along the request/response chain. (However, <a href="#transfer.codings" title="Transfer Codings">Section 2.10.2</a> places restrictions on when certain transfer-codings may be used.)1160 </p> 1161 <p id="rfc.section. 2.7.3.p.4">The rules for when a message-body is allowed in a message differ for requests and responses.</p>1162 <p id="rfc.section. 2.7.3.p.5">The presence of a message-body in a request is signaled by the inclusion of a Content-Length or Transfer-Encoding header field1164 </pre><p id="rfc.section.3.3.p.3">Transfer-Encoding <em class="bcp14">MUST</em> be used to indicate any transfer-codings applied by an application to ensure safe and proper transfer of the message. Transfer-Encoding 1165 is a property of the message, not of the entity, and thus <em class="bcp14">MAY</em> be added or removed by any application along the request/response chain. (However, <a href="#transfer.codings" title="Transfer Codings">Section 6.2</a> places restrictions on when certain transfer-codings may be used.) 1166 </p> 1167 <p id="rfc.section.3.3.p.4">The rules for when a message-body is allowed in a message differ for requests and responses.</p> 1168 <p id="rfc.section.3.3.p.5">The presence of a message-body in a request is signaled by the inclusion of a Content-Length or Transfer-Encoding header field 1163 1169 in the request's header fields. When a request message contains both a message-body of non-zero length and a method that does 1164 1170 not define any semantics for that request message-body, then an origin server <em class="bcp14">SHOULD</em> either ignore the message-body or respond with an appropriate error message (e.g., 413). A proxy or gateway, when presented 1165 1171 the same request, <em class="bcp14">SHOULD</em> either forward the request inbound with the message-body or ignore the message-body when determining a response. 1166 1172 </p> 1167 <p id="rfc.section. 2.7.3.p.6">For response messages, whether or not a message-body is included with a message is dependent on both the request method and1168 the response status code (<a href="#status.code.and.reason.phrase" title="Status Code and Reason Phrase">Section 2.9.1.1</a>). All responses to the HEAD request method <em class="bcp14">MUST NOT</em> include a message-body, even though the presence of entity-header fields might lead one to believe they do. All 1xx (informational),1173 <p id="rfc.section.3.3.p.6">For response messages, whether or not a message-body is included with a message is dependent on both the request method and 1174 the response status code (<a href="#status.code.and.reason.phrase" title="Status Code and Reason Phrase">Section 5.1.1</a>). All responses to the HEAD request method <em class="bcp14">MUST NOT</em> include a message-body, even though the presence of entity-header fields might lead one to believe they do. All 1xx (informational), 1169 1175 204 (No Content), and 304 (Not Modified) responses <em class="bcp14">MUST NOT</em> include a message-body. All other responses do include a message-body, although it <em class="bcp14">MAY</em> be of zero length. 1170 1176 </p> 1171 <h 3 id="rfc.section.2.7.4"><a href="#rfc.section.2.7.4">2.7.4</a> <a id="message.length" href="#message.length">Message Length</a></h3>1172 <p id="rfc.section. 2.7.4.p.1">The transfer-length of a message is the length of the message-body as it appears in the message; that is, after any transfer-codings1177 <h2 id="rfc.section.3.4"><a href="#rfc.section.3.4">3.4</a> <a id="message.length" href="#message.length">Message Length</a></h2> 1178 <p id="rfc.section.3.4.p.1">The transfer-length of a message is the length of the message-body as it appears in the message; that is, after any transfer-codings 1173 1179 have been applied. When a message-body is included with a message, the transfer-length of that body is determined by one of 1174 1180 the following (in order of precedence): 1175 1181 </p> 1176 <p id="rfc.section. 2.7.4.p.2"> </p>1182 <p id="rfc.section.3.4.p.2"> </p> 1177 1183 <ol> 1178 1184 <li> … … 1182 1188 </li> 1183 1189 <li> 1184 <p>If a Transfer-Encoding header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.2" title="Transfer-Encoding">Section 3.7</a>) is present and the "chunked" transfer-coding (<a href="#transfer.codings" title="Transfer Codings">Section 2.10.2</a>) is used, the transfer-length is defined by the use of this transfer-coding. If a Transfer-Encoding header field is present1190 <p>If a Transfer-Encoding header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.2" title="Transfer-Encoding">Section 9.7</a>) is present and the "chunked" transfer-coding (<a href="#transfer.codings" title="Transfer Codings">Section 6.2</a>) is used, the transfer-length is defined by the use of this transfer-coding. If a Transfer-Encoding header field is present 1185 1191 and the "chunked" transfer-coding is not present, the transfer-length is defined by the sender closing the connection. 1186 1192 </p> 1187 1193 </li> 1188 1194 <li> 1189 <p>If a Content-Length header field (<a href="#header.content-length" id="rfc.xref.header.content-length.1" title="Content-Length">Section 3.2</a>) is present, its value in OCTETs represents both the entity-length and the transfer-length. The Content-Length header field <em class="bcp14">MUST NOT</em> be sent if these two lengths are different (i.e., if a Transfer-Encoding header field is present). If a message is received1195 <p>If a Content-Length header field (<a href="#header.content-length" id="rfc.xref.header.content-length.1" title="Content-Length">Section 9.2</a>) is present, its value in OCTETs represents both the entity-length and the transfer-length. The Content-Length header field <em class="bcp14">MUST NOT</em> be sent if these two lengths are different (i.e., if a Transfer-Encoding header field is present). If a message is received 1190 1196 with both a Transfer-Encoding header field and a Content-Length header field, the latter <em class="bcp14">MUST</em> be ignored. 1191 1197 </p> … … 1207 1213 </li> 1208 1214 </ol> 1209 <p id="rfc.section. 2.7.4.p.3">For compatibility with HTTP/1.0 applications, HTTP/1.1 requests containing a message-body <em class="bcp14">MUST</em> include a valid Content-Length header field unless the server is known to be HTTP/1.1 compliant. If a request contains a message-body1215 <p id="rfc.section.3.4.p.3">For compatibility with HTTP/1.0 applications, HTTP/1.1 requests containing a message-body <em class="bcp14">MUST</em> include a valid Content-Length header field unless the server is known to be HTTP/1.1 compliant. If a request contains a message-body 1210 1216 and a Content-Length is not given, the server <em class="bcp14">SHOULD</em> respond with 400 (Bad Request) if it cannot determine the length of the message, or with 411 (Length Required) if it wishes 1211 1217 to insist on receiving a valid Content-Length. 1212 1218 </p> 1213 <p id="rfc.section. 2.7.4.p.4">All HTTP/1.1 applications that receive entities <em class="bcp14">MUST</em> accept the "chunked" transfer-coding (<a href="#transfer.codings" title="Transfer Codings">Section 2.10.2</a>), thus allowing this mechanism to be used for messages when the message length cannot be determined in advance.1214 </p> 1215 <p id="rfc.section. 2.7.4.p.5">Messages <em class="bcp14">MUST NOT</em> include both a Content-Length header field and a transfer-coding. If the message does include a transfer-coding, the Content-Length <em class="bcp14">MUST</em> be ignored.1216 </p> 1217 <p id="rfc.section. 2.7.4.p.6">When a Content-Length is given in a message where a message-body is allowed, its field value <em class="bcp14">MUST</em> exactly match the number of OCTETs in the message-body. HTTP/1.1 user agents <em class="bcp14">MUST</em> notify the user when an invalid length is received and detected.1218 </p> 1219 <h 3 id="rfc.section.2.7.5"><a href="#rfc.section.2.7.5">2.7.5</a> <a id="general.header.fields" href="#general.header.fields">General Header Fields</a></h3>1220 <p id="rfc.section. 2.7.5.p.1">There are a few header fields which have general applicability for both request and response messages, but which do not apply1219 <p id="rfc.section.3.4.p.4">All HTTP/1.1 applications that receive entities <em class="bcp14">MUST</em> accept the "chunked" transfer-coding (<a href="#transfer.codings" title="Transfer Codings">Section 6.2</a>), thus allowing this mechanism to be used for messages when the message length cannot be determined in advance. 1220 </p> 1221 <p id="rfc.section.3.4.p.5">Messages <em class="bcp14">MUST NOT</em> include both a Content-Length header field and a transfer-coding. If the message does include a transfer-coding, the Content-Length <em class="bcp14">MUST</em> be ignored. 1222 </p> 1223 <p id="rfc.section.3.4.p.6">When a Content-Length is given in a message where a message-body is allowed, its field value <em class="bcp14">MUST</em> exactly match the number of OCTETs in the message-body. HTTP/1.1 user agents <em class="bcp14">MUST</em> notify the user when an invalid length is received and detected. 1224 </p> 1225 <h2 id="rfc.section.3.5"><a href="#rfc.section.3.5">3.5</a> <a id="general.header.fields" href="#general.header.fields">General Header Fields</a></h2> 1226 <p id="rfc.section.3.5.p.1">There are a few header fields which have general applicability for both request and response messages, but which do not apply 1221 1227 to the entity being transferred. These header fields apply only to the message being transmitted. 1222 1228 </p> 1223 1229 <div id="rfc.figure.u.26"></div><pre class="inline"><span id="rfc.iref.g.43"></span> <a href="#general.header.fields" class="smpl">general-header</a> = <a href="#abnf.dependencies" class="smpl">Cache-Control</a> ; <a href="#Part6" id="rfc.xref.Part6.5"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.cache-control" title="Cache-Control">Section 3.2</a> 1224 / <a href="#header.connection" class="smpl">Connection</a> ; <a href="#header.connection" id="rfc.xref.header.connection.1" title="Connection">Section 3.1</a>1225 / <a href="#header.date" class="smpl">Date</a> ; <a href="#header.date" id="rfc.xref.header.date.1" title="Date">Section 3.3</a>1230 / <a href="#header.connection" class="smpl">Connection</a> ; <a href="#header.connection" id="rfc.xref.header.connection.1" title="Connection">Section 9.1</a> 1231 / <a href="#header.date" class="smpl">Date</a> ; <a href="#header.date" id="rfc.xref.header.date.1" title="Date">Section 9.3</a> 1226 1232 / <a href="#abnf.dependencies" class="smpl">Pragma</a> ; <a href="#Part6" id="rfc.xref.Part6.6"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.pragma" title="Pragma">Section 3.4</a> 1227 / <a href="#header.trailer" class="smpl">Trailer</a> ; <a href="#header.trailer" id="rfc.xref.header.trailer.1" title="Trailer">Section 3.6</a>1228 / <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a> ; <a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.3" title="Transfer-Encoding">Section 3.7</a>1229 / <a href="#header.upgrade" class="smpl">Upgrade</a> ; <a href="#header.upgrade" id="rfc.xref.header.upgrade.1" title="Upgrade">Section 3.8</a>1230 / <a href="#header.via" class="smpl">Via</a> ; <a href="#header.via" id="rfc.xref.header.via.1" title="Via">Section 3.9</a>1233 / <a href="#header.trailer" class="smpl">Trailer</a> ; <a href="#header.trailer" id="rfc.xref.header.trailer.1" title="Trailer">Section 9.6</a> 1234 / <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding</a> ; <a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.3" title="Transfer-Encoding">Section 9.7</a> 1235 / <a href="#header.upgrade" class="smpl">Upgrade</a> ; <a href="#header.upgrade" id="rfc.xref.header.upgrade.1" title="Upgrade">Section 9.8</a> 1236 / <a href="#header.via" class="smpl">Via</a> ; <a href="#header.via" id="rfc.xref.header.via.1" title="Via">Section 9.9</a> 1231 1237 / <a href="#abnf.dependencies" class="smpl">Warning</a> ; <a href="#Part6" id="rfc.xref.Part6.7"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>, <a href="p6-cache.html#header.warning" title="Warning">Section 3.6</a> 1232 </pre><p id="rfc.section. 2.7.5.p.3">General-header field names can be extended reliably only in combination with a change in the protocol version. However, new1238 </pre><p id="rfc.section.3.5.p.3">General-header field names can be extended reliably only in combination with a change in the protocol version. However, new 1233 1239 or experimental header fields may be given the semantics of general header fields if all parties in the communication recognize 1234 1240 them to be general-header fields. Unrecognized header fields are treated as entity-header fields. 1235 1241 </p> 1236 <h 2 id="rfc.section.2.8"><a href="#rfc.section.2.8">2.8</a> <a id="request" href="#request">Request</a></h2>1237 <p id="rfc.section. 2.8.p.1">A request message from a client to a server includes, within the first line of that message, the method to be applied to the1242 <h1 id="rfc.section.4"><a href="#rfc.section.4">4.</a> <a id="request" href="#request">Request</a></h1> 1243 <p id="rfc.section.4.p.1">A request message from a client to a server includes, within the first line of that message, the method to be applied to the 1238 1244 resource, the identifier of the resource, and the protocol version in use. 1239 1245 </p> 1240 <div id="rfc.figure.u.27"></div><pre class="inline"><span id="rfc.iref.g.44"></span> <a href="#request" class="smpl">Request</a> = <a href="#request-line" class="smpl">Request-Line</a> ; <a href="#request-line" title="Request-Line">Section 2.8.1</a>1241 *(( <a href="#general.header.fields" class="smpl">general-header</a> ; <a href="#general.header.fields" title="General Header Fields">Section 2.7.5</a>1246 <div id="rfc.figure.u.27"></div><pre class="inline"><span id="rfc.iref.g.44"></span> <a href="#request" class="smpl">Request</a> = <a href="#request-line" class="smpl">Request-Line</a> ; <a href="#request-line" title="Request-Line">Section 4.1</a> 1247 *(( <a href="#general.header.fields" class="smpl">general-header</a> ; <a href="#general.header.fields" title="General Header Fields">Section 3.5</a> 1242 1248 / <a href="#abnf.dependencies" class="smpl">request-header</a> ; <a href="#Part2" id="rfc.xref.Part2.3"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#request.header.fields" title="Request Header Fields">Section 3</a> 1243 1249 / <a href="#abnf.dependencies" class="smpl">entity-header</a> ) <a href="#core.rules" class="smpl">CRLF</a> ) ; <a href="#Part3" id="rfc.xref.Part3.5"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 3.1</a> 1244 1250 <a href="#core.rules" class="smpl">CRLF</a> 1245 [ <a href="#message.body" class="smpl">message-body</a> ] ; <a href="#message.body" title="Message Body">Section 2.7.3</a>1246 </pre><h 3 id="rfc.section.2.8.1"><a href="#rfc.section.2.8.1">2.8.1</a> <a id="request-line" href="#request-line">Request-Line</a></h3>1247 <p id="rfc.section. 2.8.1.p.1">The Request-Line begins with a method token, followed by the request-target and the protocol version, and ending with CRLF.1251 [ <a href="#message.body" class="smpl">message-body</a> ] ; <a href="#message.body" title="Message Body">Section 3.3</a> 1252 </pre><h2 id="rfc.section.4.1"><a href="#rfc.section.4.1">4.1</a> <a id="request-line" href="#request-line">Request-Line</a></h2> 1253 <p id="rfc.section.4.1.p.1">The Request-Line begins with a method token, followed by the request-target and the protocol version, and ending with CRLF. 1248 1254 The elements are separated by SP characters. No CR or LF is allowed except in the final CRLF sequence. 1249 1255 </p> 1250 1256 <div id="rfc.figure.u.28"></div><pre class="inline"><span id="rfc.iref.g.45"></span> <a href="#request-line" class="smpl">Request-Line</a> = <a href="#method" class="smpl">Method</a> <a href="#core.rules" class="smpl">SP</a> <a href="#request-target" class="smpl">request-target</a> <a href="#core.rules" class="smpl">SP</a> <a href="#http.version" class="smpl">HTTP-Version</a> <a href="#core.rules" class="smpl">CRLF</a> 1251 </pre><h 4 id="rfc.section.2.8.1.1"><a href="#rfc.section.2.8.1.1">2.8.1.1</a> <a id="method" href="#method">Method</a></h4>1252 <p id="rfc.section. 2.8.1.1.p.1">The Method token indicates the method to be performed on the resource identified by the request-target. The method is case-sensitive.</p>1257 </pre><h3 id="rfc.section.4.1.1"><a href="#rfc.section.4.1.1">4.1.1</a> <a id="method" href="#method">Method</a></h3> 1258 <p id="rfc.section.4.1.1.p.1">The Method token indicates the method to be performed on the resource identified by the request-target. The method is case-sensitive.</p> 1253 1259 <div id="rfc.figure.u.29"></div><pre class="inline"><span id="rfc.iref.g.46"></span><span id="rfc.iref.g.47"></span> <a href="#method" class="smpl">Method</a> = <a href="#rule.token.separators" class="smpl">token</a> 1254 </pre><h 4 id="rfc.section.2.8.1.2"><a href="#rfc.section.2.8.1.2">2.8.1.2</a> <a id="request-target" href="#request-target">request-target</a></h4>1255 <p id="rfc.section. 2.8.1.2.p.1">The request-target identifies the resource upon which to apply the request.</p>1260 </pre><h3 id="rfc.section.4.1.2"><a href="#rfc.section.4.1.2">4.1.2</a> <a id="request-target" href="#request-target">request-target</a></h3> 1261 <p id="rfc.section.4.1.2.p.1">The request-target identifies the resource upon which to apply the request.</p> 1256 1262 <div id="rfc.figure.u.30"></div><pre class="inline"><span id="rfc.iref.g.48"></span> <a href="#request-target" class="smpl">request-target</a> = "*" 1257 1263 / <a href="#uri" class="smpl">absolute-URI</a> 1258 1264 / ( <a href="#uri" class="smpl">path-absolute</a> [ "?" <a href="#uri" class="smpl">query</a> ] ) 1259 1265 / <a href="#uri" class="smpl">authority</a> 1260 </pre><p id="rfc.section. 2.8.1.2.p.3">The four options for request-target are dependent on the nature of the request. The asterisk "*" means that the request does1266 </pre><p id="rfc.section.4.1.2.p.3">The four options for request-target are dependent on the nature of the request. The asterisk "*" means that the request does 1261 1267 not apply to a particular resource, but to the server itself, and is only allowed when the method used does not necessarily 1262 1268 apply to a resource. One example would be 1263 1269 </p> 1264 1270 <div id="rfc.figure.u.31"></div><pre class="text"> OPTIONS * HTTP/1.1 1265 </pre><p id="rfc.section. 2.8.1.2.p.5">The absolute-URI form is <em class="bcp14">REQUIRED</em> when the request is being made to a proxy. The proxy is requested to forward the request or service it from a valid cache,1271 </pre><p id="rfc.section.4.1.2.p.5">The absolute-URI form is <em class="bcp14">REQUIRED</em> when the request is being made to a proxy. The proxy is requested to forward the request or service it from a valid cache, 1266 1272 and return the response. Note that the proxy <em class="bcp14">MAY</em> forward the request on to another proxy or directly to the server specified by the absolute-URI. In order to avoid request 1267 1273 loops, a proxy <em class="bcp14">MUST</em> be able to recognize all of its server names, including any aliases, local variations, and the numeric IP address. An example … … 1269 1275 </p> 1270 1276 <div id="rfc.figure.u.32"></div><pre class="text"> GET http://www.example.org/pub/WWW/TheProject.html HTTP/1.1 1271 </pre><p id="rfc.section. 2.8.1.2.p.7">To allow for transition to absolute-URIs in all requests in future versions of HTTP, all HTTP/1.1 servers <em class="bcp14">MUST</em> accept the absolute-URI form in requests, even though HTTP/1.1 clients will only generate them in requests to proxies.1272 </p> 1273 <p id="rfc.section. 2.8.1.2.p.8">The authority form is only used by the CONNECT method (<a href="p2-semantics.html#CONNECT" title="CONNECT">Section 7.9</a> of <a href="#Part2" id="rfc.xref.Part2.4"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>).1274 </p> 1275 <p id="rfc.section. 2.8.1.2.p.9">The most common form of request-target is that used to identify a resource on an origin server or gateway. In this case the1277 </pre><p id="rfc.section.4.1.2.p.7">To allow for transition to absolute-URIs in all requests in future versions of HTTP, all HTTP/1.1 servers <em class="bcp14">MUST</em> accept the absolute-URI form in requests, even though HTTP/1.1 clients will only generate them in requests to proxies. 1278 </p> 1279 <p id="rfc.section.4.1.2.p.8">The authority form is only used by the CONNECT method (<a href="p2-semantics.html#CONNECT" title="CONNECT">Section 7.9</a> of <a href="#Part2" id="rfc.xref.Part2.4"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>). 1280 </p> 1281 <p id="rfc.section.4.1.2.p.9">The most common form of request-target is that used to identify a resource on an origin server or gateway. In this case the 1276 1282 absolute path of the URI <em class="bcp14">MUST</em> be transmitted (see <a href="#http.uri" title="http URI scheme">Section 2.6.1</a>, path-absolute) as the request-target, and the network location of the URI (authority) <em class="bcp14">MUST</em> be transmitted in a Host header field. For example, a client wishing to retrieve the resource above directly from the origin 1277 1283 server would create a TCP connection to port 80 of the host "www.example.org" and send the lines: … … 1279 1285 <div id="rfc.figure.u.33"></div><pre class="text"> GET /pub/WWW/TheProject.html HTTP/1.1 1280 1286 Host: www.example.org 1281 </pre><p id="rfc.section. 2.8.1.2.p.11">followed by the remainder of the Request. Note that the absolute path cannot be empty; if none is present in the original1287 </pre><p id="rfc.section.4.1.2.p.11">followed by the remainder of the Request. Note that the absolute path cannot be empty; if none is present in the original 1282 1288 URI, it <em class="bcp14">MUST</em> be given as "/" (the server root). 1283 1289 </p> 1284 <p id="rfc.section. 2.8.1.2.p.12">If a proxy receives a request without any path in the request-target and the method specified is capable of supporting the1290 <p id="rfc.section.4.1.2.p.12">If a proxy receives a request without any path in the request-target and the method specified is capable of supporting the 1285 1291 asterisk form of request-target, then the last proxy on the request chain <em class="bcp14">MUST</em> forward the request with "*" as the final request-target. 1286 1292 </p> … … 1291 1297 Host: www.example.org:8001 1292 1298 </pre> <p>after connecting to port 8001 of host "www.example.org".</p> 1293 <p id="rfc.section. 2.8.1.2.p.15">The request-target is transmitted in the format specified in <a href="#http.uri" title="http URI scheme">Section 2.6.1</a>. If the request-target is percent-encoded (<a href="#RFC3986" id="rfc.xref.RFC3986.18"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-2.1">Section 2.1</a>), the origin server <em class="bcp14">MUST</em> decode the request-target in order to properly interpret the request. Servers <em class="bcp14">SHOULD</em> respond to invalid request-targets with an appropriate status code.1294 </p> 1295 <p id="rfc.section. 2.8.1.2.p.16">A transparent proxy <em class="bcp14">MUST NOT</em> rewrite the "path-absolute" part of the received request-target when forwarding it to the next inbound server, except as noted1299 <p id="rfc.section.4.1.2.p.15">The request-target is transmitted in the format specified in <a href="#http.uri" title="http URI scheme">Section 2.6.1</a>. If the request-target is percent-encoded (<a href="#RFC3986" id="rfc.xref.RFC3986.18"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>, <a href="http://tools.ietf.org/html/rfc3986#section-2.1">Section 2.1</a>), the origin server <em class="bcp14">MUST</em> decode the request-target in order to properly interpret the request. Servers <em class="bcp14">SHOULD</em> respond to invalid request-targets with an appropriate status code. 1300 </p> 1301 <p id="rfc.section.4.1.2.p.16">A transparent proxy <em class="bcp14">MUST NOT</em> rewrite the "path-absolute" part of the received request-target when forwarding it to the next inbound server, except as noted 1296 1302 above to replace a null path-absolute with "/". 1297 1303 </p> … … 1302 1308 </p> 1303 1309 </div> 1304 <p id="rfc.section. 2.8.1.2.p.18">HTTP does not place a pre-defined limit on the length of a request-target. A server <em class="bcp14">MUST</em> be prepared to receive URIs of unbounded length and respond with the 414 (URI Too Long) status if the received request-target1310 <p id="rfc.section.4.1.2.p.18">HTTP does not place a pre-defined limit on the length of a request-target. A server <em class="bcp14">MUST</em> be prepared to receive URIs of unbounded length and respond with the 414 (URI Too Long) status if the received request-target 1305 1311 would be longer than the server wishes to handle (see <a href="p2-semantics.html#status.414" title="414 URI Too Long">Section 8.4.15</a> of <a href="#Part2" id="rfc.xref.Part2.5"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>). 1306 1312 </p> 1307 <p id="rfc.section. 2.8.1.2.p.19">Various ad-hoc limitations on request-target length are found in practice. It is <em class="bcp14">RECOMMENDED</em> that all HTTP senders and recipients support request-target lengths of 8000 or more OCTETs.1308 </p> 1309 <h 3 id="rfc.section.2.8.2"><a href="#rfc.section.2.8.2">2.8.2</a> <a id="the.resource.identified.by.a.request" href="#the.resource.identified.by.a.request">The Resource Identified by a Request</a></h3>1310 <p id="rfc.section. 2.8.2.p.1">The exact resource identified by an Internet request is determined by examining both the request-target and the Host header1313 <p id="rfc.section.4.1.2.p.19">Various ad-hoc limitations on request-target length are found in practice. It is <em class="bcp14">RECOMMENDED</em> that all HTTP senders and recipients support request-target lengths of 8000 or more OCTETs. 1314 </p> 1315 <h2 id="rfc.section.4.2"><a href="#rfc.section.4.2">4.2</a> <a id="the.resource.identified.by.a.request" href="#the.resource.identified.by.a.request">The Resource Identified by a Request</a></h2> 1316 <p id="rfc.section.4.2.p.1">The exact resource identified by an Internet request is determined by examining both the request-target and the Host header 1311 1317 field. 1312 1318 </p> 1313 <p id="rfc.section. 2.8.2.p.2">An origin server that does not allow resources to differ by the requested host <em class="bcp14">MAY</em> ignore the Host header field value when determining the resource identified by an HTTP/1.1 request. (But see <a href="#changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses" title="Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses">Appendix B.1.1</a> for other requirements on Host support in HTTP/1.1.)1314 </p> 1315 <p id="rfc.section. 2.8.2.p.3">An origin server that does differentiate resources based on the host requested (sometimes referred to as virtual hosts or1319 <p id="rfc.section.4.2.p.2">An origin server that does not allow resources to differ by the requested host <em class="bcp14">MAY</em> ignore the Host header field value when determining the resource identified by an HTTP/1.1 request. (But see <a href="#changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses" title="Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses">Appendix B.1.1</a> for other requirements on Host support in HTTP/1.1.) 1320 </p> 1321 <p id="rfc.section.4.2.p.3">An origin server that does differentiate resources based on the host requested (sometimes referred to as virtual hosts or 1316 1322 vanity host names) <em class="bcp14">MUST</em> use the following rules for determining the requested resource on an HTTP/1.1 request: 1317 1323 </p> … … 1325 1331 </li> 1326 1332 </ol> 1327 <p id="rfc.section. 2.8.2.p.4">Recipients of an HTTP/1.0 request that lacks a Host header field <em class="bcp14">MAY</em> attempt to use heuristics (e.g., examination of the URI path for something unique to a particular host) in order to determine1333 <p id="rfc.section.4.2.p.4">Recipients of an HTTP/1.0 request that lacks a Host header field <em class="bcp14">MAY</em> attempt to use heuristics (e.g., examination of the URI path for something unique to a particular host) in order to determine 1328 1334 what exact resource is being requested. 1329 1335 </p> 1330 <h 2 id="rfc.section.2.9"><a href="#rfc.section.2.9">2.9</a> <a id="response" href="#response">Response</a></h2>1331 <p id="rfc.section. 2.9.p.1">After receiving and interpreting a request message, a server responds with an HTTP response message.</p>1332 <div id="rfc.figure.u.36"></div><pre class="inline"><span id="rfc.iref.g.49"></span> <a href="#response" class="smpl">Response</a> = <a href="#status-line" class="smpl">Status-Line</a> ; <a href="#status-line" title="Status-Line">Section 2.9.1</a>1333 *(( <a href="#general.header.fields" class="smpl">general-header</a> ; <a href="#general.header.fields" title="General Header Fields">Section 2.7.5</a>1336 <h1 id="rfc.section.5"><a href="#rfc.section.5">5.</a> <a id="response" href="#response">Response</a></h1> 1337 <p id="rfc.section.5.p.1">After receiving and interpreting a request message, a server responds with an HTTP response message.</p> 1338 <div id="rfc.figure.u.36"></div><pre class="inline"><span id="rfc.iref.g.49"></span> <a href="#response" class="smpl">Response</a> = <a href="#status-line" class="smpl">Status-Line</a> ; <a href="#status-line" title="Status-Line">Section 5.1</a> 1339 *(( <a href="#general.header.fields" class="smpl">general-header</a> ; <a href="#general.header.fields" title="General Header Fields">Section 3.5</a> 1334 1340 / <a href="#abnf.dependencies" class="smpl">response-header</a> ; <a href="#Part2" id="rfc.xref.Part2.6"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>, <a href="p2-semantics.html#response.header.fields" title="Response Header Fields">Section 5</a> 1335 1341 / <a href="#abnf.dependencies" class="smpl">entity-header</a> ) <a href="#core.rules" class="smpl">CRLF</a> ) ; <a href="#Part3" id="rfc.xref.Part3.6"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="p3-payload.html#entity.header.fields" title="Entity Header Fields">Section 3.1</a> 1336 1342 <a href="#core.rules" class="smpl">CRLF</a> 1337 [ <a href="#message.body" class="smpl">message-body</a> ] ; <a href="#message.body" title="Message Body">Section 2.7.3</a>1338 </pre><h 3 id="rfc.section.2.9.1"><a href="#rfc.section.2.9.1">2.9.1</a> <a id="status-line" href="#status-line">Status-Line</a></h3>1339 <p id="rfc.section. 2.9.1.p.1">The first line of a Response message is the Status-Line, consisting of the protocol version followed by a numeric status code1343 [ <a href="#message.body" class="smpl">message-body</a> ] ; <a href="#message.body" title="Message Body">Section 3.3</a> 1344 </pre><h2 id="rfc.section.5.1"><a href="#rfc.section.5.1">5.1</a> <a id="status-line" href="#status-line">Status-Line</a></h2> 1345 <p id="rfc.section.5.1.p.1">The first line of a Response message is the Status-Line, consisting of the protocol version followed by a numeric status code 1340 1346 and its associated textual phrase, with each element separated by SP characters. No CR or LF is allowed except in the final 1341 1347 CRLF sequence. 1342 1348 </p> 1343 1349 <div id="rfc.figure.u.37"></div><pre class="inline"><span id="rfc.iref.g.50"></span> <a href="#status-line" class="smpl">Status-Line</a> = <a href="#http.version" class="smpl">HTTP-Version</a> <a href="#core.rules" class="smpl">SP</a> <a href="#status.code.and.reason.phrase" class="smpl">Status-Code</a> <a href="#core.rules" class="smpl">SP</a> <a href="#status.code.and.reason.phrase" class="smpl">Reason-Phrase</a> <a href="#core.rules" class="smpl">CRLF</a> 1344 </pre><h 4 id="rfc.section.2.9.1.1"><a href="#rfc.section.2.9.1.1">2.9.1.1</a> <a id="status.code.and.reason.phrase" href="#status.code.and.reason.phrase">Status Code and Reason Phrase</a></h4>1345 <p id="rfc.section. 2.9.1.1.p.1">The Status-Code element is a 3-digit integer result code of the attempt to understand and satisfy the request. These codes1350 </pre><h3 id="rfc.section.5.1.1"><a href="#rfc.section.5.1.1">5.1.1</a> <a id="status.code.and.reason.phrase" href="#status.code.and.reason.phrase">Status Code and Reason Phrase</a></h3> 1351 <p id="rfc.section.5.1.1.p.1">The Status-Code element is a 3-digit integer result code of the attempt to understand and satisfy the request. These codes 1346 1352 are fully defined in <a href="p2-semantics.html#status.codes" title="Status Code Definitions">Section 8</a> of <a href="#Part2" id="rfc.xref.Part2.7"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>. The Reason Phrase exists for the sole purpose of providing a textual description associated with the numeric status code, 1347 1353 out of deference to earlier Internet application protocols that were more frequently used with interactive text clients. A 1348 1354 client <em class="bcp14">SHOULD</em> ignore the content of the Reason Phrase. 1349 1355 </p> 1350 <p id="rfc.section. 2.9.1.1.p.2">The first digit of the Status-Code defines the class of response. The last two digits do not have any categorization role.1356 <p id="rfc.section.5.1.1.p.2">The first digit of the Status-Code defines the class of response. The last two digits do not have any categorization role. 1351 1357 There are 5 values for the first digit: 1352 1358 </p> … … 1360 1366 <div id="rfc.figure.u.38"></div><pre class="inline"><span id="rfc.iref.g.51"></span><span id="rfc.iref.g.52"></span><span id="rfc.iref.g.53"></span> <a href="#status.code.and.reason.phrase" class="smpl">Status-Code</a> = 3<a href="#core.rules" class="smpl">DIGIT</a> 1361 1367 <a href="#status.code.and.reason.phrase" class="smpl">Reason-Phrase</a> = *( <a href="#core.rules" class="smpl">WSP</a> / <a href="#core.rules" class="smpl">VCHAR</a> / <a href="#rule.quoted-string" class="smpl">obs-text</a> ) 1362 </pre><h 2 id="rfc.section.2.10"><a href="#rfc.section.2.10">2.10</a> <a id="protocol.parameters" href="#protocol.parameters">Protocol Parameters</a></h2>1363 <h 3 id="rfc.section.2.10.1"><a href="#rfc.section.2.10.1">2.10.1</a> <a id="date.time.formats.full.date" href="#date.time.formats.full.date">Date/Time Formats: Full Date</a></h3>1364 <p id="rfc.section. 2.10.1.p.1">HTTP applications have historically allowed three different formats for the representation of date/time stamps:</p>1368 </pre><h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a> <a id="protocol.parameters" href="#protocol.parameters">Protocol Parameters</a></h1> 1369 <h2 id="rfc.section.6.1"><a href="#rfc.section.6.1">6.1</a> <a id="date.time.formats.full.date" href="#date.time.formats.full.date">Date/Time Formats: Full Date</a></h2> 1370 <p id="rfc.section.6.1.p.1">HTTP applications have historically allowed three different formats for the representation of date/time stamps:</p> 1365 1371 <div id="rfc.figure.u.39"></div><pre class="text"> Sun, 06 Nov 1994 08:49:37 GMT ; RFC 1123 1366 1372 Sunday, 06-Nov-94 08:49:37 GMT ; obsolete RFC 850 format 1367 1373 Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format 1368 </pre><p id="rfc.section. 2.10.1.p.3">The first format is preferred as an Internet standard and represents a fixed-length subset of that defined by <a href="#RFC1123" id="rfc.xref.RFC1123.1"><cite title="Requirements for Internet Hosts - Application and Support">[RFC1123]</cite></a>. The other formats are described here only for compatibility with obsolete implementations. HTTP/1.1 clients and servers1374 </pre><p id="rfc.section.6.1.p.3">The first format is preferred as an Internet standard and represents a fixed-length subset of that defined by <a href="#RFC1123" id="rfc.xref.RFC1123.1"><cite title="Requirements for Internet Hosts - Application and Support">[RFC1123]</cite></a>. The other formats are described here only for compatibility with obsolete implementations. HTTP/1.1 clients and servers 1369 1375 that parse the date value <em class="bcp14">MUST</em> accept all three formats (for compatibility with HTTP/1.0), though they <em class="bcp14">MUST</em> only generate the RFC 1123 format for representing HTTP-date values in header fields. See <a href="#tolerant.applications" title="Tolerant Applications">Appendix A</a> for further information. 1370 1376 </p> 1371 <p id="rfc.section. 2.10.1.p.4">All HTTP date/time stamps <em class="bcp14">MUST</em> be represented in Greenwich Mean Time (GMT), without exception. For the purposes of HTTP, GMT is exactly equal to UTC (Coordinated1377 <p id="rfc.section.6.1.p.4">All HTTP date/time stamps <em class="bcp14">MUST</em> be represented in Greenwich Mean Time (GMT), without exception. For the purposes of HTTP, GMT is exactly equal to UTC (Coordinated 1372 1378 Universal Time). This is indicated in the first two formats by the inclusion of "GMT" as the three-letter abbreviation for 1373 1379 time zone, and <em class="bcp14">MUST</em> be assumed when reading the asctime format. HTTP-date is case sensitive and <em class="bcp14">MUST NOT</em> include additional whitespace beyond that specifically included as SP in the grammar. … … 1375 1381 <div id="rfc.figure.u.40"></div><pre class="inline"><span id="rfc.iref.g.54"></span> <a href="#date.time.formats.full.date" class="smpl">HTTP-date</a> = <a href="#preferred.date.format" class="smpl">rfc1123-date</a> / <a href="#obsolete.date.formats" class="smpl">obs-date</a> 1376 1382 </pre><div id="preferred.date.format"> 1377 <p id="rfc.section. 2.10.1.p.6"> Preferred format:</p>1383 <p id="rfc.section.6.1.p.6"> Preferred format:</p> 1378 1384 </div> 1379 1385 <div id="rfc.figure.u.41"></div><pre class="inline"><span id="rfc.iref.g.55"></span><span id="rfc.iref.g.56"></span><span id="rfc.iref.g.57"></span><span id="rfc.iref.g.58"></span><span id="rfc.iref.g.59"></span><span id="rfc.iref.g.60"></span><span id="rfc.iref.g.61"></span><span id="rfc.iref.g.62"></span><span id="rfc.iref.g.63"></span><span id="rfc.iref.g.64"></span><span id="rfc.iref.g.65"></span><span id="rfc.iref.g.66"></span> <a href="#preferred.date.format" class="smpl">rfc1123-date</a> = <a href="#preferred.date.format" class="smpl">day-name</a> "," <a href="#core.rules" class="smpl">SP</a> date1 <a href="#core.rules" class="smpl">SP</a> <a href="#preferred.date.format" class="smpl">time-of-day</a> <a href="#core.rules" class="smpl">SP</a> <a href="#preferred.date.format" class="smpl">GMT</a> … … 1413 1419 <a href="#preferred.date.format" class="smpl">minute</a> = 2<a href="#core.rules" class="smpl">DIGIT</a> 1414 1420 <a href="#preferred.date.format" class="smpl">second</a> = 2<a href="#core.rules" class="smpl">DIGIT</a> 1415 </pre><p id="rfc.section. 2.10.1.p.8">The semantics of <a href="#preferred.date.format" class="smpl">day-name</a>, <a href="#preferred.date.format" class="smpl">day</a>, <a href="#preferred.date.format" class="smpl">month</a>, <a href="#preferred.date.format" class="smpl">year</a>, and <a href="#preferred.date.format" class="smpl">time-of-day</a> are the same as those defined for the RFC 5322 constructs with the corresponding name (<a href="#RFC5322" id="rfc.xref.RFC5322.3"><cite title="Internet Message Format">[RFC5322]</cite></a>, <a href="http://tools.ietf.org/html/rfc5322#section-3.3">Section 3.3</a>).1421 </pre><p id="rfc.section.6.1.p.8">The semantics of <a href="#preferred.date.format" class="smpl">day-name</a>, <a href="#preferred.date.format" class="smpl">day</a>, <a href="#preferred.date.format" class="smpl">month</a>, <a href="#preferred.date.format" class="smpl">year</a>, and <a href="#preferred.date.format" class="smpl">time-of-day</a> are the same as those defined for the RFC 5322 constructs with the corresponding name (<a href="#RFC5322" id="rfc.xref.RFC5322.3"><cite title="Internet Message Format">[RFC5322]</cite></a>, <a href="http://tools.ietf.org/html/rfc5322#section-3.3">Section 3.3</a>). 1416 1422 </p> 1417 1423 <div id="obsolete.date.formats"> 1418 <p id="rfc.section. 2.10.1.p.9"> Obsolete formats:</p>1424 <p id="rfc.section.6.1.p.9"> Obsolete formats:</p> 1419 1425 </div> 1420 1426 <div id="rfc.figure.u.42"></div><pre class="inline"><span id="rfc.iref.g.67"></span> <a href="#obsolete.date.formats" class="smpl">obs-date</a> = <a href="#obsolete.date.formats" class="smpl">rfc850-date</a> / <a href="#obsolete.date.formats" class="smpl">asctime-date</a> … … 1443 1449 </p> 1444 1450 </div> 1445 <h 3 id="rfc.section.2.10.2"><a href="#rfc.section.2.10.2">2.10.2</a> <a id="transfer.codings" href="#transfer.codings">Transfer Codings</a></h3>1446 <p id="rfc.section. 2.10.2.p.1">Transfer-coding values are used to indicate an encoding transformation that has been, can be, or may need to be applied to1451 <h2 id="rfc.section.6.2"><a href="#rfc.section.6.2">6.2</a> <a id="transfer.codings" href="#transfer.codings">Transfer Codings</a></h2> 1452 <p id="rfc.section.6.2.p.1">Transfer-coding values are used to indicate an encoding transformation that has been, can be, or may need to be applied to 1447 1453 an entity-body in order to ensure "safe transport" through the network. This differs from a content coding in that the transfer-coding 1448 1454 is a property of the message, not of the original entity. 1449 1455 </p> 1450 <div id="rfc.figure.u.45"></div><pre class="inline"><span id="rfc.iref.g.70"></span><span id="rfc.iref.g.71"></span> <a href="#transfer.codings" class="smpl">transfer-coding</a> = "chunked" ; <a href="#chunked.encoding" title="Chunked Transfer Coding">Section 2.10.2.1</a>1451 / "compress" ; <a href="#compress.coding" title="Compress Coding">Section 2.10.2.2.1</a>1452 / "deflate" ; <a href="#deflate.coding" title="Deflate Coding">Section 2.10.2.2.2</a>1453 / "gzip" ; <a href="#gzip.coding" title="Gzip Coding">Section 2.10.2.2.3</a>1456 <div id="rfc.figure.u.45"></div><pre class="inline"><span id="rfc.iref.g.70"></span><span id="rfc.iref.g.71"></span> <a href="#transfer.codings" class="smpl">transfer-coding</a> = "chunked" ; <a href="#chunked.encoding" title="Chunked Transfer Coding">Section 6.2.1</a> 1457 / "compress" ; <a href="#compress.coding" title="Compress Coding">Section 6.2.2.1</a> 1458 / "deflate" ; <a href="#deflate.coding" title="Deflate Coding">Section 6.2.2.2</a> 1459 / "gzip" ; <a href="#gzip.coding" title="Gzip Coding">Section 6.2.2.3</a> 1454 1460 / <a href="#transfer.codings" class="smpl">transfer-extension</a> 1455 1461 <a href="#transfer.codings" class="smpl">transfer-extension</a> = <a href="#rule.token.separators" class="smpl">token</a> *( <a href="#rule.whitespace" class="smpl">OWS</a> ";" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#rule.parameter" class="smpl">transfer-parameter</a> ) 1456 1462 </pre><div id="rule.parameter"> 1457 <p id="rfc.section. 2.10.2.p.3"> Parameters are in the form of attribute/value pairs.</p>1463 <p id="rfc.section.6.2.p.3"> Parameters are in the form of attribute/value pairs.</p> 1458 1464 </div> 1459 1465 <div id="rfc.figure.u.46"></div><pre class="inline"><span id="rfc.iref.g.72"></span><span id="rfc.iref.g.73"></span><span id="rfc.iref.g.74"></span><span id="rfc.iref.g.75"></span><span id="rfc.iref.g.76"></span> <a href="#rule.parameter" class="smpl">transfer-parameter</a> = <a href="#rule.parameter" class="smpl">attribute</a> <a href="#rule.whitespace" class="smpl">BWS</a> "=" <a href="#rule.whitespace" class="smpl">BWS</a> <a href="#rule.parameter" class="smpl">value</a> 1460 1466 <a href="#rule.parameter" class="smpl">attribute</a> = <a href="#rule.token.separators" class="smpl">token</a> 1461 1467 <a href="#rule.parameter" class="smpl">value</a> = <a href="#rule.token.separators" class="smpl">token</a> / <a href="#rule.quoted-string" class="smpl">quoted-string</a> 1462 </pre><p id="rfc.section. 2.10.2.p.5">All transfer-coding values are case-insensitive. HTTP/1.1 uses transfer-coding values in the TE header field (<a href="#header.te" id="rfc.xref.header.te.1" title="TE">Section 3.5</a>) and in the Transfer-Encoding header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.4" title="Transfer-Encoding">Section 3.7</a>).1463 </p> 1464 <p id="rfc.section. 2.10.2.p.6">Whenever a transfer-coding is applied to a message-body, the set of transfer-codings <em class="bcp14">MUST</em> include "chunked", unless the message indicates it is terminated by closing the connection. When the "chunked" transfer-coding1468 </pre><p id="rfc.section.6.2.p.5">All transfer-coding values are case-insensitive. HTTP/1.1 uses transfer-coding values in the TE header field (<a href="#header.te" id="rfc.xref.header.te.1" title="TE">Section 9.5</a>) and in the Transfer-Encoding header field (<a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.4" title="Transfer-Encoding">Section 9.7</a>). 1469 </p> 1470 <p id="rfc.section.6.2.p.6">Whenever a transfer-coding is applied to a message-body, the set of transfer-codings <em class="bcp14">MUST</em> include "chunked", unless the message indicates it is terminated by closing the connection. When the "chunked" transfer-coding 1465 1471 is used, it <em class="bcp14">MUST</em> be the last transfer-coding applied to the message-body. The "chunked" transfer-coding <em class="bcp14">MUST NOT</em> be applied more than once to a message-body. These rules allow the recipient to determine the transfer-length of the message 1466 (<a href="#message.length" title="Message Length">Section 2.7.4</a>).1467 </p> 1468 <p id="rfc.section. 2.10.2.p.7">Transfer-codings are analogous to the Content-Transfer-Encoding values of MIME, which were designed to enable safe transport1472 (<a href="#message.length" title="Message Length">Section 3.4</a>). 1473 </p> 1474 <p id="rfc.section.6.2.p.7">Transfer-codings are analogous to the Content-Transfer-Encoding values of MIME, which were designed to enable safe transport 1469 1475 of binary data over a 7-bit transport service (<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>, <a href="http://tools.ietf.org/html/rfc2045#section-6">Section 6</a>). However, safe transport has a different focus for an 8bit-clean transfer protocol. In HTTP, the only unsafe characteristic 1470 of message-bodies is the difficulty in determining the exact body length (<a href="#message.length" title="Message Length">Section 2.7.4</a>), or the desire to encrypt data over a shared transport.1471 </p> 1472 <p id="rfc.section. 2.10.2.p.8">A server which receives an entity-body with a transfer-coding it does not understand <em class="bcp14">SHOULD</em> return 501 (Not Implemented), and close the connection. A server <em class="bcp14">MUST NOT</em> send transfer-codings to an HTTP/1.0 client.1476 of message-bodies is the difficulty in determining the exact body length (<a href="#message.length" title="Message Length">Section 3.4</a>), or the desire to encrypt data over a shared transport. 1477 </p> 1478 <p id="rfc.section.6.2.p.8">A server which receives an entity-body with a transfer-coding it does not understand <em class="bcp14">SHOULD</em> return 501 (Not Implemented), and close the connection. A server <em class="bcp14">MUST NOT</em> send transfer-codings to an HTTP/1.0 client. 1473 1479 </p> 1474 1480 <div id="rfc.iref.c.5"></div> 1475 1481 <div id="rfc.iref.c.6"></div> 1476 <h 4 id="rfc.section.2.10.2.1"><a href="#rfc.section.2.10.2.1">2.10.2.1</a> <a id="chunked.encoding" href="#chunked.encoding">Chunked Transfer Coding</a></h4>1477 <p id="rfc.section. 2.10.2.1.p.1">The chunked encoding modifies the body of a message in order to transfer it as a series of chunks, each with its own size1482 <h3 id="rfc.section.6.2.1"><a href="#rfc.section.6.2.1">6.2.1</a> <a id="chunked.encoding" href="#chunked.encoding">Chunked Transfer Coding</a></h3> 1483 <p id="rfc.section.6.2.1.p.1">The chunked encoding modifies the body of a message in order to transfer it as a series of chunks, each with its own size 1478 1484 indicator, followed by an <em class="bcp14">OPTIONAL</em> trailer containing entity-header fields. This allows dynamically produced content to be transferred along with the information 1479 1485 necessary for the recipient to verify that it has received the full message. … … 1495 1501 <a href="#chunked.encoding" class="smpl">chunk-data</a> = 1*<a href="#core.rules" class="smpl">OCTET</a> ; a sequence of chunk-size octets 1496 1502 <a href="#chunked.encoding" class="smpl">trailer-part</a> = *( <a href="#abnf.dependencies" class="smpl">entity-header</a> <a href="#core.rules" class="smpl">CRLF</a> ) 1497 </pre><p id="rfc.section. 2.10.2.1.p.3">The chunk-size field is a string of hex digits indicating the size of the chunk-data in octets. The chunked encoding is ended1503 </pre><p id="rfc.section.6.2.1.p.3">The chunk-size field is a string of hex digits indicating the size of the chunk-data in octets. The chunked encoding is ended 1498 1504 by any chunk whose size is zero, followed by the trailer, which is terminated by an empty line. 1499 1505 </p> 1500 <p id="rfc.section. 2.10.2.1.p.4">The trailer allows the sender to include additional HTTP header fields at the end of the message. The Trailer header field1501 can be used to indicate which header fields are included in a trailer (see <a href="#header.trailer" id="rfc.xref.header.trailer.2" title="Trailer">Section 3.6</a>).1502 </p> 1503 <p id="rfc.section. 2.10.2.1.p.5">A server using chunked transfer-coding in a response <em class="bcp14">MUST NOT</em> use the trailer for any header fields unless at least one of the following is true:1506 <p id="rfc.section.6.2.1.p.4">The trailer allows the sender to include additional HTTP header fields at the end of the message. The Trailer header field 1507 can be used to indicate which header fields are included in a trailer (see <a href="#header.trailer" id="rfc.xref.header.trailer.2" title="Trailer">Section 9.6</a>). 1508 </p> 1509 <p id="rfc.section.6.2.1.p.5">A server using chunked transfer-coding in a response <em class="bcp14">MUST NOT</em> use the trailer for any header fields unless at least one of the following is true: 1504 1510 </p> 1505 1511 <ol> 1506 1512 <li>the request included a TE header field that indicates "trailers" is acceptable in the transfer-coding of the response, as 1507 described in <a href="#header.te" id="rfc.xref.header.te.2" title="TE">Section 3.5</a>; or,1513 described in <a href="#header.te" id="rfc.xref.header.te.2" title="TE">Section 9.5</a>; or, 1508 1514 </li> 1509 1515 <li>the server is the origin server for the response, the trailer fields consist entirely of optional metadata, and the recipient … … 1512 1518 </li> 1513 1519 </ol> 1514 <p id="rfc.section. 2.10.2.1.p.6">This requirement prevents an interoperability failure when the message is being received by an HTTP/1.1 (or later) proxy and1520 <p id="rfc.section.6.2.1.p.6">This requirement prevents an interoperability failure when the message is being received by an HTTP/1.1 (or later) proxy and 1515 1521 forwarded to an HTTP/1.0 recipient. It avoids a situation where compliance with the protocol would have necessitated a possibly 1516 1522 infinite buffer on the proxy. 1517 1523 </p> 1518 <p id="rfc.section. 2.10.2.1.p.7">A process for decoding the "chunked" transfer-coding can be represented in pseudo-code as:</p>1524 <p id="rfc.section.6.2.1.p.7">A process for decoding the "chunked" transfer-coding can be represented in pseudo-code as:</p> 1519 1525 <div id="rfc.figure.u.48"></div><pre class="text"> length := 0 1520 1526 read chunk-size, chunk-ext (if any) and CRLF … … 1532 1538 Content-Length := length 1533 1539 Remove "chunked" from Transfer-Encoding 1534 </pre><p id="rfc.section. 2.10.2.1.p.9">All HTTP/1.1 applications <em class="bcp14">MUST</em> be able to receive and decode the "chunked" transfer-coding, and <em class="bcp14">MUST</em> ignore chunk-ext extensions they do not understand.1535 </p> 1536 <h 4 id="rfc.section.2.10.2.2"><a href="#rfc.section.2.10.2.2">2.10.2.2</a> <a id="compression.codings" href="#compression.codings">Compression Codings</a></h4>1537 <p id="rfc.section. 2.10.2.2.p.1">The codings defined below can be used to compress the payload of a message.</p>1540 </pre><p id="rfc.section.6.2.1.p.9">All HTTP/1.1 applications <em class="bcp14">MUST</em> be able to receive and decode the "chunked" transfer-coding, and <em class="bcp14">MUST</em> ignore chunk-ext extensions they do not understand. 1541 </p> 1542 <h3 id="rfc.section.6.2.2"><a href="#rfc.section.6.2.2">6.2.2</a> <a id="compression.codings" href="#compression.codings">Compression Codings</a></h3> 1543 <p id="rfc.section.6.2.2.p.1">The codings defined below can be used to compress the payload of a message.</p> 1538 1544 <div class="note"> 1539 1545 <p> <b>Note:</b> Use of program names for the identification of encoding formats is not desirable and is discouraged for future encodings. … … 1547 1553 <div id="rfc.iref.c.7"></div> 1548 1554 <div id="rfc.iref.c.8"></div> 1549 <h 5 id="rfc.section.2.10.2.2.1"><a href="#rfc.section.2.10.2.2.1">2.10.2.2.1</a> <a id="compress.coding" href="#compress.coding">Compress Coding</a></h5>1550 <p id="rfc.section. 2.10.2.2.1.p.1">The "compress" format is produced by the common UNIX file compression program "compress". This format is an adaptive Lempel-Ziv-Welch1555 <h4 id="rfc.section.6.2.2.1"><a href="#rfc.section.6.2.2.1">6.2.2.1</a> <a id="compress.coding" href="#compress.coding">Compress Coding</a></h4> 1556 <p id="rfc.section.6.2.2.1.p.1">The "compress" format is produced by the common UNIX file compression program "compress". This format is an adaptive Lempel-Ziv-Welch 1551 1557 coding (LZW). 1552 1558 </p> 1553 1559 <div id="rfc.iref.d.2"></div> 1554 1560 <div id="rfc.iref.c.9"></div> 1555 <h 5 id="rfc.section.2.10.2.2.2"><a href="#rfc.section.2.10.2.2.2">2.10.2.2.2</a> <a id="deflate.coding" href="#deflate.coding">Deflate Coding</a></h5>1556 <p id="rfc.section. 2.10.2.2.2.p.1">The "zlib" format is defined in <a href="#RFC1950" id="rfc.xref.RFC1950.1"><cite title="ZLIB Compressed Data Format Specification version 3.3">[RFC1950]</cite></a> in combination with the "deflate" compression mechanism described in <a href="#RFC1951" id="rfc.xref.RFC1951.1"><cite title="DEFLATE Compressed Data Format Specification version 1.3">[RFC1951]</cite></a>.1561 <h4 id="rfc.section.6.2.2.2"><a href="#rfc.section.6.2.2.2">6.2.2.2</a> <a id="deflate.coding" href="#deflate.coding">Deflate Coding</a></h4> 1562 <p id="rfc.section.6.2.2.2.p.1">The "zlib" format is defined in <a href="#RFC1950" id="rfc.xref.RFC1950.1"><cite title="ZLIB Compressed Data Format Specification version 3.3">[RFC1950]</cite></a> in combination with the "deflate" compression mechanism described in <a href="#RFC1951" id="rfc.xref.RFC1951.1"><cite title="DEFLATE Compressed Data Format Specification version 1.3">[RFC1951]</cite></a>. 1557 1563 </p> 1558 1564 <div id="rfc.iref.g.86"></div> 1559 1565 <div id="rfc.iref.c.10"></div> 1560 <h 5 id="rfc.section.2.10.2.2.3"><a href="#rfc.section.2.10.2.2.3">2.10.2.2.3</a> <a id="gzip.coding" href="#gzip.coding">Gzip Coding</a></h5>1561 <p id="rfc.section. 2.10.2.2.3.p.1">The "gzip" format is produced by the file compression program "gzip" (GNU zip), as described in <a href="#RFC1952" id="rfc.xref.RFC1952.1"><cite title="GZIP file format specification version 4.3">[RFC1952]</cite></a>. This format is a Lempel-Ziv coding (LZ77) with a 32 bit CRC.1562 </p> 1563 <h 4 id="rfc.section.2.10.2.3"><a href="#rfc.section.2.10.2.3">2.10.2.3</a> <a id="transfer.coding.registry" href="#transfer.coding.registry">Transfer Coding Registry</a></h4>1564 <p id="rfc.section. 2.10.2.3.p.1">The HTTP Transfer Coding Registry defines the name space for the transfer coding names.</p>1565 <p id="rfc.section. 2.10.2.3.p.2">Registrations <em class="bcp14">MUST</em> include the following fields:1566 <h4 id="rfc.section.6.2.2.3"><a href="#rfc.section.6.2.2.3">6.2.2.3</a> <a id="gzip.coding" href="#gzip.coding">Gzip Coding</a></h4> 1567 <p id="rfc.section.6.2.2.3.p.1">The "gzip" format is produced by the file compression program "gzip" (GNU zip), as described in <a href="#RFC1952" id="rfc.xref.RFC1952.1"><cite title="GZIP file format specification version 4.3">[RFC1952]</cite></a>. This format is a Lempel-Ziv coding (LZ77) with a 32 bit CRC. 1568 </p> 1569 <h3 id="rfc.section.6.2.3"><a href="#rfc.section.6.2.3">6.2.3</a> <a id="transfer.coding.registry" href="#transfer.coding.registry">Transfer Coding Registry</a></h3> 1570 <p id="rfc.section.6.2.3.p.1">The HTTP Transfer Coding Registry defines the name space for the transfer coding names.</p> 1571 <p id="rfc.section.6.2.3.p.2">Registrations <em class="bcp14">MUST</em> include the following fields: 1566 1572 </p> 1567 1573 <ul> … … 1570 1576 <li>Pointer to specification text</li> 1571 1577 </ul> 1572 <p id="rfc.section. 2.10.2.3.p.3">Values to be added to this name space require expert review and a specification (see "Expert Review" and "Specification Required"1578 <p id="rfc.section.6.2.3.p.3">Values to be added to this name space require expert review and a specification (see "Expert Review" and "Specification Required" 1573 1579 in <a href="http://tools.ietf.org/html/rfc5226#section-4.1">Section 4.1</a> of <a href="#RFC5226" id="rfc.xref.RFC5226.1"><cite title="Guidelines for Writing an IANA Considerations Section in RFCs">[RFC5226]</cite></a>), and <em class="bcp14">MUST</em> conform to the purpose of transfer coding defined in this section. 1574 1580 </p> 1575 <p id="rfc.section. 2.10.2.3.p.4">The registry itself is maintained at <<a href="http://www.iana.org/assignments/http-parameters">http://www.iana.org/assignments/http-parameters</a>>.1576 </p> 1577 <h 3 id="rfc.section.2.10.3"><a href="#rfc.section.2.10.3">2.10.3</a> <a id="product.tokens" href="#product.tokens">Product Tokens</a></h3>1578 <p id="rfc.section. 2.10.3.p.1">Product tokens are used to allow communicating applications to identify themselves by software name and version. Most fields1581 <p id="rfc.section.6.2.3.p.4">The registry itself is maintained at <<a href="http://www.iana.org/assignments/http-parameters">http://www.iana.org/assignments/http-parameters</a>>. 1582 </p> 1583 <h2 id="rfc.section.6.3"><a href="#rfc.section.6.3">6.3</a> <a id="product.tokens" href="#product.tokens">Product Tokens</a></h2> 1584 <p id="rfc.section.6.3.p.1">Product tokens are used to allow communicating applications to identify themselves by software name and version. Most fields 1579 1585 using product tokens also allow sub-products which form a significant part of the application to be listed, separated by whitespace. 1580 1586 By convention, the products are listed in order of their significance for identifying the application. … … 1582 1588 <div id="rfc.figure.u.49"></div><pre class="inline"><span id="rfc.iref.g.87"></span><span id="rfc.iref.g.88"></span> <a href="#product.tokens" class="smpl">product</a> = <a href="#rule.token.separators" class="smpl">token</a> ["/" <a href="#product.tokens" class="smpl">product-version</a>] 1583 1589 <a href="#product.tokens" class="smpl">product-version</a> = <a href="#rule.token.separators" class="smpl">token</a> 1584 </pre><p id="rfc.section. 2.10.3.p.3">Examples:</p>1590 </pre><p id="rfc.section.6.3.p.3">Examples:</p> 1585 1591 <div id="rfc.figure.u.50"></div><pre class="text"> User-Agent: CERN-LineMode/2.15 libwww/2.17b3 1586 1592 Server: Apache/0.8.4 1587 </pre><p id="rfc.section. 2.10.3.p.5">Product tokens <em class="bcp14">SHOULD</em> be short and to the point. They <em class="bcp14">MUST NOT</em> be used for advertising or other non-essential information. Although any token character <em class="bcp14">MAY</em> appear in a product-version, this token <em class="bcp14">SHOULD</em> only be used for a version identifier (i.e., successive versions of the same product <em class="bcp14">SHOULD</em> only differ in the product-version portion of the product value).1588 </p> 1589 <h 3 id="rfc.section.2.10.4"><a href="#rfc.section.2.10.4">2.10.4</a> <a id="quality.values" href="#quality.values">Quality Values</a></h3>1590 <p id="rfc.section. 2.10.4.p.1">Both transfer codings (TE request header, <a href="#header.te" id="rfc.xref.header.te.3" title="TE">Section 3.5</a>) and content negotiation (<a href="p3-payload.html#content.negotiation" title="Content Negotiation">Section 4</a> of <a href="#Part3" id="rfc.xref.Part3.7"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>) use short "floating point" numbers to indicate the relative importance ("weight") of various negotiable parameters. A weight1593 </pre><p id="rfc.section.6.3.p.5">Product tokens <em class="bcp14">SHOULD</em> be short and to the point. They <em class="bcp14">MUST NOT</em> be used for advertising or other non-essential information. Although any token character <em class="bcp14">MAY</em> appear in a product-version, this token <em class="bcp14">SHOULD</em> only be used for a version identifier (i.e., successive versions of the same product <em class="bcp14">SHOULD</em> only differ in the product-version portion of the product value). 1594 </p> 1595 <h2 id="rfc.section.6.4"><a href="#rfc.section.6.4">6.4</a> <a id="quality.values" href="#quality.values">Quality Values</a></h2> 1596 <p id="rfc.section.6.4.p.1">Both transfer codings (TE request header, <a href="#header.te" id="rfc.xref.header.te.3" title="TE">Section 9.5</a>) and content negotiation (<a href="p3-payload.html#content.negotiation" title="Content Negotiation">Section 4</a> of <a href="#Part3" id="rfc.xref.Part3.7"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>) use short "floating point" numbers to indicate the relative importance ("weight") of various negotiable parameters. A weight 1591 1597 is normalized to a real number in the range 0 through 1, where 0 is the minimum and 1 the maximum value. If a parameter has 1592 1598 a quality value of 0, then content with this parameter is `not acceptable' for the client. HTTP/1.1 applications <em class="bcp14">MUST NOT</em> generate more than three digits after the decimal point. User configuration of these values <em class="bcp14">SHOULD</em> also be limited in this fashion. … … 1598 1604 </p> 1599 1605 </div> 1600 <h 2 id="rfc.section.2.11"><a href="#rfc.section.2.11">2.11</a> <a id="connections" href="#connections">Connections</a></h2>1601 <h 3 id="rfc.section.2.11.1"><a href="#rfc.section.2.11.1">2.11.1</a> <a id="persistent.connections" href="#persistent.connections">Persistent Connections</a></h3>1602 <h 4 id="rfc.section.2.11.1.1"><a href="#rfc.section.2.11.1.1">2.11.1.1</a> <a id="persistent.purpose" href="#persistent.purpose">Purpose</a></h4>1603 <p id="rfc.section. 2.11.1.1.p.1">Prior to persistent connections, a separate TCP connection was established to fetch each URL, increasing the load on HTTP1606 <h1 id="rfc.section.7"><a href="#rfc.section.7">7.</a> <a id="connections" href="#connections">Connections</a></h1> 1607 <h2 id="rfc.section.7.1"><a href="#rfc.section.7.1">7.1</a> <a id="persistent.connections" href="#persistent.connections">Persistent Connections</a></h2> 1608 <h3 id="rfc.section.7.1.1"><a href="#rfc.section.7.1.1">7.1.1</a> <a id="persistent.purpose" href="#persistent.purpose">Purpose</a></h3> 1609 <p id="rfc.section.7.1.1.p.1">Prior to persistent connections, a separate TCP connection was established to fetch each URL, increasing the load on HTTP 1604 1610 servers and causing congestion on the Internet. The use of inline images and other associated data often require a client 1605 1611 to make multiple requests of the same server in a short amount of time. Analysis of these performance problems and results 1606 1612 from a prototype implementation are available <a href="#Pad1995" id="rfc.xref.Pad1995.1"><cite title="Improving HTTP Latency">[Pad1995]</cite></a> <a href="#Spe" id="rfc.xref.Spe.1"><cite title="Analysis of HTTP Performance Problems">[Spe]</cite></a>. Implementation experience and measurements of actual HTTP/1.1 implementations show good results <a href="#Nie1997" id="rfc.xref.Nie1997.1"><cite title="Network Performance Effects of HTTP/1.1, CSS1, and PNG">[Nie1997]</cite></a>. Alternatives have also been explored, for example, T/TCP <a href="#Tou1998" id="rfc.xref.Tou1998.1"><cite title="Analysis of HTTP Performance">[Tou1998]</cite></a>. 1607 1613 </p> 1608 <p id="rfc.section. 2.11.1.1.p.2">Persistent HTTP connections have a number of advantages: </p>1614 <p id="rfc.section.7.1.1.p.2">Persistent HTTP connections have a number of advantages: </p> 1609 1615 <ul> 1610 1616 <li>By opening and closing fewer TCP connections, CPU time is saved in routers and hosts (clients, servers, proxies, gateways, … … 1623 1629 </li> 1624 1630 </ul> 1625 <p id="rfc.section. 2.11.1.1.p.3">HTTP implementations <em class="bcp14">SHOULD</em> implement persistent connections.1626 </p> 1627 <h 4 id="rfc.section.2.11.1.2"><a href="#rfc.section.2.11.1.2">2.11.1.2</a> <a id="persistent.overall" href="#persistent.overall">Overall Operation</a></h4>1628 <p id="rfc.section. 2.11.1.2.p.1">A significant difference between HTTP/1.1 and earlier versions of HTTP is that persistent connections are the default behavior1631 <p id="rfc.section.7.1.1.p.3">HTTP implementations <em class="bcp14">SHOULD</em> implement persistent connections. 1632 </p> 1633 <h3 id="rfc.section.7.1.2"><a href="#rfc.section.7.1.2">7.1.2</a> <a id="persistent.overall" href="#persistent.overall">Overall Operation</a></h3> 1634 <p id="rfc.section.7.1.2.p.1">A significant difference between HTTP/1.1 and earlier versions of HTTP is that persistent connections are the default behavior 1629 1635 of any HTTP connection. That is, unless otherwise indicated, the client <em class="bcp14">SHOULD</em> assume that the server will maintain a persistent connection, even after error responses from the server. 1630 1636 </p> 1631 <p id="rfc.section. 2.11.1.2.p.2">Persistent connections provide a mechanism by which a client and a server can signal the close of a TCP connection. This signaling1632 takes place using the Connection header field (<a href="#header.connection" id="rfc.xref.header.connection.2" title="Connection">Section 3.1</a>). Once a close has been signaled, the client <em class="bcp14">MUST NOT</em> send any more requests on that connection.1633 </p> 1634 <h 5 id="rfc.section.2.11.1.2.1"><a href="#rfc.section.2.11.1.2.1">2.11.1.2.1</a> <a id="persistent.negotiation" href="#persistent.negotiation">Negotiation</a></h5>1635 <p id="rfc.section. 2.11.1.2.1.p.1">An HTTP/1.1 server <em class="bcp14">MAY</em> assume that a HTTP/1.1 client intends to maintain a persistent connection unless a Connection header including the connection-token1637 <p id="rfc.section.7.1.2.p.2">Persistent connections provide a mechanism by which a client and a server can signal the close of a TCP connection. This signaling 1638 takes place using the Connection header field (<a href="#header.connection" id="rfc.xref.header.connection.2" title="Connection">Section 9.1</a>). Once a close has been signaled, the client <em class="bcp14">MUST NOT</em> send any more requests on that connection. 1639 </p> 1640 <h4 id="rfc.section.7.1.2.1"><a href="#rfc.section.7.1.2.1">7.1.2.1</a> <a id="persistent.negotiation" href="#persistent.negotiation">Negotiation</a></h4> 1641 <p id="rfc.section.7.1.2.1.p.1">An HTTP/1.1 server <em class="bcp14">MAY</em> assume that a HTTP/1.1 client intends to maintain a persistent connection unless a Connection header including the connection-token 1636 1642 "close" was sent in the request. If the server chooses to close the connection immediately after sending the response, it <em class="bcp14">SHOULD</em> send a Connection header including the connection-token close. 1637 1643 </p> 1638 <p id="rfc.section. 2.11.1.2.1.p.2">An HTTP/1.1 client <em class="bcp14">MAY</em> expect a connection to remain open, but would decide to keep it open based on whether the response from a server contains1644 <p id="rfc.section.7.1.2.1.p.2">An HTTP/1.1 client <em class="bcp14">MAY</em> expect a connection to remain open, but would decide to keep it open based on whether the response from a server contains 1639 1645 a Connection header with the connection-token close. In case the client does not want to maintain a connection for more than 1640 1646 that request, it <em class="bcp14">SHOULD</em> send a Connection header including the connection-token close. 1641 1647 </p> 1642 <p id="rfc.section. 2.11.1.2.1.p.3">If either the client or the server sends the close token in the Connection header, that request becomes the last one for the1648 <p id="rfc.section.7.1.2.1.p.3">If either the client or the server sends the close token in the Connection header, that request becomes the last one for the 1643 1649 connection. 1644 1650 </p> 1645 <p id="rfc.section. 2.11.1.2.1.p.4">Clients and servers <em class="bcp14">SHOULD NOT</em> assume that a persistent connection is maintained for HTTP versions less than 1.1 unless it is explicitly signaled. See <a href="#compatibility.with.http.1.0.persistent.connections" title="Compatibility with HTTP/1.0 Persistent Connections">Appendix B.2</a> for more information on backward compatibility with HTTP/1.0 clients.1646 </p> 1647 <p id="rfc.section. 2.11.1.2.1.p.5">In order to remain persistent, all messages on the connection <em class="bcp14">MUST</em> have a self-defined message length (i.e., one not defined by closure of the connection), as described in <a href="#message.length" title="Message Length">Section 2.7.4</a>.1648 </p> 1649 <h 5 id="rfc.section.2.11.1.2.2"><a href="#rfc.section.2.11.1.2.2">2.11.1.2.2</a> <a id="pipelining" href="#pipelining">Pipelining</a></h5>1650 <p id="rfc.section. 2.11.1.2.2.p.1">A client that supports persistent connections <em class="bcp14">MAY</em> "pipeline" its requests (i.e., send multiple requests without waiting for each response). A server <em class="bcp14">MUST</em> send its responses to those requests in the same order that the requests were received.1651 </p> 1652 <p id="rfc.section. 2.11.1.2.2.p.2">Clients which assume persistent connections and pipeline immediately after connection establishment <em class="bcp14">SHOULD</em> be prepared to retry their connection if the first pipelined attempt fails. If a client does such a retry, it <em class="bcp14">MUST NOT</em> pipeline before it knows the connection is persistent. Clients <em class="bcp14">MUST</em> also be prepared to resend their requests if the server closes the connection before sending all of the corresponding responses.1653 </p> 1654 <p id="rfc.section. 2.11.1.2.2.p.3">Clients <em class="bcp14">SHOULD NOT</em> pipeline requests using non-idempotent methods or non-idempotent sequences of methods (see <a href="p2-semantics.html#idempotent.methods" title="Idempotent Methods">Section 7.1.2</a> of <a href="#Part2" id="rfc.xref.Part2.8"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>). Otherwise, a premature termination of the transport connection could lead to indeterminate results. A client wishing to1651 <p id="rfc.section.7.1.2.1.p.4">Clients and servers <em class="bcp14">SHOULD NOT</em> assume that a persistent connection is maintained for HTTP versions less than 1.1 unless it is explicitly signaled. See <a href="#compatibility.with.http.1.0.persistent.connections" title="Compatibility with HTTP/1.0 Persistent Connections">Appendix B.2</a> for more information on backward compatibility with HTTP/1.0 clients. 1652 </p> 1653 <p id="rfc.section.7.1.2.1.p.5">In order to remain persistent, all messages on the connection <em class="bcp14">MUST</em> have a self-defined message length (i.e., one not defined by closure of the connection), as described in <a href="#message.length" title="Message Length">Section 3.4</a>. 1654 </p> 1655 <h4 id="rfc.section.7.1.2.2"><a href="#rfc.section.7.1.2.2">7.1.2.2</a> <a id="pipelining" href="#pipelining">Pipelining</a></h4> 1656 <p id="rfc.section.7.1.2.2.p.1">A client that supports persistent connections <em class="bcp14">MAY</em> "pipeline" its requests (i.e., send multiple requests without waiting for each response). A server <em class="bcp14">MUST</em> send its responses to those requests in the same order that the requests were received. 1657 </p> 1658 <p id="rfc.section.7.1.2.2.p.2">Clients which assume persistent connections and pipeline immediately after connection establishment <em class="bcp14">SHOULD</em> be prepared to retry their connection if the first pipelined attempt fails. If a client does such a retry, it <em class="bcp14">MUST NOT</em> pipeline before it knows the connection is persistent. Clients <em class="bcp14">MUST</em> also be prepared to resend their requests if the server closes the connection before sending all of the corresponding responses. 1659 </p> 1660 <p id="rfc.section.7.1.2.2.p.3">Clients <em class="bcp14">SHOULD NOT</em> pipeline requests using non-idempotent methods or non-idempotent sequences of methods (see <a href="p2-semantics.html#idempotent.methods" title="Idempotent Methods">Section 7.1.2</a> of <a href="#Part2" id="rfc.xref.Part2.8"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>). Otherwise, a premature termination of the transport connection could lead to indeterminate results. A client wishing to 1655 1661 send a non-idempotent request <em class="bcp14">SHOULD</em> wait to send that request until it has received the response status for the previous request. 1656 1662 </p> 1657 <h 4 id="rfc.section.2.11.1.3"><a href="#rfc.section.2.11.1.3">2.11.1.3</a> <a id="persistent.proxy" href="#persistent.proxy">Proxy Servers</a></h4>1658 <p id="rfc.section. 2.11.1.3.p.1">It is especially important that proxies correctly implement the properties of the Connection header field as specified in <a href="#header.connection" id="rfc.xref.header.connection.3" title="Connection">Section 3.1</a>.1659 </p> 1660 <p id="rfc.section. 2.11.1.3.p.2">The proxy server <em class="bcp14">MUST</em> signal persistent connections separately with its clients and the origin servers (or other proxy servers) that it connects1663 <h3 id="rfc.section.7.1.3"><a href="#rfc.section.7.1.3">7.1.3</a> <a id="persistent.proxy" href="#persistent.proxy">Proxy Servers</a></h3> 1664 <p id="rfc.section.7.1.3.p.1">It is especially important that proxies correctly implement the properties of the Connection header field as specified in <a href="#header.connection" id="rfc.xref.header.connection.3" title="Connection">Section 9.1</a>. 1665 </p> 1666 <p id="rfc.section.7.1.3.p.2">The proxy server <em class="bcp14">MUST</em> signal persistent connections separately with its clients and the origin servers (or other proxy servers) that it connects 1661 1667 to. Each persistent connection applies to only one transport link. 1662 1668 </p> 1663 <p id="rfc.section. 2.11.1.3.p.3">A proxy server <em class="bcp14">MUST NOT</em> establish a HTTP/1.1 persistent connection with an HTTP/1.0 client (but see <a href="http://tools.ietf.org/html/rfc2068#section-19.7.1">Section 19.7.1</a> of <a href="#RFC2068" id="rfc.xref.RFC2068.2"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2068]</cite></a> for information and discussion of the problems with the Keep-Alive header implemented by many HTTP/1.0 clients).1664 </p> 1665 <h 4 id="rfc.section.2.11.1.4"><a href="#rfc.section.2.11.1.4">2.11.1.4</a> <a id="persistent.practical" href="#persistent.practical">Practical Considerations</a></h4>1666 <p id="rfc.section. 2.11.1.4.p.1">Servers will usually have some time-out value beyond which they will no longer maintain an inactive connection. Proxy servers1669 <p id="rfc.section.7.1.3.p.3">A proxy server <em class="bcp14">MUST NOT</em> establish a HTTP/1.1 persistent connection with an HTTP/1.0 client (but see <a href="http://tools.ietf.org/html/rfc2068#section-19.7.1">Section 19.7.1</a> of <a href="#RFC2068" id="rfc.xref.RFC2068.2"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2068]</cite></a> for information and discussion of the problems with the Keep-Alive header implemented by many HTTP/1.0 clients). 1670 </p> 1671 <h3 id="rfc.section.7.1.4"><a href="#rfc.section.7.1.4">7.1.4</a> <a id="persistent.practical" href="#persistent.practical">Practical Considerations</a></h3> 1672 <p id="rfc.section.7.1.4.p.1">Servers will usually have some time-out value beyond which they will no longer maintain an inactive connection. Proxy servers 1667 1673 might make this a higher value since it is likely that the client will be making more connections through the same server. 1668 1674 The use of persistent connections places no requirements on the length (or existence) of this time-out for either the client 1669 1675 or the server. 1670 1676 </p> 1671 <p id="rfc.section. 2.11.1.4.p.2">When a client or server wishes to time-out it <em class="bcp14">SHOULD</em> issue a graceful close on the transport connection. Clients and servers <em class="bcp14">SHOULD</em> both constantly watch for the other side of the transport close, and respond to it as appropriate. If a client or server does1677 <p id="rfc.section.7.1.4.p.2">When a client or server wishes to time-out it <em class="bcp14">SHOULD</em> issue a graceful close on the transport connection. Clients and servers <em class="bcp14">SHOULD</em> both constantly watch for the other side of the transport close, and respond to it as appropriate. If a client or server does 1672 1678 not detect the other side's close promptly it could cause unnecessary resource drain on the network. 1673 1679 </p> 1674 <p id="rfc.section. 2.11.1.4.p.3">A client, server, or proxy <em class="bcp14">MAY</em> close the transport connection at any time. For example, a client might have started to send a new request at the same time1680 <p id="rfc.section.7.1.4.p.3">A client, server, or proxy <em class="bcp14">MAY</em> close the transport connection at any time. For example, a client might have started to send a new request at the same time 1675 1681 that the server has decided to close the "idle" connection. From the server's point of view, the connection is being closed 1676 1682 while it was idle, but from the client's point of view, a request is in progress. 1677 1683 </p> 1678 <p id="rfc.section. 2.11.1.4.p.4">This means that clients, servers, and proxies <em class="bcp14">MUST</em> be able to recover from asynchronous close events. Client software <em class="bcp14">SHOULD</em> reopen the transport connection and retransmit the aborted sequence of requests without user interaction so long as the request1684 <p id="rfc.section.7.1.4.p.4">This means that clients, servers, and proxies <em class="bcp14">MUST</em> be able to recover from asynchronous close events. Client software <em class="bcp14">SHOULD</em> reopen the transport connection and retransmit the aborted sequence of requests without user interaction so long as the request 1679 1685 sequence is idempotent (see <a href="p2-semantics.html#idempotent.methods" title="Idempotent Methods">Section 7.1.2</a> of <a href="#Part2" id="rfc.xref.Part2.9"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>). Non-idempotent methods or sequences <em class="bcp14">MUST NOT</em> be automatically retried, although user agents <em class="bcp14">MAY</em> offer a human operator the choice of retrying the request(s). Confirmation by user-agent software with semantic understanding 1680 1686 of the application <em class="bcp14">MAY</em> substitute for user confirmation. The automatic retry <em class="bcp14">SHOULD NOT</em> be repeated if the second sequence of requests fails. 1681 1687 </p> 1682 <p id="rfc.section. 2.11.1.4.p.5">Servers <em class="bcp14">SHOULD</em> always respond to at least one request per connection, if at all possible. Servers <em class="bcp14">SHOULD NOT</em> close a connection in the middle of transmitting a response, unless a network or client failure is suspected.1683 </p> 1684 <p id="rfc.section. 2.11.1.4.p.6">Clients that use persistent connections <em class="bcp14">SHOULD</em> limit the number of simultaneous connections that they maintain to a given server. A single-user client <em class="bcp14">SHOULD NOT</em> maintain more than 2 connections with any server or proxy. A proxy <em class="bcp14">SHOULD</em> use up to 2*N connections to another server or proxy, where N is the number of simultaneously active users. These guidelines1688 <p id="rfc.section.7.1.4.p.5">Servers <em class="bcp14">SHOULD</em> always respond to at least one request per connection, if at all possible. Servers <em class="bcp14">SHOULD NOT</em> close a connection in the middle of transmitting a response, unless a network or client failure is suspected. 1689 </p> 1690 <p id="rfc.section.7.1.4.p.6">Clients that use persistent connections <em class="bcp14">SHOULD</em> limit the number of simultaneous connections that they maintain to a given server. A single-user client <em class="bcp14">SHOULD NOT</em> maintain more than 2 connections with any server or proxy. A proxy <em class="bcp14">SHOULD</em> use up to 2*N connections to another server or proxy, where N is the number of simultaneously active users. These guidelines 1685 1691 are intended to improve HTTP response times and avoid congestion. 1686 1692 </p> 1687 <h 3 id="rfc.section.2.11.2"><a href="#rfc.section.2.11.2">2.11.2</a> <a id="message.transmission.requirements" href="#message.transmission.requirements">Message Transmission Requirements</a></h3>1688 <h 4 id="rfc.section.2.11.2.1"><a href="#rfc.section.2.11.2.1">2.11.2.1</a> <a id="persistent.flow" href="#persistent.flow">Persistent Connections and Flow Control</a></h4>1689 <p id="rfc.section. 2.11.2.1.p.1">HTTP/1.1 servers <em class="bcp14">SHOULD</em> maintain persistent connections and use TCP's flow control mechanisms to resolve temporary overloads, rather than terminating1693 <h2 id="rfc.section.7.2"><a href="#rfc.section.7.2">7.2</a> <a id="message.transmission.requirements" href="#message.transmission.requirements">Message Transmission Requirements</a></h2> 1694 <h3 id="rfc.section.7.2.1"><a href="#rfc.section.7.2.1">7.2.1</a> <a id="persistent.flow" href="#persistent.flow">Persistent Connections and Flow Control</a></h3> 1695 <p id="rfc.section.7.2.1.p.1">HTTP/1.1 servers <em class="bcp14">SHOULD</em> maintain persistent connections and use TCP's flow control mechanisms to resolve temporary overloads, rather than terminating 1690 1696 connections with the expectation that clients will retry. The latter technique can exacerbate network congestion. 1691 1697 </p> 1692 <h 4 id="rfc.section.2.11.2.2"><a href="#rfc.section.2.11.2.2">2.11.2.2</a> <a id="persistent.monitor" href="#persistent.monitor">Monitoring Connections for Error Status Messages</a></h4>1693 <p id="rfc.section. 2.11.2.2.p.1">An HTTP/1.1 (or later) client sending a message-body <em class="bcp14">SHOULD</em> monitor the network connection for an error status while it is transmitting the request. If the client sees an error status,1694 it <em class="bcp14">SHOULD</em> immediately cease transmitting the body. If the body is being sent using a "chunked" encoding (<a href="#transfer.codings" title="Transfer Codings">Section 2.10.2</a>), a zero length chunk and empty trailer <em class="bcp14">MAY</em> be used to prematurely mark the end of the message. If the body was preceded by a Content-Length header, the client <em class="bcp14">MUST</em> close the connection.1695 </p> 1696 <h 4 id="rfc.section.2.11.2.3"><a href="#rfc.section.2.11.2.3">2.11.2.3</a> <a id="use.of.the.100.status" href="#use.of.the.100.status">Use of the 100 (Continue) Status</a></h4>1697 <p id="rfc.section. 2.11.2.3.p.1">The purpose of the 100 (Continue) status (see <a href="p2-semantics.html#status.100" title="100 Continue">Section 8.1.1</a> of <a href="#Part2" id="rfc.xref.Part2.10"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>) is to allow a client that is sending a request message with a request body to determine if the origin server is willing1698 <h3 id="rfc.section.7.2.2"><a href="#rfc.section.7.2.2">7.2.2</a> <a id="persistent.monitor" href="#persistent.monitor">Monitoring Connections for Error Status Messages</a></h3> 1699 <p id="rfc.section.7.2.2.p.1">An HTTP/1.1 (or later) client sending a message-body <em class="bcp14">SHOULD</em> monitor the network connection for an error status while it is transmitting the request. If the client sees an error status, 1700 it <em class="bcp14">SHOULD</em> immediately cease transmitting the body. If the body is being sent using a "chunked" encoding (<a href="#transfer.codings" title="Transfer Codings">Section 6.2</a>), a zero length chunk and empty trailer <em class="bcp14">MAY</em> be used to prematurely mark the end of the message. If the body was preceded by a Content-Length header, the client <em class="bcp14">MUST</em> close the connection. 1701 </p> 1702 <h3 id="rfc.section.7.2.3"><a href="#rfc.section.7.2.3">7.2.3</a> <a id="use.of.the.100.status" href="#use.of.the.100.status">Use of the 100 (Continue) Status</a></h3> 1703 <p id="rfc.section.7.2.3.p.1">The purpose of the 100 (Continue) status (see <a href="p2-semantics.html#status.100" title="100 Continue">Section 8.1.1</a> of <a href="#Part2" id="rfc.xref.Part2.10"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>) is to allow a client that is sending a request message with a request body to determine if the origin server is willing 1698 1704 to accept the request (based on the request headers) before the client sends the request body. In some cases, it might either 1699 1705 be inappropriate or highly inefficient for the client to send the body if the server will reject the message without looking 1700 1706 at the body. 1701 1707 </p> 1702 <p id="rfc.section. 2.11.2.3.p.2">Requirements for HTTP/1.1 clients: </p>1708 <p id="rfc.section.7.2.3.p.2">Requirements for HTTP/1.1 clients: </p> 1703 1709 <ul> 1704 1710 <li>If a client will wait for a 100 (Continue) response before sending the request body, it <em class="bcp14">MUST</em> send an Expect request-header field (<a href="p2-semantics.html#header.expect" title="Expect">Section 9.2</a> of <a href="#Part2" id="rfc.xref.Part2.11"><cite title="HTTP/1.1, part 2: Message Semantics">[Part2]</cite></a>) with the "100-continue" expectation. … … 1707 1713 </li> 1708 1714 </ul> 1709 <p id="rfc.section. 2.11.2.3.p.3">Because of the presence of older implementations, the protocol allows ambiguous situations in which a client may send "Expect:1715 <p id="rfc.section.7.2.3.p.3">Because of the presence of older implementations, the protocol allows ambiguous situations in which a client may send "Expect: 1710 1716 100-continue" without receiving either a 417 (Expectation Failed) status or a 100 (Continue) status. Therefore, when a client 1711 1717 sends this header field to an origin server (possibly via a proxy) from which it has never seen a 100 (Continue) status, the 1712 1718 client <em class="bcp14">SHOULD NOT</em> wait for an indefinite period before sending the request body. 1713 1719 </p> 1714 <p id="rfc.section. 2.11.2.3.p.4">Requirements for HTTP/1.1 origin servers: </p>1720 <p id="rfc.section.7.2.3.p.4">Requirements for HTTP/1.1 origin servers: </p> 1715 1721 <ul> 1716 1722 <li>Upon receiving a request which includes an Expect request-header field with the "100-continue" expectation, an origin server <em class="bcp14">MUST</em> either respond with 100 (Continue) status and continue to read from the input stream, or respond with a final status code. … … 1736 1742 </li> 1737 1743 </ul> 1738 <p id="rfc.section. 2.11.2.3.p.5">Requirements for HTTP/1.1 proxies: </p>1744 <p id="rfc.section.7.2.3.p.5">Requirements for HTTP/1.1 proxies: </p> 1739 1745 <ul> 1740 1746 <li>If a proxy receives a request that includes an Expect request-header field with the "100-continue" expectation, and the proxy … … 1751 1757 </li> 1752 1758 </ul> 1753 <h 4 id="rfc.section.2.11.2.4"><a href="#rfc.section.2.11.2.4">2.11.2.4</a> <a id="connection.premature" href="#connection.premature">Client Behavior if Server Prematurely Closes Connection</a></h4>1754 <p id="rfc.section. 2.11.2.4.p.1">If an HTTP/1.1 client sends a request which includes a request body, but which does not include an Expect request-header field1759 <h3 id="rfc.section.7.2.4"><a href="#rfc.section.7.2.4">7.2.4</a> <a id="connection.premature" href="#connection.premature">Client Behavior if Server Prematurely Closes Connection</a></h3> 1760 <p id="rfc.section.7.2.4.p.1">If an HTTP/1.1 client sends a request which includes a request body, but which does not include an Expect request-header field 1755 1761 with the "100-continue" expectation, and if the client is not directly connected to an HTTP/1.1 origin server, and if the 1756 1762 client sees the connection close before receiving any status from the server, the client <em class="bcp14">SHOULD</em> retry the request. If the client does retry this request, it <em class="bcp14">MAY</em> use the following "binary exponential backoff" algorithm to be assured of obtaining a reliable response: … … 1769 1775 </li> 1770 1776 </ol> 1771 <p id="rfc.section. 2.11.2.4.p.2">If at any point an error status is received, the client </p>1777 <p id="rfc.section.7.2.4.p.2">If at any point an error status is received, the client </p> 1772 1778 <ul> 1773 1779 <li><em class="bcp14">SHOULD NOT</em> continue and … … 1776 1782 </li> 1777 1783 </ul> 1778 <h 2 id="rfc.section.2.12"><a href="#rfc.section.2.12">2.12</a> <a id="misc" href="#misc">Miscellaneous notes that may disappear</a></h2>1779 <h 3 id="rfc.section.2.12.1"><a href="#rfc.section.2.12.1">2.12.1</a> <a id="scheme.aliases" href="#scheme.aliases">Scheme aliases considered harmful</a></h3>1780 <p id="rfc.section. 2.12.1.p.1"> <span class="comment" id="rfc.comment.2">[<a href="#rfc.comment.2" class="smpl">rfc.comment.2</a>: TBS: describe why aliases like webcal are harmful.]</span>1781 </p> 1782 <h2 id="rfc.section. 2.13"><a href="#rfc.section.2.13">2.13</a> <a id="http.proxy" href="#http.proxy">Use of HTTP for proxy communication</a></h2>1783 <p id="rfc.section. 2.13.p.1"> <span class="comment" id="rfc.comment.3">[<a href="#rfc.comment.3" class="smpl">rfc.comment.3</a>: TBD: Configured to use HTTP to proxy HTTP or other protocols.]</span>1784 </p> 1785 <h2 id="rfc.section. 2.14"><a href="#rfc.section.2.14">2.14</a> <a id="http.intercept" href="#http.intercept">Interception of HTTP for access control</a></h2>1786 <p id="rfc.section. 2.14.p.1"> <span class="comment" id="rfc.comment.4">[<a href="#rfc.comment.4" class="smpl">rfc.comment.4</a>: TBD: Interception of HTTP traffic for initiating access control.]</span>1787 </p> 1788 <h2 id="rfc.section. 2.15"><a href="#rfc.section.2.15">2.15</a> <a id="http.others" href="#http.others">Use of HTTP by other protocols</a></h2>1789 <p id="rfc.section. 2.15.p.1"> <span class="comment" id="rfc.comment.5">[<a href="#rfc.comment.5" class="smpl">rfc.comment.5</a>: TBD: Profiles of HTTP defined by other protocol. Extensions of HTTP like WebDAV.]</span>1790 </p> 1791 <h2 id="rfc.section. 2.16"><a href="#rfc.section.2.16">2.16</a> <a id="http.media" href="#http.media">Use of HTTP by media type specification</a></h2>1792 <p id="rfc.section. 2.16.p.1"> <span class="comment" id="rfc.comment.6">[<a href="#rfc.comment.6" class="smpl">rfc.comment.6</a>: TBD: Instructions on composing HTTP requests via hypertext formats.]</span>1793 </p> 1794 <h1 id="rfc.section. 3"><a href="#rfc.section.3">3.</a> <a id="header.field.definitions" href="#header.field.definitions">Header Field Definitions</a></h1>1795 <p id="rfc.section. 3.p.1">This section defines the syntax and semantics of HTTP/1.1 header fields related to message framing and transport protocols.</p>1796 <p id="rfc.section. 3.p.2">For entity-header fields, both sender and recipient refer to either the client or the server, depending on who sends and who1784 <h1 id="rfc.section.8"><a href="#rfc.section.8">8.</a> <a id="misc" href="#misc">Miscellaneous notes that may disappear</a></h1> 1785 <h2 id="rfc.section.8.1"><a href="#rfc.section.8.1">8.1</a> <a id="scheme.aliases" href="#scheme.aliases">Scheme aliases considered harmful</a></h2> 1786 <p id="rfc.section.8.1.p.1"> <span class="comment" id="rfc.comment.2">[<a href="#rfc.comment.2" class="smpl">rfc.comment.2</a>: TBS: describe why aliases like webcal are harmful.]</span> 1787 </p> 1788 <h2 id="rfc.section.8.2"><a href="#rfc.section.8.2">8.2</a> <a id="http.proxy" href="#http.proxy">Use of HTTP for proxy communication</a></h2> 1789 <p id="rfc.section.8.2.p.1"> <span class="comment" id="rfc.comment.3">[<a href="#rfc.comment.3" class="smpl">rfc.comment.3</a>: TBD: Configured to use HTTP to proxy HTTP or other protocols.]</span> 1790 </p> 1791 <h2 id="rfc.section.8.3"><a href="#rfc.section.8.3">8.3</a> <a id="http.intercept" href="#http.intercept">Interception of HTTP for access control</a></h2> 1792 <p id="rfc.section.8.3.p.1"> <span class="comment" id="rfc.comment.4">[<a href="#rfc.comment.4" class="smpl">rfc.comment.4</a>: TBD: Interception of HTTP traffic for initiating access control.]</span> 1793 </p> 1794 <h2 id="rfc.section.8.4"><a href="#rfc.section.8.4">8.4</a> <a id="http.others" href="#http.others">Use of HTTP by other protocols</a></h2> 1795 <p id="rfc.section.8.4.p.1"> <span class="comment" id="rfc.comment.5">[<a href="#rfc.comment.5" class="smpl">rfc.comment.5</a>: TBD: Profiles of HTTP defined by other protocol. Extensions of HTTP like WebDAV.]</span> 1796 </p> 1797 <h2 id="rfc.section.8.5"><a href="#rfc.section.8.5">8.5</a> <a id="http.media" href="#http.media">Use of HTTP by media type specification</a></h2> 1798 <p id="rfc.section.8.5.p.1"> <span class="comment" id="rfc.comment.6">[<a href="#rfc.comment.6" class="smpl">rfc.comment.6</a>: TBD: Instructions on composing HTTP requests via hypertext formats.]</span> 1799 </p> 1800 <h1 id="rfc.section.9"><a href="#rfc.section.9">9.</a> <a id="header.field.definitions" href="#header.field.definitions">Header Field Definitions</a></h1> 1801 <p id="rfc.section.9.p.1">This section defines the syntax and semantics of HTTP/1.1 header fields related to message framing and transport protocols.</p> 1802 <p id="rfc.section.9.p.2">For entity-header fields, both sender and recipient refer to either the client or the server, depending on who sends and who 1797 1803 receives the entity. 1798 1804 </p> 1799 1805 <div id="rfc.iref.c.11"></div> 1800 1806 <div id="rfc.iref.h.6"></div> 1801 <h2 id="rfc.section. 3.1"><a href="#rfc.section.3.1">3.1</a> <a id="header.connection" href="#header.connection">Connection</a></h2>1802 <p id="rfc.section. 3.1.p.1">The general-header field "Connection" allows the sender to specify options that are desired for that particular connection1807 <h2 id="rfc.section.9.1"><a href="#rfc.section.9.1">9.1</a> <a id="header.connection" href="#header.connection">Connection</a></h2> 1808 <p id="rfc.section.9.1.p.1">The general-header field "Connection" allows the sender to specify options that are desired for that particular connection 1803 1809 and <em class="bcp14">MUST NOT</em> be communicated by proxies over further connections. 1804 1810 </p> 1805 <p id="rfc.section. 3.1.p.2">The Connection header's value has the following grammar:</p>1811 <p id="rfc.section.9.1.p.2">The Connection header's value has the following grammar:</p> 1806 1812 <div id="rfc.figure.u.52"></div><pre class="inline"><span id="rfc.iref.g.90"></span><span id="rfc.iref.g.91"></span><span id="rfc.iref.g.92"></span> <a href="#header.connection" class="smpl">Connection</a> = "Connection" ":" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#header.connection" class="smpl">Connection-v</a> 1807 1813 <a href="#header.connection" class="smpl">Connection-v</a> = 1#<a href="#header.connection" class="smpl">connection-token</a> 1808 1814 <a href="#header.connection" class="smpl">connection-token</a> = <a href="#rule.token.separators" class="smpl">token</a> 1809 </pre><p id="rfc.section. 3.1.p.4">HTTP/1.1 proxies <em class="bcp14">MUST</em> parse the Connection header field before a message is forwarded and, for each connection-token in this field, remove any header1815 </pre><p id="rfc.section.9.1.p.4">HTTP/1.1 proxies <em class="bcp14">MUST</em> parse the Connection header field before a message is forwarded and, for each connection-token in this field, remove any header 1810 1816 field(s) from the message with the same name as the connection-token. Connection options are signaled by the presence of a 1811 1817 connection-token in the Connection header field, not by any corresponding additional header field(s), since the additional 1812 1818 header field may not be sent if there are no parameters associated with that connection option. 1813 1819 </p> 1814 <p id="rfc.section. 3.1.p.5">Message headers listed in the Connection header <em class="bcp14">MUST NOT</em> include end-to-end headers, such as Cache-Control.1815 </p> 1816 <p id="rfc.section. 3.1.p.6">HTTP/1.1 defines the "close" connection option for the sender to signal that the connection will be closed after completion1820 <p id="rfc.section.9.1.p.5">Message headers listed in the Connection header <em class="bcp14">MUST NOT</em> include end-to-end headers, such as Cache-Control. 1821 </p> 1822 <p id="rfc.section.9.1.p.6">HTTP/1.1 defines the "close" connection option for the sender to signal that the connection will be closed after completion 1817 1823 of the response. For example, 1818 1824 </p> 1819 1825 <div id="rfc.figure.u.53"></div><pre class="text"> Connection: close 1820 </pre><p id="rfc.section. 3.1.p.8">in either the request or the response header fields indicates that the connection <em class="bcp14">SHOULD NOT</em> be considered `persistent' (<a href="#persistent.connections" title="Persistent Connections">Section 2.11.1</a>) after the current request/response is complete.1821 </p> 1822 <p id="rfc.section. 3.1.p.9">An HTTP/1.1 client that does not support persistent connections <em class="bcp14">MUST</em> include the "close" connection option in every request message.1823 </p> 1824 <p id="rfc.section. 3.1.p.10">An HTTP/1.1 server that does not support persistent connections <em class="bcp14">MUST</em> include the "close" connection option in every response message that does not have a 1xx (informational) status code.1825 </p> 1826 <p id="rfc.section. 3.1.p.11">A system receiving an HTTP/1.0 (or lower-version) message that includes a Connection header <em class="bcp14">MUST</em>, for each connection-token in this field, remove and ignore any header field(s) from the message with the same name as the1826 </pre><p id="rfc.section.9.1.p.8">in either the request or the response header fields indicates that the connection <em class="bcp14">SHOULD NOT</em> be considered `persistent' (<a href="#persistent.connections" title="Persistent Connections">Section 7.1</a>) after the current request/response is complete. 1827 </p> 1828 <p id="rfc.section.9.1.p.9">An HTTP/1.1 client that does not support persistent connections <em class="bcp14">MUST</em> include the "close" connection option in every request message. 1829 </p> 1830 <p id="rfc.section.9.1.p.10">An HTTP/1.1 server that does not support persistent connections <em class="bcp14">MUST</em> include the "close" connection option in every response message that does not have a 1xx (informational) status code. 1831 </p> 1832 <p id="rfc.section.9.1.p.11">A system receiving an HTTP/1.0 (or lower-version) message that includes a Connection header <em class="bcp14">MUST</em>, for each connection-token in this field, remove and ignore any header field(s) from the message with the same name as the 1827 1833 connection-token. This protects against mistaken forwarding of such header fields by pre-HTTP/1.1 proxies. See <a href="#compatibility.with.http.1.0.persistent.connections" title="Compatibility with HTTP/1.0 Persistent Connections">Appendix B.2</a>. 1828 1834 </p> 1829 1835 <div id="rfc.iref.c.12"></div> 1830 1836 <div id="rfc.iref.h.7"></div> 1831 <h2 id="rfc.section. 3.2"><a href="#rfc.section.3.2">3.2</a> <a id="header.content-length" href="#header.content-length">Content-Length</a></h2>1832 <p id="rfc.section. 3.2.p.1">The entity-header field "Content-Length" indicates the size of the entity-body, in number of OCTETs, sent to the recipient1837 <h2 id="rfc.section.9.2"><a href="#rfc.section.9.2">9.2</a> <a id="header.content-length" href="#header.content-length">Content-Length</a></h2> 1838 <p id="rfc.section.9.2.p.1">The entity-header field "Content-Length" indicates the size of the entity-body, in number of OCTETs, sent to the recipient 1833 1839 or, in the case of the HEAD method, the size of the entity-body that would have been sent had the request been a GET. 1834 1840 </p> 1835 1841 <div id="rfc.figure.u.54"></div><pre class="inline"><span id="rfc.iref.g.93"></span><span id="rfc.iref.g.94"></span> <a href="#header.content-length" class="smpl">Content-Length</a> = "Content-Length" ":" <a href="#rule.whitespace" class="smpl">OWS</a> 1*<a href="#header.content-length" class="smpl">Content-Length-v</a> 1836 1842 <a href="#header.content-length" class="smpl">Content-Length-v</a> = 1*<a href="#core.rules" class="smpl">DIGIT</a> 1837 </pre><p id="rfc.section. 3.2.p.3">An example is</p>1843 </pre><p id="rfc.section.9.2.p.3">An example is</p> 1838 1844 <div id="rfc.figure.u.55"></div><pre class="text"> Content-Length: 3495 1839 </pre><p id="rfc.section. 3.2.p.5">Applications <em class="bcp14">SHOULD</em> use this field to indicate the transfer-length of the message-body, unless this is prohibited by the rules in <a href="#message.length" title="Message Length">Section 2.7.4</a>.1840 </p> 1841 <p id="rfc.section. 3.2.p.6">Any Content-Length greater than or equal to zero is a valid value. <a href="#message.length" title="Message Length">Section 2.7.4</a> describes how to determine the length of a message-body if a Content-Length is not given.1842 </p> 1843 <p id="rfc.section. 3.2.p.7">Note that the meaning of this field is significantly different from the corresponding definition in MIME, where it is an optional1845 </pre><p id="rfc.section.9.2.p.5">Applications <em class="bcp14">SHOULD</em> use this field to indicate the transfer-length of the message-body, unless this is prohibited by the rules in <a href="#message.length" title="Message Length">Section 3.4</a>. 1846 </p> 1847 <p id="rfc.section.9.2.p.6">Any Content-Length greater than or equal to zero is a valid value. <a href="#message.length" title="Message Length">Section 3.4</a> describes how to determine the length of a message-body if a Content-Length is not given. 1848 </p> 1849 <p id="rfc.section.9.2.p.7">Note that the meaning of this field is significantly different from the corresponding definition in MIME, where it is an optional 1844 1850 field used within the "message/external-body" content-type. In HTTP, it <em class="bcp14">SHOULD</em> be sent whenever the message's length can be determined prior to being transferred, unless this is prohibited by the rules 1845 in <a href="#message.length" title="Message Length">Section 2.7.4</a>.1851 in <a href="#message.length" title="Message Length">Section 3.4</a>. 1846 1852 </p> 1847 1853 <div id="rfc.iref.d.3"></div> 1848 1854 <div id="rfc.iref.h.8"></div> 1849 <h2 id="rfc.section. 3.3"><a href="#rfc.section.3.3">3.3</a> <a id="header.date" href="#header.date">Date</a></h2>1850 <p id="rfc.section. 3.3.p.1">The general-header field "Date" represents the date and time at which the message was originated, having the same semantics1851 as orig-date in <a href="http://tools.ietf.org/html/rfc5322#section-3.6.1">Section 3.6.1</a> of <a href="#RFC5322" id="rfc.xref.RFC5322.4"><cite title="Internet Message Format">[RFC5322]</cite></a>. The field value is an HTTP-date, as described in <a href="#date.time.formats.full.date" title="Date/Time Formats: Full Date">Section 2.10.1</a>; it <em class="bcp14">MUST</em> be sent in rfc1123-date format.1855 <h2 id="rfc.section.9.3"><a href="#rfc.section.9.3">9.3</a> <a id="header.date" href="#header.date">Date</a></h2> 1856 <p id="rfc.section.9.3.p.1">The general-header field "Date" represents the date and time at which the message was originated, having the same semantics 1857 as orig-date in <a href="http://tools.ietf.org/html/rfc5322#section-3.6.1">Section 3.6.1</a> of <a href="#RFC5322" id="rfc.xref.RFC5322.4"><cite title="Internet Message Format">[RFC5322]</cite></a>. The field value is an HTTP-date, as described in <a href="#date.time.formats.full.date" title="Date/Time Formats: Full Date">Section 6.1</a>; it <em class="bcp14">MUST</em> be sent in rfc1123-date format. 1852 1858 </p> 1853 1859 <div id="rfc.figure.u.56"></div><pre class="inline"><span id="rfc.iref.g.95"></span><span id="rfc.iref.g.96"></span> <a href="#header.date" class="smpl">Date</a> = "Date" ":" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#header.date" class="smpl">Date-v</a> 1854 1860 <a href="#header.date" class="smpl">Date-v</a> = <a href="#date.time.formats.full.date" class="smpl">HTTP-date</a> 1855 </pre><p id="rfc.section. 3.3.p.3">An example is</p>1861 </pre><p id="rfc.section.9.3.p.3">An example is</p> 1856 1862 <div id="rfc.figure.u.57"></div><pre class="text"> Date: Tue, 15 Nov 1994 08:12:31 GMT 1857 </pre><p id="rfc.section. 3.3.p.5">Origin servers <em class="bcp14">MUST</em> include a Date header field in all responses, except in these cases:1863 </pre><p id="rfc.section.9.3.p.5">Origin servers <em class="bcp14">MUST</em> include a Date header field in all responses, except in these cases: 1858 1864 </p> 1859 1865 <ol> … … 1863 1869 is inconvenient or impossible to generate a valid Date. 1864 1870 </li> 1865 <li>If the server does not have a clock that can provide a reasonable approximation of the current time, its responses <em class="bcp14">MUST NOT</em> include a Date header field. In this case, the rules in <a href="#clockless.origin.server.operation" title="Clockless Origin Server Operation">Section 3.3.1</a> <em class="bcp14">MUST</em> be followed.1871 <li>If the server does not have a clock that can provide a reasonable approximation of the current time, its responses <em class="bcp14">MUST NOT</em> include a Date header field. In this case, the rules in <a href="#clockless.origin.server.operation" title="Clockless Origin Server Operation">Section 9.3.1</a> <em class="bcp14">MUST</em> be followed. 1866 1872 </li> 1867 1873 </ol> 1868 <p id="rfc.section. 3.3.p.6">A received message that does not have a Date header field <em class="bcp14">MUST</em> be assigned one by the recipient if the message will be cached by that recipient or gatewayed via a protocol which requires1874 <p id="rfc.section.9.3.p.6">A received message that does not have a Date header field <em class="bcp14">MUST</em> be assigned one by the recipient if the message will be cached by that recipient or gatewayed via a protocol which requires 1869 1875 a Date. An HTTP implementation without a clock <em class="bcp14">MUST NOT</em> cache responses without revalidating them on every use. An HTTP cache, especially a shared cache, <em class="bcp14">SHOULD</em> use a mechanism, such as NTP <a href="#RFC1305" id="rfc.xref.RFC1305.1"><cite title="Network Time Protocol (Version 3) Specification, Implementation">[RFC1305]</cite></a>, to synchronize its clock with a reliable external standard. 1870 1876 </p> 1871 <p id="rfc.section. 3.3.p.7">Clients <em class="bcp14">SHOULD</em> only send a Date header field in messages that include an entity-body, as in the case of the PUT and POST requests, and even1877 <p id="rfc.section.9.3.p.7">Clients <em class="bcp14">SHOULD</em> only send a Date header field in messages that include an entity-body, as in the case of the PUT and POST requests, and even 1872 1878 then it is optional. A client without a clock <em class="bcp14">MUST NOT</em> send a Date header field in a request. 1873 1879 </p> 1874 <p id="rfc.section. 3.3.p.8">The HTTP-date sent in a Date header <em class="bcp14">SHOULD NOT</em> represent a date and time subsequent to the generation of the message. It <em class="bcp14">SHOULD</em> represent the best available approximation of the date and time of message generation, unless the implementation has no means1880 <p id="rfc.section.9.3.p.8">The HTTP-date sent in a Date header <em class="bcp14">SHOULD NOT</em> represent a date and time subsequent to the generation of the message. It <em class="bcp14">SHOULD</em> represent the best available approximation of the date and time of message generation, unless the implementation has no means 1875 1881 of generating a reasonably accurate date and time. In theory, the date ought to represent the moment just before the entity 1876 1882 is generated. In practice, the date can be generated at any time during the message origination without affecting its semantic 1877 1883 value. 1878 1884 </p> 1879 <h3 id="rfc.section. 3.3.1"><a href="#rfc.section.3.3.1">3.3.1</a> <a id="clockless.origin.server.operation" href="#clockless.origin.server.operation">Clockless Origin Server Operation</a></h3>1880 <p id="rfc.section. 3.3.1.p.1">Some origin server implementations might not have a clock available. An origin server without a clock <em class="bcp14">MUST NOT</em> assign Expires or Last-Modified values to a response, unless these values were associated with the resource by a system or1885 <h3 id="rfc.section.9.3.1"><a href="#rfc.section.9.3.1">9.3.1</a> <a id="clockless.origin.server.operation" href="#clockless.origin.server.operation">Clockless Origin Server Operation</a></h3> 1886 <p id="rfc.section.9.3.1.p.1">Some origin server implementations might not have a clock available. An origin server without a clock <em class="bcp14">MUST NOT</em> assign Expires or Last-Modified values to a response, unless these values were associated with the resource by a system or 1881 1887 user with a reliable clock. It <em class="bcp14">MAY</em> assign an Expires value that is known, at or before server configuration time, to be in the past (this allows "pre-expiration" 1882 1888 of responses without storing separate Expires values for each resource). … … 1884 1890 <div id="rfc.iref.h.9"></div> 1885 1891 <div id="rfc.iref.h.10"></div> 1886 <h2 id="rfc.section. 3.4"><a href="#rfc.section.3.4">3.4</a> <a id="header.host" href="#header.host">Host</a></h2>1887 <p id="rfc.section. 3.4.p.1">The request-header field "Host" specifies the Internet host and port number of the resource being requested, as obtained from1892 <h2 id="rfc.section.9.4"><a href="#rfc.section.9.4">9.4</a> <a id="header.host" href="#header.host">Host</a></h2> 1893 <p id="rfc.section.9.4.p.1">The request-header field "Host" specifies the Internet host and port number of the resource being requested, as obtained from 1888 1894 the original URI given by the user or referring resource (generally an http URI, as described in <a href="#http.uri" title="http URI scheme">Section 2.6.1</a>). The Host field value <em class="bcp14">MUST</em> represent the naming authority of the origin server or gateway given by the original URL. This allows the origin server or 1889 1895 gateway to differentiate between internally-ambiguous URLs, such as the root "/" URL of a server for multiple host names on … … 1892 1898 <div id="rfc.figure.u.58"></div><pre class="inline"><span id="rfc.iref.g.97"></span><span id="rfc.iref.g.98"></span> <a href="#header.host" class="smpl">Host</a> = "Host" ":" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#header.host" class="smpl">Host-v</a> 1893 1899 <a href="#header.host" class="smpl">Host-v</a> = <a href="#uri" class="smpl">uri-host</a> [ ":" <a href="#uri" class="smpl">port</a> ] ; <a href="#http.uri" title="http URI scheme">Section 2.6.1</a> 1894 </pre><p id="rfc.section. 3.4.p.3">A "host" without any trailing port information implies the default port for the service requested (e.g., "80" for an HTTP1900 </pre><p id="rfc.section.9.4.p.3">A "host" without any trailing port information implies the default port for the service requested (e.g., "80" for an HTTP 1895 1901 URL). For example, a request on the origin server for <http://www.example.org/pub/WWW/> would properly include: 1896 1902 </p> 1897 1903 <div id="rfc.figure.u.59"></div><pre class="text"> GET /pub/WWW/ HTTP/1.1 1898 1904 Host: www.example.org 1899 </pre><p id="rfc.section. 3.4.p.5">A client <em class="bcp14">MUST</em> include a Host header field in all HTTP/1.1 request messages. If the requested URI does not include an Internet host name1905 </pre><p id="rfc.section.9.4.p.5">A client <em class="bcp14">MUST</em> include a Host header field in all HTTP/1.1 request messages. If the requested URI does not include an Internet host name 1900 1906 for the service being requested, then the Host header field <em class="bcp14">MUST</em> be given with an empty value. An HTTP/1.1 proxy <em class="bcp14">MUST</em> ensure that any request message it forwards does contain an appropriate Host header field that identifies the service being 1901 1907 requested by the proxy. All Internet-based HTTP/1.1 servers <em class="bcp14">MUST</em> respond with a 400 (Bad Request) status code to any HTTP/1.1 request message which lacks a Host header field. 1902 1908 </p> 1903 <p id="rfc.section. 3.4.p.6">See Sections <a href="#the.resource.identified.by.a.request" title="The Resource Identified by a Request">2.8.2</a> and <a href="#changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses" title="Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses">B.1.1</a> for other requirements relating to Host.1909 <p id="rfc.section.9.4.p.6">See Sections <a href="#the.resource.identified.by.a.request" title="The Resource Identified by a Request">4.2</a> and <a href="#changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses" title="Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses">B.1.1</a> for other requirements relating to Host. 1904 1910 </p> 1905 1911 <div id="rfc.iref.t.2"></div> 1906 1912 <div id="rfc.iref.h.11"></div> 1907 <h2 id="rfc.section. 3.5"><a href="#rfc.section.3.5">3.5</a> <a id="header.te" href="#header.te">TE</a></h2>1908 <p id="rfc.section. 3.5.p.1">The request-header field "TE" indicates what extension transfer-codings it is willing to accept in the response and whether1913 <h2 id="rfc.section.9.5"><a href="#rfc.section.9.5">9.5</a> <a id="header.te" href="#header.te">TE</a></h2> 1914 <p id="rfc.section.9.5.p.1">The request-header field "TE" indicates what extension transfer-codings it is willing to accept in the response and whether 1909 1915 or not it is willing to accept trailer fields in a chunked transfer-coding. Its value may consist of the keyword "trailers" 1910 and/or a comma-separated list of extension transfer-coding names with optional accept parameters (as described in <a href="#transfer.codings" title="Transfer Codings">Section 2.10.2</a>).1916 and/or a comma-separated list of extension transfer-coding names with optional accept parameters (as described in <a href="#transfer.codings" title="Transfer Codings">Section 6.2</a>). 1911 1917 </p> 1912 1918 <div id="rfc.figure.u.60"></div><pre class="inline"><span id="rfc.iref.g.99"></span><span id="rfc.iref.g.100"></span><span id="rfc.iref.g.101"></span><span id="rfc.iref.g.102"></span><span id="rfc.iref.g.103"></span> <a href="#header.te" class="smpl">TE</a> = "TE" ":" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#header.te" class="smpl">TE-v</a> … … 1915 1921 <a href="#header.te" class="smpl">te-params</a> = <a href="#rule.whitespace" class="smpl">OWS</a> ";" <a href="#rule.whitespace" class="smpl">OWS</a> "q=" <a href="#quality.values" class="smpl">qvalue</a> *( <a href="#header.te" class="smpl">te-ext</a> ) 1916 1922 <a href="#header.te" class="smpl">te-ext</a> = <a href="#rule.whitespace" class="smpl">OWS</a> ";" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#rule.token.separators" class="smpl">token</a> [ "=" ( <a href="#rule.token.separators" class="smpl">token</a> / <a href="#rule.quoted-string" class="smpl">quoted-string</a> ) ] 1917 </pre><p id="rfc.section. 3.5.p.3">The presence of the keyword "trailers" indicates that the client is willing to accept trailer fields in a chunked transfer-coding,1918 as defined in <a href="#chunked.encoding" title="Chunked Transfer Coding">Section 2.10.2.1</a>. This keyword is reserved for use with transfer-coding values even though it does not itself represent a transfer-coding.1919 </p> 1920 <p id="rfc.section. 3.5.p.4">Examples of its use are:</p>1923 </pre><p id="rfc.section.9.5.p.3">The presence of the keyword "trailers" indicates that the client is willing to accept trailer fields in a chunked transfer-coding, 1924 as defined in <a href="#chunked.encoding" title="Chunked Transfer Coding">Section 6.2.1</a>. This keyword is reserved for use with transfer-coding values even though it does not itself represent a transfer-coding. 1925 </p> 1926 <p id="rfc.section.9.5.p.4">Examples of its use are:</p> 1921 1927 <div id="rfc.figure.u.61"></div><pre class="text"> TE: deflate 1922 1928 TE: 1923 1929 TE: trailers, deflate;q=0.5 1924 </pre><p id="rfc.section. 3.5.p.6">The TE header field only applies to the immediate connection. Therefore, the keyword <em class="bcp14">MUST</em> be supplied within a Connection header field (<a href="#header.connection" id="rfc.xref.header.connection.4" title="Connection">Section 3.1</a>) whenever TE is present in an HTTP/1.1 message.1925 </p> 1926 <p id="rfc.section. 3.5.p.7">A server tests whether a transfer-coding is acceptable, according to a TE field, using these rules: </p>1930 </pre><p id="rfc.section.9.5.p.6">The TE header field only applies to the immediate connection. Therefore, the keyword <em class="bcp14">MUST</em> be supplied within a Connection header field (<a href="#header.connection" id="rfc.xref.header.connection.4" title="Connection">Section 9.1</a>) whenever TE is present in an HTTP/1.1 message. 1931 </p> 1932 <p id="rfc.section.9.5.p.7">A server tests whether a transfer-coding is acceptable, according to a TE field, using these rules: </p> 1927 1933 <ol> 1928 1934 <li> … … 1938 1944 <li> 1939 1945 <p>If the transfer-coding being tested is one of the transfer-codings listed in the TE field, then it is acceptable unless it 1940 is accompanied by a qvalue of 0. (As defined in <a href="#quality.values" title="Quality Values">Section 2.10.4</a>, a qvalue of 0 means "not acceptable.")1946 is accompanied by a qvalue of 0. (As defined in <a href="#quality.values" title="Quality Values">Section 6.4</a>, a qvalue of 0 means "not acceptable.") 1941 1947 </p> 1942 1948 </li> … … 1947 1953 </li> 1948 1954 </ol> 1949 <p id="rfc.section. 3.5.p.8">If the TE field-value is empty or if no TE field is present, the only transfer-coding is "chunked". A message with no transfer-coding1955 <p id="rfc.section.9.5.p.8">If the TE field-value is empty or if no TE field is present, the only transfer-coding is "chunked". A message with no transfer-coding 1950 1956 is always acceptable. 1951 1957 </p> 1952 1958 <div id="rfc.iref.t.3"></div> 1953 1959 <div id="rfc.iref.h.12"></div> 1954 <h2 id="rfc.section. 3.6"><a href="#rfc.section.3.6">3.6</a> <a id="header.trailer" href="#header.trailer">Trailer</a></h2>1955 <p id="rfc.section. 3.6.p.1">The general field "Trailer" indicates that the given set of header fields is present in the trailer of a message encoded with1960 <h2 id="rfc.section.9.6"><a href="#rfc.section.9.6">9.6</a> <a id="header.trailer" href="#header.trailer">Trailer</a></h2> 1961 <p id="rfc.section.9.6.p.1">The general field "Trailer" indicates that the given set of header fields is present in the trailer of a message encoded with 1956 1962 chunked transfer-coding. 1957 1963 </p> 1958 1964 <div id="rfc.figure.u.62"></div><pre class="inline"><span id="rfc.iref.g.104"></span><span id="rfc.iref.g.105"></span> <a href="#header.trailer" class="smpl">Trailer</a> = "Trailer" ":" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#header.trailer" class="smpl">Trailer-v</a> 1959 1965 <a href="#header.trailer" class="smpl">Trailer-v</a> = 1#<a href="#header.fields" class="smpl">field-name</a> 1960 </pre><p id="rfc.section. 3.6.p.3">An HTTP/1.1 message <em class="bcp14">SHOULD</em> include a Trailer header field in a message using chunked transfer-coding with a non-empty trailer. Doing so allows the recipient1966 </pre><p id="rfc.section.9.6.p.3">An HTTP/1.1 message <em class="bcp14">SHOULD</em> include a Trailer header field in a message using chunked transfer-coding with a non-empty trailer. Doing so allows the recipient 1961 1967 to know which header fields to expect in the trailer. 1962 1968 </p> 1963 <p id="rfc.section. 3.6.p.4">If no Trailer header field is present, the trailer <em class="bcp14">SHOULD NOT</em> include any header fields. See <a href="#chunked.encoding" title="Chunked Transfer Coding">Section 2.10.2.1</a> for restrictions on the use of trailer fields in a "chunked" transfer-coding.1964 </p> 1965 <p id="rfc.section. 3.6.p.5">Message header fields listed in the Trailer header field <em class="bcp14">MUST NOT</em> include the following header fields:1969 <p id="rfc.section.9.6.p.4">If no Trailer header field is present, the trailer <em class="bcp14">SHOULD NOT</em> include any header fields. See <a href="#chunked.encoding" title="Chunked Transfer Coding">Section 6.2.1</a> for restrictions on the use of trailer fields in a "chunked" transfer-coding. 1970 </p> 1971 <p id="rfc.section.9.6.p.5">Message header fields listed in the Trailer header field <em class="bcp14">MUST NOT</em> include the following header fields: 1966 1972 </p> 1967 1973 <ul> … … 1972 1978 <div id="rfc.iref.t.4"></div> 1973 1979 <div id="rfc.iref.h.13"></div> 1974 <h2 id="rfc.section. 3.7"><a href="#rfc.section.3.7">3.7</a> <a id="header.transfer-encoding" href="#header.transfer-encoding">Transfer-Encoding</a></h2>1975 <p id="rfc.section. 3.7.p.1">The general-header "Transfer-Encoding" field indicates what (if any) type of transformation has been applied to the message1980 <h2 id="rfc.section.9.7"><a href="#rfc.section.9.7">9.7</a> <a id="header.transfer-encoding" href="#header.transfer-encoding">Transfer-Encoding</a></h2> 1981 <p id="rfc.section.9.7.p.1">The general-header "Transfer-Encoding" field indicates what (if any) type of transformation has been applied to the message 1976 1982 body in order to safely transfer it between the sender and the recipient. This differs from the content-coding in that the 1977 1983 transfer-coding is a property of the message, not of the entity. … … 1980 1986 <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding-v</a> 1981 1987 <a href="#header.transfer-encoding" class="smpl">Transfer-Encoding-v</a> = 1#<a href="#transfer.codings" class="smpl">transfer-coding</a> 1982 </pre><p id="rfc.section. 3.7.p.3">Transfer-codings are defined in <a href="#transfer.codings" title="Transfer Codings">Section 2.10.2</a>. An example is:1988 </pre><p id="rfc.section.9.7.p.3">Transfer-codings are defined in <a href="#transfer.codings" title="Transfer Codings">Section 6.2</a>. An example is: 1983 1989 </p> 1984 1990 <div id="rfc.figure.u.64"></div><pre class="text"> Transfer-Encoding: chunked 1985 </pre><p id="rfc.section. 3.7.p.5">If multiple encodings have been applied to an entity, the transfer-codings <em class="bcp14">MUST</em> be listed in the order in which they were applied. Additional information about the encoding parameters <em class="bcp14">MAY</em> be provided by other entity-header fields not defined by this specification.1986 </p> 1987 <p id="rfc.section. 3.7.p.6">Many older HTTP/1.0 applications do not understand the Transfer-Encoding header.</p>1991 </pre><p id="rfc.section.9.7.p.5">If multiple encodings have been applied to an entity, the transfer-codings <em class="bcp14">MUST</em> be listed in the order in which they were applied. Additional information about the encoding parameters <em class="bcp14">MAY</em> be provided by other entity-header fields not defined by this specification. 1992 </p> 1993 <p id="rfc.section.9.7.p.6">Many older HTTP/1.0 applications do not understand the Transfer-Encoding header.</p> 1988 1994 <div id="rfc.iref.u.5"></div> 1989 1995 <div id="rfc.iref.h.14"></div> 1990 <h2 id="rfc.section. 3.8"><a href="#rfc.section.3.8">3.8</a> <a id="header.upgrade" href="#header.upgrade">Upgrade</a></h2>1991 <p id="rfc.section. 3.8.p.1">The general-header "Upgrade" allows the client to specify what additional communication protocols it supports and would like1996 <h2 id="rfc.section.9.8"><a href="#rfc.section.9.8">9.8</a> <a id="header.upgrade" href="#header.upgrade">Upgrade</a></h2> 1997 <p id="rfc.section.9.8.p.1">The general-header "Upgrade" allows the client to specify what additional communication protocols it supports and would like 1992 1998 to use if the server finds it appropriate to switch protocols. The server <em class="bcp14">MUST</em> use the Upgrade header field within a 101 (Switching Protocols) response to indicate which protocol(s) are being switched. 1993 1999 </p> 1994 2000 <div id="rfc.figure.u.65"></div><pre class="inline"><span id="rfc.iref.g.108"></span><span id="rfc.iref.g.109"></span> <a href="#header.upgrade" class="smpl">Upgrade</a> = "Upgrade" ":" <a href="#rule.whitespace" class="smpl">OWS</a> <a href="#header.upgrade" class="smpl">Upgrade-v</a> 1995 2001 <a href="#header.upgrade" class="smpl">Upgrade-v</a> = 1#<a href="#product.tokens" class="smpl">product</a> 1996 </pre><p id="rfc.section. 3.8.p.3">For example,</p>2002 </pre><p id="rfc.section.9.8.p.3">For example,</p> 1997 2003 <div id="rfc.figure.u.66"></div><pre class="text"> Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 1998 </pre><p id="rfc.section. 3.8.p.5">The Upgrade header field is intended to provide a simple mechanism for transition from HTTP/1.1 to some other, incompatible2004 </pre><p id="rfc.section.9.8.p.5">The Upgrade header field is intended to provide a simple mechanism for transition from HTTP/1.1 to some other, incompatible 1999 2005 protocol. It does so by allowing the client to advertise its desire to use another protocol, such as a later version of HTTP 2000 2006 with a higher major version number, even though the current request has been made using HTTP/1.1. This eases the difficult … … 2003 2009 the server, possibly according to the nature of the method and/or resource being requested). 2004 2010 </p> 2005 <p id="rfc.section. 3.8.p.6">The Upgrade header field only applies to switching application-layer protocols upon the existing transport-layer connection.2011 <p id="rfc.section.9.8.p.6">The Upgrade header field only applies to switching application-layer protocols upon the existing transport-layer connection. 2006 2012 Upgrade cannot be used to insist on a protocol change; its acceptance and use by the server is optional. The capabilities 2007 2013 and nature of the application-layer communication after the protocol change is entirely dependent upon the new protocol chosen, 2008 2014 although the first action after changing the protocol <em class="bcp14">MUST</em> be a response to the initial HTTP request containing the Upgrade header field. 2009 2015 </p> 2010 <p id="rfc.section. 3.8.p.7">The Upgrade header field only applies to the immediate connection. Therefore, the upgrade keyword <em class="bcp14">MUST</em> be supplied within a Connection header field (<a href="#header.connection" id="rfc.xref.header.connection.5" title="Connection">Section 3.1</a>) whenever Upgrade is present in an HTTP/1.1 message.2011 </p> 2012 <p id="rfc.section. 3.8.p.8">The Upgrade header field cannot be used to indicate a switch to a protocol on a different connection. For that purpose, it2016 <p id="rfc.section.9.8.p.7">The Upgrade header field only applies to the immediate connection. Therefore, the upgrade keyword <em class="bcp14">MUST</em> be supplied within a Connection header field (<a href="#header.connection" id="rfc.xref.header.connection.5" title="Connection">Section 9.1</a>) whenever Upgrade is present in an HTTP/1.1 message. 2017 </p> 2018 <p id="rfc.section.9.8.p.8">The Upgrade header field cannot be used to indicate a switch to a protocol on a different connection. For that purpose, it 2013 2019 is more appropriate to use a 301, 302, 303, or 305 redirection response. 2014 2020 </p> 2015 <p id="rfc.section. 3.8.p.9">This specification only defines the protocol name "HTTP" for use by the family of Hypertext Transfer Protocols, as defined2021 <p id="rfc.section.9.8.p.9">This specification only defines the protocol name "HTTP" for use by the family of Hypertext Transfer Protocols, as defined 2016 2022 by the HTTP version rules of <a href="#http.version" title="HTTP Version">Section 2.5</a> and future updates to this specification. Any token can be used as a protocol name; however, it will only be useful if both 2017 2023 the client and server associate the name with the same protocol. … … 2019 2025 <div id="rfc.iref.v.1"></div> 2020 2026 <div id="rfc.iref.h.15"></div> 2021 <h2 id="rfc.section. 3.9"><a href="#rfc.section.3.9">3.9</a> <a id="header.via" href="#header.via">Via</a></h2>2022 <p id="rfc.section. 3.9.p.1">The general-header field "Via" <em class="bcp14">MUST</em> be used by gateways and proxies to indicate the intermediate protocols and recipients between the user agent and the server2027 <h2 id="rfc.section.9.9"><a href="#rfc.section.9.9">9.9</a> <a id="header.via" href="#header.via">Via</a></h2> 2028 <p id="rfc.section.9.9.p.1">The general-header field "Via" <em class="bcp14">MUST</em> be used by gateways and proxies to indicate the intermediate protocols and recipients between the user agent and the server 2023 2029 on requests, and between the origin server and the client on responses. It is analogous to the "Received" field defined in <a href="http://tools.ietf.org/html/rfc5322#section-3.6.7">Section 3.6.7</a> of <a href="#RFC5322" id="rfc.xref.RFC5322.5"><cite title="Internet Message Format">[RFC5322]</cite></a> and is intended to be used for tracking message forwards, avoiding request loops, and identifying the protocol capabilities 2024 2030 of all senders along the request/response chain. … … 2032 2038 <a href="#header.via" class="smpl">received-by</a> = ( <a href="#uri" class="smpl">uri-host</a> [ ":" <a href="#uri" class="smpl">port</a> ] ) / <a href="#header.via" class="smpl">pseudonym</a> 2033 2039 <a href="#header.via" class="smpl">pseudonym</a> = <a href="#rule.token.separators" class="smpl">token</a> 2034 </pre><p id="rfc.section. 3.9.p.3">The received-protocol indicates the protocol version of the message received by the server or client along each segment of2040 </pre><p id="rfc.section.9.9.p.3">The received-protocol indicates the protocol version of the message received by the server or client along each segment of 2035 2041 the request/response chain. The received-protocol version is appended to the Via field value when the message is forwarded 2036 2042 so that information about the protocol capabilities of upstream applications remains visible to all recipients. 2037 2043 </p> 2038 <p id="rfc.section. 3.9.p.4">The protocol-name is optional if and only if it would be "HTTP". The received-by field is normally the host and optional port2044 <p id="rfc.section.9.9.p.4">The protocol-name is optional if and only if it would be "HTTP". The received-by field is normally the host and optional port 2039 2045 number of a recipient server or client that subsequently forwarded the message. However, if the real host is considered to 2040 2046 be sensitive information, it <em class="bcp14">MAY</em> be replaced by a pseudonym. If the port is not given, it <em class="bcp14">MAY</em> be assumed to be the default port of the received-protocol. 2041 2047 </p> 2042 <p id="rfc.section. 3.9.p.5">Multiple Via field values represents each proxy or gateway that has forwarded the message. Each recipient <em class="bcp14">MUST</em> append its information such that the end result is ordered according to the sequence of forwarding applications.2043 </p> 2044 <p id="rfc.section. 3.9.p.6">Comments <em class="bcp14">MAY</em> be used in the Via header field to identify the software of the recipient proxy or gateway, analogous to the User-Agent and2048 <p id="rfc.section.9.9.p.5">Multiple Via field values represents each proxy or gateway that has forwarded the message. Each recipient <em class="bcp14">MUST</em> append its information such that the end result is ordered according to the sequence of forwarding applications. 2049 </p> 2050 <p id="rfc.section.9.9.p.6">Comments <em class="bcp14">MAY</em> be used in the Via header field to identify the software of the recipient proxy or gateway, analogous to the User-Agent and 2045 2051 Server header fields. However, all comments in the Via field are optional and <em class="bcp14">MAY</em> be removed by any recipient prior to forwarding the message. 2046 2052 </p> 2047 <p id="rfc.section. 3.9.p.7">For example, a request message could be sent from an HTTP/1.0 user agent to an internal proxy code-named "fred", which uses2053 <p id="rfc.section.9.9.p.7">For example, a request message could be sent from an HTTP/1.0 user agent to an internal proxy code-named "fred", which uses 2048 2054 HTTP/1.1 to forward the request to a public proxy at p.example.net, which completes the request by forwarding it to the origin 2049 2055 server at www.example.com. The request received by www.example.com would then have the following Via header field: 2050 2056 </p> 2051 2057 <div id="rfc.figure.u.68"></div><pre class="text"> Via: 1.0 fred, 1.1 p.example.net (Apache/1.1) 2052 </pre><p id="rfc.section. 3.9.p.9">Proxies and gateways used as a portal through a network firewall <em class="bcp14">SHOULD NOT</em>, by default, forward the names and ports of hosts within the firewall region. This information <em class="bcp14">SHOULD</em> only be propagated if explicitly enabled. If not enabled, the received-by host of any host behind the firewall <em class="bcp14">SHOULD</em> be replaced by an appropriate pseudonym for that host.2053 </p> 2054 <p id="rfc.section. 3.9.p.10">For organizations that have strong privacy requirements for hiding internal structures, a proxy <em class="bcp14">MAY</em> combine an ordered subsequence of Via header field entries with identical received-protocol values into a single such entry.2058 </pre><p id="rfc.section.9.9.p.9">Proxies and gateways used as a portal through a network firewall <em class="bcp14">SHOULD NOT</em>, by default, forward the names and ports of hosts within the firewall region. This information <em class="bcp14">SHOULD</em> only be propagated if explicitly enabled. If not enabled, the received-by host of any host behind the firewall <em class="bcp14">SHOULD</em> be replaced by an appropriate pseudonym for that host. 2059 </p> 2060 <p id="rfc.section.9.9.p.10">For organizations that have strong privacy requirements for hiding internal structures, a proxy <em class="bcp14">MAY</em> combine an ordered subsequence of Via header field entries with identical received-protocol values into a single such entry. 2055 2061 For example, 2056 2062 </p> 2057 2063 <div id="rfc.figure.u.69"></div><pre class="text"> Via: 1.0 ricky, 1.1 ethel, 1.1 fred, 1.0 lucy 2058 </pre><p id="rfc.section. 3.9.p.12">could be collapsed to</p>2064 </pre><p id="rfc.section.9.9.p.12">could be collapsed to</p> 2059 2065 <div id="rfc.figure.u.70"></div><pre class="text"> Via: 1.0 ricky, 1.1 mertz, 1.0 lucy 2060 </pre><p id="rfc.section. 3.9.p.14">Applications <em class="bcp14">SHOULD NOT</em> combine multiple entries unless they are all under the same organizational control and the hosts have already been replaced2066 </pre><p id="rfc.section.9.9.p.14">Applications <em class="bcp14">SHOULD NOT</em> combine multiple entries unless they are all under the same organizational control and the hosts have already been replaced 2061 2067 by pseudonyms. Applications <em class="bcp14">MUST NOT</em> combine entries which have different received-protocol values. 2062 2068 </p> 2063 <h1 id="rfc.section. 4"><a href="#rfc.section.4">4.</a> <a id="IANA.considerations" href="#IANA.considerations">IANA Considerations</a></h1>2064 <h2 id="rfc.section. 4.1"><a href="#rfc.section.4.1">4.1</a> <a id="message.header.registration" href="#message.header.registration">Message Header Registration</a></h2>2065 <p id="rfc.section. 4.1.p.1">The Message Header Registry located at <<a href="http://www.iana.org/assignments/message-headers/message-header-index.html">http://www.iana.org/assignments/message-headers/message-header-index.html</a>> should be updated with the permanent registrations below (see <a href="#RFC3864" id="rfc.xref.RFC3864.1"><cite title="Registration Procedures for Message Header Fields">[RFC3864]</cite></a>):2069 <h1 id="rfc.section.10"><a href="#rfc.section.10">10.</a> <a id="IANA.considerations" href="#IANA.considerations">IANA Considerations</a></h1> 2070 <h2 id="rfc.section.10.1"><a href="#rfc.section.10.1">10.1</a> <a id="message.header.registration" href="#message.header.registration">Message Header Registration</a></h2> 2071 <p id="rfc.section.10.1.p.1">The Message Header Registry located at <<a href="http://www.iana.org/assignments/message-headers/message-header-index.html">http://www.iana.org/assignments/message-headers/message-header-index.html</a>> should be updated with the permanent registrations below (see <a href="#RFC3864" id="rfc.xref.RFC3864.1"><cite title="Registration Procedures for Message Header Fields">[RFC3864]</cite></a>): 2066 2072 </p> 2067 2073 <div id="rfc.table.1"> … … 2081 2087 <td>http</td> 2082 2088 <td>standard</td> 2083 <td> <a href="#header.connection" id="rfc.xref.header.connection.6" title="Connection">Section 3.1</a>2089 <td> <a href="#header.connection" id="rfc.xref.header.connection.6" title="Connection">Section 9.1</a> 2084 2090 </td> 2085 2091 </tr> … … 2088 2094 <td>http</td> 2089 2095 <td>standard</td> 2090 <td> <a href="#header.content-length" id="rfc.xref.header.content-length.2" title="Content-Length">Section 3.2</a>2096 <td> <a href="#header.content-length" id="rfc.xref.header.content-length.2" title="Content-Length">Section 9.2</a> 2091 2097 </td> 2092 2098 </tr> … … 2095 2101 <td>http</td> 2096 2102 <td>standard</td> 2097 <td> <a href="#header.date" id="rfc.xref.header.date.2" title="Date">Section 3.3</a>2103 <td> <a href="#header.date" id="rfc.xref.header.date.2" title="Date">Section 9.3</a> 2098 2104 </td> 2099 2105 </tr> … … 2102 2108 <td>http</td> 2103 2109 <td>standard</td> 2104 <td> <a href="#header.host" id="rfc.xref.header.host.1" title="Host">Section 3.4</a>2110 <td> <a href="#header.host" id="rfc.xref.header.host.1" title="Host">Section 9.4</a> 2105 2111 </td> 2106 2112 </tr> … … 2109 2115 <td>http</td> 2110 2116 <td>standard</td> 2111 <td> <a href="#header.te" id="rfc.xref.header.te.4" title="TE">Section 3.5</a>2117 <td> <a href="#header.te" id="rfc.xref.header.te.4" title="TE">Section 9.5</a> 2112 2118 </td> 2113 2119 </tr> … … 2116 2122 <td>http</td> 2117 2123 <td>standard</td> 2118 <td> <a href="#header.trailer" id="rfc.xref.header.trailer.3" title="Trailer">Section 3.6</a>2124 <td> <a href="#header.trailer" id="rfc.xref.header.trailer.3" title="Trailer">Section 9.6</a> 2119 2125 </td> 2120 2126 </tr> … … 2123 2129 <td>http</td> 2124 2130 <td>standard</td> 2125 <td> <a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.5" title="Transfer-Encoding">Section 3.7</a>2131 <td> <a href="#header.transfer-encoding" id="rfc.xref.header.transfer-encoding.5" title="Transfer-Encoding">Section 9.7</a> 2126 2132 </td> 2127 2133 </tr> … … 2130 2136 <td>http</td> 2131 2137 <td>standard</td> 2132 <td> <a href="#header.upgrade" id="rfc.xref.header.upgrade.2" title="Upgrade">Section 3.8</a>2138 <td> <a href="#header.upgrade" id="rfc.xref.header.upgrade.2" title="Upgrade">Section 9.8</a> 2133 2139 </td> 2134 2140 </tr> … … 2137 2143 <td>http</td> 2138 2144 <td>standard</td> 2139 <td> <a href="#header.via" id="rfc.xref.header.via.2" title="Via">Section 3.9</a>2145 <td> <a href="#header.via" id="rfc.xref.header.via.2" title="Via">Section 9.9</a> 2140 2146 </td> 2141 2147 </tr> … … 2143 2149 </table> 2144 2150 </div> 2145 <p id="rfc.section. 4.1.p.2">The change controller is: "IETF (iesg@ietf.org) - Internet Engineering Task Force".</p>2146 <h2 id="rfc.section. 4.2"><a href="#rfc.section.4.2">4.2</a> <a id="uri.scheme.registration" href="#uri.scheme.registration">URI Scheme Registration</a></h2>2147 <p id="rfc.section. 4.2.p.1">The entries for the "http" and "https" URI Schemes in the registry located at <<a href="http://www.iana.org/assignments/uri-schemes.html">http://www.iana.org/assignments/uri-schemes.html</a>> should be updated to point to Sections <a href="#http.uri" title="http URI scheme">2.6.1</a> and <a href="#https.uri" title="https URI scheme">2.6.2</a> of this document (see <a href="#RFC4395" id="rfc.xref.RFC4395.1"><cite title="Guidelines and Registration Procedures for New URI Schemes">[RFC4395]</cite></a>).2148 </p> 2149 <h2 id="rfc.section. 4.3"><a href="#rfc.section.4.3">4.3</a> <a id="internet.media.type.http" href="#internet.media.type.http">Internet Media Type Registrations</a></h2>2150 <p id="rfc.section. 4.3.p.1">This document serves as the specification for the Internet media types "message/http" and "application/http". The following2151 <p id="rfc.section.10.1.p.2">The change controller is: "IETF (iesg@ietf.org) - Internet Engineering Task Force".</p> 2152 <h2 id="rfc.section.10.2"><a href="#rfc.section.10.2">10.2</a> <a id="uri.scheme.registration" href="#uri.scheme.registration">URI Scheme Registration</a></h2> 2153 <p id="rfc.section.10.2.p.1">The entries for the "http" and "https" URI Schemes in the registry located at <<a href="http://www.iana.org/assignments/uri-schemes.html">http://www.iana.org/assignments/uri-schemes.html</a>> should be updated to point to Sections <a href="#http.uri" title="http URI scheme">2.6.1</a> and <a href="#https.uri" title="https URI scheme">2.6.2</a> of this document (see <a href="#RFC4395" id="rfc.xref.RFC4395.1"><cite title="Guidelines and Registration Procedures for New URI Schemes">[RFC4395]</cite></a>). 2154 </p> 2155 <h2 id="rfc.section.10.3"><a href="#rfc.section.10.3">10.3</a> <a id="internet.media.type.http" href="#internet.media.type.http">Internet Media Type Registrations</a></h2> 2156 <p id="rfc.section.10.3.p.1">This document serves as the specification for the Internet media types "message/http" and "application/http". The following 2151 2157 is to be registered with IANA (see <a href="#RFC4288" id="rfc.xref.RFC4288.1"><cite title="Media Type Specifications and Registration Procedures">[RFC4288]</cite></a>). 2152 2158 </p> 2153 2159 <div id="rfc.iref.m.2"></div> 2154 2160 <div id="rfc.iref.m.3"></div> 2155 <h3 id="rfc.section. 4.3.1"><a href="#rfc.section.4.3.1">4.3.1</a> <a id="internet.media.type.message.http" href="#internet.media.type.message.http">Internet Media Type message/http</a></h3>2156 <p id="rfc.section. 4.3.1.p.1">The message/http type can be used to enclose a single HTTP request or response message, provided that it obeys the MIME restrictions2161 <h3 id="rfc.section.10.3.1"><a href="#rfc.section.10.3.1">10.3.1</a> <a id="internet.media.type.message.http" href="#internet.media.type.message.http">Internet Media Type message/http</a></h3> 2162 <p id="rfc.section.10.3.1.p.1">The message/http type can be used to enclose a single HTTP request or response message, provided that it obeys the MIME restrictions 2157 2163 for all "message" types regarding line length and encodings. 2158 2164 </p> 2159 <p id="rfc.section. 4.3.1.p.2"> </p>2165 <p id="rfc.section.10.3.1.p.2"> </p> 2160 2166 <dl> 2161 2167 <dt>Type name:</dt> … … 2183 2189 <dd>none</dd> 2184 2190 <dt>Published specification:</dt> 2185 <dd>This specification (see <a href="#internet.media.type.message.http" title="Internet Media Type message/http">Section 4.3.1</a>).2191 <dd>This specification (see <a href="#internet.media.type.message.http" title="Internet Media Type message/http">Section 10.3.1</a>). 2186 2192 </dd> 2187 2193 <dt>Applications that use this media type:</dt> … … 2208 2214 <div id="rfc.iref.m.4"></div> 2209 2215 <div id="rfc.iref.a.1"></div> 2210 <h3 id="rfc.section. 4.3.2"><a href="#rfc.section.4.3.2">4.3.2</a> <a id="internet.media.type.application.http" href="#internet.media.type.application.http">Internet Media Type application/http</a></h3>2211 <p id="rfc.section. 4.3.2.p.1">The application/http type can be used to enclose a pipeline of one or more HTTP request or response messages (not intermixed).</p>2212 <p id="rfc.section. 4.3.2.p.2"> </p>2216 <h3 id="rfc.section.10.3.2"><a href="#rfc.section.10.3.2">10.3.2</a> <a id="internet.media.type.application.http" href="#internet.media.type.application.http">Internet Media Type application/http</a></h3> 2217 <p id="rfc.section.10.3.2.p.1">The application/http type can be used to enclose a pipeline of one or more HTTP request or response messages (not intermixed).</p> 2218 <p id="rfc.section.10.3.2.p.2"> </p> 2213 2219 <dl> 2214 2220 <dt>Type name:</dt> … … 2238 2244 <dd>none</dd> 2239 2245 <dt>Published specification:</dt> 2240 <dd>This specification (see <a href="#internet.media.type.application.http" title="Internet Media Type application/http">Section 4.3.2</a>).2246 <dd>This specification (see <a href="#internet.media.type.application.http" title="Internet Media Type application/http">Section 10.3.2</a>). 2241 2247 </dd> 2242 2248 <dt>Applications that use this media type:</dt> … … 2261 2267 <dd>IESG</dd> 2262 2268 </dl> 2263 <h2 id="rfc.section. 4.4"><a href="#rfc.section.4.4">4.4</a> <a id="transfer.coding.registration" href="#transfer.coding.registration">Transfer Coding Registry</a></h2>2264 <p id="rfc.section. 4.4.p.1">The registration procedure for HTTP Transfer Codings is now defined by <a href="#transfer.coding.registry" title="Transfer Coding Registry">Section 2.10.2.3</a> of this document.2265 </p> 2266 <p id="rfc.section. 4.4.p.2">The HTTP Transfer Codings Registry located at <<a href="http://www.iana.org/assignments/http-parameters">http://www.iana.org/assignments/http-parameters</a>> should be updated with the registrations below:2269 <h2 id="rfc.section.10.4"><a href="#rfc.section.10.4">10.4</a> <a id="transfer.coding.registration" href="#transfer.coding.registration">Transfer Coding Registry</a></h2> 2270 <p id="rfc.section.10.4.p.1">The registration procedure for HTTP Transfer Codings is now defined by <a href="#transfer.coding.registry" title="Transfer Coding Registry">Section 6.2.3</a> of this document. 2271 </p> 2272 <p id="rfc.section.10.4.p.2">The HTTP Transfer Codings Registry located at <<a href="http://www.iana.org/assignments/http-parameters">http://www.iana.org/assignments/http-parameters</a>> should be updated with the registrations below: 2267 2273 </p> 2268 2274 <div id="rfc.table.2"> … … 2280 2286 <td>chunked</td> 2281 2287 <td>Transfer in a series of chunks</td> 2282 <td> <a href="#chunked.encoding" title="Chunked Transfer Coding">Section 2.10.2.1</a>2288 <td> <a href="#chunked.encoding" title="Chunked Transfer Coding">Section 6.2.1</a> 2283 2289 </td> 2284 2290 </tr> … … 2286 2292 <td>compress</td> 2287 2293 <td>UNIX "compress" program method</td> 2288 <td> <a href="#compress.coding" title="Compress Coding">Section 2.10.2.2.1</a>2294 <td> <a href="#compress.coding" title="Compress Coding">Section 6.2.2.1</a> 2289 2295 </td> 2290 2296 </tr> … … 2293 2299 <td>"zlib" format <a href="#RFC1950" id="rfc.xref.RFC1950.2"><cite title="ZLIB Compressed Data Format Specification version 3.3">[RFC1950]</cite></a> with "deflate" compression 2294 2300 </td> 2295 <td> <a href="#deflate.coding" title="Deflate Coding">Section 2.10.2.2.2</a>2301 <td> <a href="#deflate.coding" title="Deflate Coding">Section 6.2.2.2</a> 2296 2302 </td> 2297 2303 </tr> … … 2299 2305 <td>gzip</td> 2300 2306 <td>Same as GNU zip <a href="#RFC1952" id="rfc.xref.RFC1952.2"><cite title="GZIP file format specification version 4.3">[RFC1952]</cite></a></td> 2301 <td> <a href="#gzip.coding" title="Gzip Coding">Section 2.10.2.2.3</a>2307 <td> <a href="#gzip.coding" title="Gzip Coding">Section 6.2.2.3</a> 2302 2308 </td> 2303 2309 </tr> … … 2305 2311 </table> 2306 2312 </div> 2307 <h1 id="rfc.section. 5"><a href="#rfc.section.5">5.</a> <a id="security.considerations" href="#security.considerations">Security Considerations</a></h1>2308 <p id="rfc.section. 5.p.1">This section is meant to inform application developers, information providers, and users of the security limitations in HTTP/1.12313 <h1 id="rfc.section.11"><a href="#rfc.section.11">11.</a> <a id="security.considerations" href="#security.considerations">Security Considerations</a></h1> 2314 <p id="rfc.section.11.p.1">This section is meant to inform application developers, information providers, and users of the security limitations in HTTP/1.1 2309 2315 as described by this document. The discussion does not include definitive solutions to the problems revealed, though it does 2310 2316 make some suggestions for reducing security risks. 2311 2317 </p> 2312 <h2 id="rfc.section. 5.1"><a href="#rfc.section.5.1">5.1</a> <a id="personal.information" href="#personal.information">Personal Information</a></h2>2313 <p id="rfc.section. 5.1.p.1">HTTP clients are often privy to large amounts of personal information (e.g. the user's name, location, mail address, passwords,2318 <h2 id="rfc.section.11.1"><a href="#rfc.section.11.1">11.1</a> <a id="personal.information" href="#personal.information">Personal Information</a></h2> 2319 <p id="rfc.section.11.1.p.1">HTTP clients are often privy to large amounts of personal information (e.g. the user's name, location, mail address, passwords, 2314 2320 encryption keys, etc.), and <em class="bcp14">SHOULD</em> be very careful to prevent unintentional leakage of this information. We very strongly recommend that a convenient interface 2315 2321 be provided for the user to control dissemination of such information, and that designers and implementors be particularly … … 2317 2323 highly adverse publicity for the implementor's company. 2318 2324 </p> 2319 <h2 id="rfc.section. 5.2"><a href="#rfc.section.5.2">5.2</a> <a id="abuse.of.server.log.information" href="#abuse.of.server.log.information">Abuse of Server Log Information</a></h2>2320 <p id="rfc.section. 5.2.p.1">A server is in the position to save personal data about a user's requests which might identify their reading patterns or subjects2325 <h2 id="rfc.section.11.2"><a href="#rfc.section.11.2">11.2</a> <a id="abuse.of.server.log.information" href="#abuse.of.server.log.information">Abuse of Server Log Information</a></h2> 2326 <p id="rfc.section.11.2.p.1">A server is in the position to save personal data about a user's requests which might identify their reading patterns or subjects 2321 2327 of interest. This information is clearly confidential in nature and its handling can be constrained by law in certain countries. 2322 2328 People using HTTP to provide data are responsible for ensuring that such material is not distributed without the permission 2323 2329 of any individuals that are identifiable by the published results. 2324 2330 </p> 2325 <h2 id="rfc.section. 5.3"><a href="#rfc.section.5.3">5.3</a> <a id="attack.pathname" href="#attack.pathname">Attacks Based On File and Path Names</a></h2>2326 <p id="rfc.section. 5.3.p.1">Implementations of HTTP origin servers <em class="bcp14">SHOULD</em> be careful to restrict the documents returned by HTTP requests to be only those that were intended by the server administrators.2331 <h2 id="rfc.section.11.3"><a href="#rfc.section.11.3">11.3</a> <a id="attack.pathname" href="#attack.pathname">Attacks Based On File and Path Names</a></h2> 2332 <p id="rfc.section.11.3.p.1">Implementations of HTTP origin servers <em class="bcp14">SHOULD</em> be careful to restrict the documents returned by HTTP requests to be only those that were intended by the server administrators. 2327 2333 If an HTTP server translates HTTP URIs directly into file system calls, the server <em class="bcp14">MUST</em> take special care not to serve files that were not intended to be delivered to HTTP clients. For example, UNIX, Microsoft 2328 2334 Windows, and other operating systems use ".." as a path component to indicate a directory level above the current one. On … … 2332 2338 bugs in such HTTP server implementations have turned into security risks. 2333 2339 </p> 2334 <h2 id="rfc.section. 5.4"><a href="#rfc.section.5.4">5.4</a> <a id="dns.spoofing" href="#dns.spoofing">DNS Spoofing</a></h2>2335 <p id="rfc.section. 5.4.p.1">Clients using HTTP rely heavily on the Domain Name Service, and are thus generally prone to security attacks based on the2340 <h2 id="rfc.section.11.4"><a href="#rfc.section.11.4">11.4</a> <a id="dns.spoofing" href="#dns.spoofing">DNS Spoofing</a></h2> 2341 <p id="rfc.section.11.4.p.1">Clients using HTTP rely heavily on the Domain Name Service, and are thus generally prone to security attacks based on the 2336 2342 deliberate mis-association of IP addresses and DNS names. Clients need to be cautious in assuming the continuing validity 2337 2343 of an IP number/DNS name association. 2338 2344 </p> 2339 <p id="rfc.section. 5.4.p.2">In particular, HTTP clients <em class="bcp14">SHOULD</em> rely on their name resolver for confirmation of an IP number/DNS name association, rather than caching the result of previous2345 <p id="rfc.section.11.4.p.2">In particular, HTTP clients <em class="bcp14">SHOULD</em> rely on their name resolver for confirmation of an IP number/DNS name association, rather than caching the result of previous 2340 2346 host name lookups. Many platforms already can cache host name lookups locally when appropriate, and they <em class="bcp14">SHOULD</em> be configured to do so. It is proper for these lookups to be cached, however, only when the TTL (Time To Live) information 2341 2347 reported by the name server makes it likely that the cached information will remain useful. 2342 2348 </p> 2343 <p id="rfc.section. 5.4.p.3">If HTTP clients cache the results of host name lookups in order to achieve a performance improvement, they <em class="bcp14">MUST</em> observe the TTL information reported by DNS.2344 </p> 2345 <p id="rfc.section. 5.4.p.4">If HTTP clients do not observe this rule, they could be spoofed when a previously-accessed server's IP address changes. As2349 <p id="rfc.section.11.4.p.3">If HTTP clients cache the results of host name lookups in order to achieve a performance improvement, they <em class="bcp14">MUST</em> observe the TTL information reported by DNS. 2350 </p> 2351 <p id="rfc.section.11.4.p.4">If HTTP clients do not observe this rule, they could be spoofed when a previously-accessed server's IP address changes. As 2346 2352 network renumbering is expected to become increasingly common <a href="#RFC1900" id="rfc.xref.RFC1900.1"><cite title="Renumbering Needs Work">[RFC1900]</cite></a>, the possibility of this form of attack will grow. Observing this requirement thus reduces this potential security vulnerability. 2347 2353 </p> 2348 <p id="rfc.section. 5.4.p.5">This requirement also improves the load-balancing behavior of clients for replicated servers using the same DNS name and reduces2354 <p id="rfc.section.11.4.p.5">This requirement also improves the load-balancing behavior of clients for replicated servers using the same DNS name and reduces 2349 2355 the likelihood of a user's experiencing failure in accessing sites which use that strategy. 2350 2356 </p> 2351 <h2 id="rfc.section. 5.5"><a href="#rfc.section.5.5">5.5</a> <a id="attack.proxies" href="#attack.proxies">Proxies and Caching</a></h2>2352 <p id="rfc.section. 5.5.p.1">By their very nature, HTTP proxies are men-in-the-middle, and represent an opportunity for man-in-the-middle attacks. Compromise2357 <h2 id="rfc.section.11.5"><a href="#rfc.section.11.5">11.5</a> <a id="attack.proxies" href="#attack.proxies">Proxies and Caching</a></h2> 2358 <p id="rfc.section.11.5.p.1">By their very nature, HTTP proxies are men-in-the-middle, and represent an opportunity for man-in-the-middle attacks. Compromise 2353 2359 of the systems on which the proxies run can result in serious security and privacy problems. Proxies have access to security-related 2354 2360 information, personal information about individual users and organizations, and proprietary information belonging to users … … 2356 2362 might be used in the commission of a wide range of potential attacks. 2357 2363 </p> 2358 <p id="rfc.section. 5.5.p.2">Proxy operators should protect the systems on which proxies run as they would protect any system that contains or transports2364 <p id="rfc.section.11.5.p.2">Proxy operators should protect the systems on which proxies run as they would protect any system that contains or transports 2359 2365 sensitive information. In particular, log information gathered at proxies often contains highly sensitive personal information, 2360 2366 and/or information about organizations. Log information should be carefully guarded, and appropriate guidelines for use developed 2361 and followed. (<a href="#abuse.of.server.log.information" title="Abuse of Server Log Information">Section 5.2</a>).2362 </p> 2363 <p id="rfc.section. 5.5.p.3">Proxy implementors should consider the privacy and security implications of their design and coding decisions, and of the2367 and followed. (<a href="#abuse.of.server.log.information" title="Abuse of Server Log Information">Section 11.2</a>). 2368 </p> 2369 <p id="rfc.section.11.5.p.3">Proxy implementors should consider the privacy and security implications of their design and coding decisions, and of the 2364 2370 configuration options they provide to proxy operators (especially the default configuration). 2365 2371 </p> 2366 <p id="rfc.section. 5.5.p.4">Users of a proxy need to be aware that they are no trustworthier than the people who run the proxy; HTTP itself cannot solve2372 <p id="rfc.section.11.5.p.4">Users of a proxy need to be aware that they are no trustworthier than the people who run the proxy; HTTP itself cannot solve 2367 2373 this problem. 2368 2374 </p> 2369 <p id="rfc.section. 5.5.p.5">The judicious use of cryptography, when appropriate, may suffice to protect against a broad range of security and privacy2375 <p id="rfc.section.11.5.p.5">The judicious use of cryptography, when appropriate, may suffice to protect against a broad range of security and privacy 2370 2376 attacks. Such cryptography is beyond the scope of the HTTP/1.1 specification. 2371 2377 </p> 2372 <h2 id="rfc.section. 5.6"><a href="#rfc.section.5.6">5.6</a> <a id="attack.DoS" href="#attack.DoS">Denial of Service Attacks on Proxies</a></h2>2373 <p id="rfc.section. 5.6.p.1">They exist. They are hard to defend against. Research continues. Beware.</p>2374 <h1 id="rfc.section. 6"><a href="#rfc.section.6">6.</a> <a id="ack" href="#ack">Acknowledgments</a></h1>2375 <p id="rfc.section. 6.p.1">HTTP has evolved considerably over the years. It has benefited from a large and active developer community--the many people2378 <h2 id="rfc.section.11.6"><a href="#rfc.section.11.6">11.6</a> <a id="attack.DoS" href="#attack.DoS">Denial of Service Attacks on Proxies</a></h2> 2379 <p id="rfc.section.11.6.p.1">They exist. They are hard to defend against. Research continues. Beware.</p> 2380 <h1 id="rfc.section.12"><a href="#rfc.section.12">12.</a> <a id="ack" href="#ack">Acknowledgments</a></h1> 2381 <p id="rfc.section.12.p.1">HTTP has evolved considerably over the years. It has benefited from a large and active developer community--the many people 2376 2382 who have participated on the www-talk mailing list--and it is that community which has been most responsible for the success 2377 2383 of HTTP and of the World-Wide Web in general. Marc Andreessen, Robert Cailliau, Daniel W. Connolly, Bob Denny, John Franks, … … 2379 2385 and Marc VanHeyningen deserve special recognition for their efforts in defining early aspects of the protocol. 2380 2386 </p> 2381 <p id="rfc.section. 6.p.2">This document has benefited greatly from the comments of all those participating in the HTTP-WG. In addition to those already2387 <p id="rfc.section.12.p.2">This document has benefited greatly from the comments of all those participating in the HTTP-WG. In addition to those already 2382 2388 mentioned, the following individuals have contributed to this specification: 2383 2389 </p> 2384 <p id="rfc.section. 6.p.3">Gary Adams, Harald Tveit Alvestrand, Keith Ball, Brian Behlendorf, Paul Burchard, Maurizio Codogno, Mike Cowlishaw, Roman2390 <p id="rfc.section.12.p.3">Gary Adams, Harald Tveit Alvestrand, Keith Ball, Brian Behlendorf, Paul Burchard, Maurizio Codogno, Mike Cowlishaw, Roman 2385 2391 Czyborra, Michael A. Dolan, Daniel DuBois, David J. Fiander, Alan Freier, Marc Hedlund, Greg Herlihy, Koen Holtman, Alex Hopmann, 2386 2392 Bob Jernigan, Shel Kaphan, Rohit Khare, John Klensin, Martijn Koster, Alexei Kosut, David M. Kristol, Daniel LaLiberte, Ben … … 2390 2396 Weinman, Francois Yergeau, Mary Ellen Zurko, Josh Cohen. 2391 2397 </p> 2392 <p id="rfc.section. 6.p.4">Thanks to the "cave men" of Palo Alto. You know who you are.</p>2393 <p id="rfc.section. 6.p.5">Jim Gettys (the editor of <a href="#RFC2616" id="rfc.xref.RFC2616.2"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>) wishes particularly to thank Roy Fielding, the editor of <a href="#RFC2068" id="rfc.xref.RFC2068.4"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2068]</cite></a>, along with John Klensin, Jeff Mogul, Paul Leach, Dave Kristol, Koen Holtman, John Franks, Josh Cohen, Alex Hopmann, Scott2398 <p id="rfc.section.12.p.4">Thanks to the "cave men" of Palo Alto. You know who you are.</p> 2399 <p id="rfc.section.12.p.5">Jim Gettys (the editor of <a href="#RFC2616" id="rfc.xref.RFC2616.2"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>) wishes particularly to thank Roy Fielding, the editor of <a href="#RFC2068" id="rfc.xref.RFC2068.4"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2068]</cite></a>, along with John Klensin, Jeff Mogul, Paul Leach, Dave Kristol, Koen Holtman, John Franks, Josh Cohen, Alex Hopmann, Scott 2394 2400 Lawrence, and Larry Masinter for their help. And thanks go particularly to Jeff Mogul and Scott Lawrence for performing the 2395 2401 "MUST/MAY/SHOULD" audit. 2396 2402 </p> 2397 <p id="rfc.section. 6.p.6">The Apache Group, Anselm Baird-Smith, author of Jigsaw, and Henrik Frystyk implemented RFC 2068 early, and we wish to thank2403 <p id="rfc.section.12.p.6">The Apache Group, Anselm Baird-Smith, author of Jigsaw, and Henrik Frystyk implemented RFC 2068 early, and we wish to thank 2398 2404 them for the discovery of many of the problems that this document attempts to rectify. 2399 2405 </p> 2400 <p id="rfc.section. 6.p.7">This specification makes heavy use of the augmented BNF and generic constructs defined by David H. Crocker for <a href="#RFC5234" id="rfc.xref.RFC5234.4"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a>. Similarly, it reuses many of the definitions provided by Nathaniel Borenstein and Ned Freed for MIME <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>. We hope that their inclusion in this specification will help reduce past confusion over the relationship between HTTP and2406 <p id="rfc.section.12.p.7">This specification makes heavy use of the augmented BNF and generic constructs defined by David H. Crocker for <a href="#RFC5234" id="rfc.xref.RFC5234.4"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a>. Similarly, it reuses many of the definitions provided by Nathaniel Borenstein and Ned Freed for MIME <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>. We hope that their inclusion in this specification will help reduce past confusion over the relationship between HTTP and 2401 2407 Internet mail message formats. 2402 2408 </p> 2403 <h1 id="rfc.references"><a id="rfc.section. 7" href="#rfc.section.7">7.</a> References2409 <h1 id="rfc.references"><a id="rfc.section.13" href="#rfc.section.13">13.</a> References 2404 2410 </h1> 2405 <h2 id="rfc.references.1"><a href="#rfc.section. 7.1" id="rfc.section.7.1">7.1</a> Normative References2411 <h2 id="rfc.references.1"><a href="#rfc.section.13.1" id="rfc.section.13.1">13.1</a> Normative References 2406 2412 </h2> 2407 2413 <table summary="Normative References"> … … 2468 2474 </tr> 2469 2475 </table> 2470 <h2 id="rfc.references.2"><a href="#rfc.section. 7.2" id="rfc.section.7.2">7.2</a> Informative References2476 <h2 id="rfc.references.2"><a href="#rfc.section.13.2" id="rfc.section.13.2">13.2</a> Informative References 2471 2477 </h2> 2472 2478 <table summary="Informative References"> … … 2666 2672 <p id="rfc.section.B.1.p.1">This section summarizes major differences between versions HTTP/1.0 and HTTP/1.1.</p> 2667 2673 <h3 id="rfc.section.B.1.1"><a href="#rfc.section.B.1.1">B.1.1</a> <a id="changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses" href="#changes.to.simplify.multi-homed.web.servers.and.conserve.ip.addresses">Changes to Simplify Multi-homed Web Servers and Conserve IP Addresses</a></h3> 2668 <p id="rfc.section.B.1.1.p.1">The requirements that clients and servers support the Host request-header, report an error if the Host request-header (<a href="#header.host" id="rfc.xref.header.host.2" title="Host">Section 3.4</a>) is missing from an HTTP/1.1 request, and accept absolute URIs (<a href="#request-target" title="request-target">Section 2.8.1.2</a>) are among the most important changes defined by this specification.2674 <p id="rfc.section.B.1.1.p.1">The requirements that clients and servers support the Host request-header, report an error if the Host request-header (<a href="#header.host" id="rfc.xref.header.host.2" title="Host">Section 9.4</a>) is missing from an HTTP/1.1 request, and accept absolute URIs (<a href="#request-target" title="request-target">Section 4.1.2</a>) are among the most important changes defined by this specification. 2669 2675 </p> 2670 2676 <p id="rfc.section.B.1.1.p.2">Older HTTP/1.0 clients assumed a one-to-one relationship of IP addresses and servers; there was no other established mechanism … … 2699 2705 Therefore, we need some other mechanism for indicating a persistent connection is desired, which is safe to use even when 2700 2706 talking to an old proxy that ignores Connection. Persistent connections are the default for HTTP/1.1 messages; we introduce 2701 a new keyword (Connection: close) for declaring non-persistence. See <a href="#header.connection" id="rfc.xref.header.connection.7" title="Connection">Section 3.1</a>.2707 a new keyword (Connection: close) for declaring non-persistence. See <a href="#header.connection" id="rfc.xref.header.connection.7" title="Connection">Section 9.1</a>. 2702 2708 </p> 2703 2709 <p id="rfc.section.B.2.p.3">The original HTTP/1.0 form of persistent connections (the Connection: Keep-Alive and Keep-Alive header) is documented in <a href="http://tools.ietf.org/html/rfc2068#section-19.7.1">Section 19.7.1</a> of <a href="#RFC2068" id="rfc.xref.RFC2068.9"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2068]</cite></a>. … … 2709 2715 <p id="rfc.section.B.3.p.2">Transfer-coding and message lengths all interact in ways that required fixing exactly when chunked encoding is used (to allow 2710 2716 for transfer encoding that may not be self delimiting); it was important to straighten out exactly how message lengths are 2711 computed. (Sections <a href="#transfer.codings" title="Transfer Codings"> 2.10.2</a>, <a href="#message.length" title="Message Length">2.7.4</a>, <a href="#header.content-length" id="rfc.xref.header.content-length.3" title="Content-Length">3.2</a>, see also <a href="#Part3" id="rfc.xref.Part3.9"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="#Part5" id="rfc.xref.Part5.1"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a> and <a href="#Part6" id="rfc.xref.Part6.8"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>)2717 computed. (Sections <a href="#transfer.codings" title="Transfer Codings">6.2</a>, <a href="#message.length" title="Message Length">3.4</a>, <a href="#header.content-length" id="rfc.xref.header.content-length.3" title="Content-Length">9.2</a>, see also <a href="#Part3" id="rfc.xref.Part3.9"><cite title="HTTP/1.1, part 3: Message Payload and Content Negotiation">[Part3]</cite></a>, <a href="#Part5" id="rfc.xref.Part5.1"><cite title="HTTP/1.1, part 5: Range Requests and Partial Responses">[Part5]</cite></a> and <a href="#Part6" id="rfc.xref.Part6.8"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>) 2712 2718 </p> 2713 2719 <p id="rfc.section.B.3.p.3">The use and interpretation of HTTP version numbers has been clarified by <a href="#RFC2145" id="rfc.xref.RFC2145.3"><cite title="Use and Interpretation of HTTP Version Numbers">[RFC2145]</cite></a>. Require proxies to upgrade requests to highest protocol version they support to deal with problems discovered in HTTP/1.0 2714 2720 implementations (<a href="#http.version" title="HTTP Version">Section 2.5</a>) 2715 2721 </p> 2716 <p id="rfc.section.B.3.p.4">Quality Values of zero should indicate that "I don't want something" to allow clients to refuse a representation. (<a href="#quality.values" title="Quality Values">Section 2.10.4</a>)2722 <p id="rfc.section.B.3.p.4">Quality Values of zero should indicate that "I don't want something" to allow clients to refuse a representation. (<a href="#quality.values" title="Quality Values">Section 6.4</a>) 2717 2723 </p> 2718 2724 <p id="rfc.section.B.3.p.5">Transfer-coding had significant problems, particularly with interactions with chunked encoding. The solution is that transfer-codings … … 2720 2726 codings), a new header field (TE) and enabling trailer headers in the future. Transfer encoding is a major performance benefit, 2721 2727 so it was worth fixing <a href="#Nie1997" id="rfc.xref.Nie1997.2"><cite title="Network Performance Effects of HTTP/1.1, CSS1, and PNG">[Nie1997]</cite></a>. TE also solves another, obscure, downward interoperability problem that could have occurred due to interactions between 2722 authentication trailers, chunked encoding and HTTP/1.0 clients.(Section <a href="#transfer.codings" title="Transfer Codings"> 2.10.2</a>, <a href="#chunked.encoding" title="Chunked Transfer Coding">2.10.2.1</a>, and <a href="#header.te" id="rfc.xref.header.te.5" title="TE">3.5</a>)2728 authentication trailers, chunked encoding and HTTP/1.0 clients.(Section <a href="#transfer.codings" title="Transfer Codings">6.2</a>, <a href="#chunked.encoding" title="Chunked Transfer Coding">6.2.1</a>, and <a href="#header.te" id="rfc.xref.header.te.5" title="TE">9.5</a>) 2723 2729 </p> 2724 2730 <h2 id="rfc.section.B.4"><a href="#rfc.section.B.4">B.4</a> <a id="changes.from.rfc.2616" href="#changes.from.rfc.2616">Changes from RFC 2616</a></h2> … … 2732 2738 <p id="rfc.section.B.4.p.3">Clarify that HTTP-Version is case sensitive. (<a href="#http.version" title="HTTP Version">Section 2.5</a>) 2733 2739 </p> 2734 <p id="rfc.section.B.4.p.4">Remove reference to non-existant identity transfer-coding value tokens. (Sections <a href="#transfer.codings" title="Transfer Codings"> 2.10.2</a> and <a href="#message.length" title="Message Length">2.7.4</a>)2735 </p> 2736 <p id="rfc.section.B.4.p.5">Clarification that the chunk length does not include the count of the octets in the chunk header and trailer. (<a href="#chunked.encoding" title="Chunked Transfer Coding">Section 2.10.2.1</a>)2737 </p> 2738 <p id="rfc.section.B.4.p.6">Require that invalid whitespace around field-names be rejected. (<a href="#header.fields" title="Header Fields">Section 2.7.2</a>)2739 </p> 2740 <p id="rfc.section.B.4.p.7">Update use of abs_path production from RFC1808 to the path-absolute + query components of RFC3986. (<a href="#request-target" title="request-target">Section 2.8.1.2</a>)2741 </p> 2742 <p id="rfc.section.B.4.p.8">Clarify exactly when close connection options must be sent. (<a href="#header.connection" id="rfc.xref.header.connection.8" title="Connection">Section 3.1</a>)2740 <p id="rfc.section.B.4.p.4">Remove reference to non-existant identity transfer-coding value tokens. (Sections <a href="#transfer.codings" title="Transfer Codings">6.2</a> and <a href="#message.length" title="Message Length">3.4</a>) 2741 </p> 2742 <p id="rfc.section.B.4.p.5">Clarification that the chunk length does not include the count of the octets in the chunk header and trailer. (<a href="#chunked.encoding" title="Chunked Transfer Coding">Section 6.2.1</a>) 2743 </p> 2744 <p id="rfc.section.B.4.p.6">Require that invalid whitespace around field-names be rejected. (<a href="#header.fields" title="Header Fields">Section 3.2</a>) 2745 </p> 2746 <p id="rfc.section.B.4.p.7">Update use of abs_path production from RFC1808 to the path-absolute + query components of RFC3986. (<a href="#request-target" title="request-target">Section 4.1.2</a>) 2747 </p> 2748 <p id="rfc.section.B.4.p.8">Clarify exactly when close connection options must be sent. (<a href="#header.connection" id="rfc.xref.header.connection.8" title="Connection">Section 9.1</a>) 2743 2749 </p> 2744 2750 <h1 id="rfc.section.C"><a href="#rfc.section.C">C.</a> <a id="collected.abnf" href="#collected.abnf">Collected ABNF</a></h1> … … 3154 3160 <ul class="ind"> 3155 3161 <li class="indline0"><a id="rfc.index.A" href="#rfc.index.A"><b>A</b></a><ul class="ind"> 3156 <li class="indline1">application/http Media Type <a class="iref" href="#rfc.iref.a.1"><b> 4.3.2</b></a></li>3162 <li class="indline1">application/http Media Type <a class="iref" href="#rfc.iref.a.1"><b>10.3.2</b></a></li> 3157 3163 </ul> 3158 3164 </li> 3159 3165 <li class="indline0"><a id="rfc.index.B" href="#rfc.index.B"><b>B</b></a><ul class="ind"> 3160 <li class="indline1"><em>BCP97</em> <a class="iref" href="#rfc.xref.BCP97.1"> 7.1</a>, <a class="iref" href="#rfc.xref.BCP97.2">7.1</a>, <a class="iref" href="#rfc.xref.BCP97.3">7.1</a>, <a class="iref" href="#BCP97"><b>7.2</b></a></li>3166 <li class="indline1"><em>BCP97</em> <a class="iref" href="#rfc.xref.BCP97.1">13.1</a>, <a class="iref" href="#rfc.xref.BCP97.2">13.1</a>, <a class="iref" href="#rfc.xref.BCP97.3">13.1</a>, <a class="iref" href="#BCP97"><b>13.2</b></a></li> 3161 3167 </ul> 3162 3168 </li> … … 3164 3170 <li class="indline1">cache <a class="iref" href="#rfc.iref.c.3">2.3</a></li> 3165 3171 <li class="indline1">cacheable <a class="iref" href="#rfc.iref.c.4">2.3</a></li> 3166 <li class="indline1">chunked (Coding Format) <a class="iref" href="#rfc.iref.c.5"> 2.10.2.1</a></li>3172 <li class="indline1">chunked (Coding Format) <a class="iref" href="#rfc.iref.c.5">6.2.1</a></li> 3167 3173 <li class="indline1">client <a class="iref" href="#rfc.iref.c.1">2.1</a></li> 3168 3174 <li class="indline1">Coding Format 3169 3175 <ul class="ind"> 3170 <li class="indline1">chunked <a class="iref" href="#rfc.iref.c.6"> 2.10.2.1</a></li>3171 <li class="indline1">compress <a class="iref" href="#rfc.iref.c.8"> 2.10.2.2.1</a></li>3172 <li class="indline1">deflate <a class="iref" href="#rfc.iref.c.9"> 2.10.2.2.2</a></li>3173 <li class="indline1">gzip <a class="iref" href="#rfc.iref.c.10"> 2.10.2.2.3</a></li>3176 <li class="indline1">chunked <a class="iref" href="#rfc.iref.c.6">6.2.1</a></li> 3177 <li class="indline1">compress <a class="iref" href="#rfc.iref.c.8">6.2.2.1</a></li> 3178 <li class="indline1">deflate <a class="iref" href="#rfc.iref.c.9">6.2.2.2</a></li> 3179 <li class="indline1">gzip <a class="iref" href="#rfc.iref.c.10">6.2.2.3</a></li> 3174 3180 </ul> 3175 3181 </li> 3176 <li class="indline1">compress (Coding Format) <a class="iref" href="#rfc.iref.c.7"> 2.10.2.2.1</a></li>3182 <li class="indline1">compress (Coding Format) <a class="iref" href="#rfc.iref.c.7">6.2.2.1</a></li> 3177 3183 <li class="indline1">connection <a class="iref" href="#rfc.iref.c.2">2.1</a></li> 3178 <li class="indline1">Connection header <a class="iref" href="#rfc.xref.header.connection.1"> 2.7.5</a>, <a class="iref" href="#rfc.xref.header.connection.2">2.11.1.2</a>, <a class="iref" href="#rfc.xref.header.connection.3">2.11.1.3</a>, <a class="iref" href="#rfc.iref.c.11"><b>3.1</b></a>, <a class="iref" href="#rfc.xref.header.connection.4">3.5</a>, <a class="iref" href="#rfc.xref.header.connection.5">3.8</a>, <a class="iref" href="#rfc.xref.header.connection.6">4.1</a>, <a class="iref" href="#rfc.xref.header.connection.7">B.2</a>, <a class="iref" href="#rfc.xref.header.connection.8">B.4</a></li>3179 <li class="indline1">Content-Length header <a class="iref" href="#rfc.xref.header.content-length.1"> 2.7.4</a>, <a class="iref" href="#rfc.iref.c.12"><b>3.2</b></a>, <a class="iref" href="#rfc.xref.header.content-length.2">4.1</a>, <a class="iref" href="#rfc.xref.header.content-length.3">B.3</a></li>3184 <li class="indline1">Connection header <a class="iref" href="#rfc.xref.header.connection.1">3.5</a>, <a class="iref" href="#rfc.xref.header.connection.2">7.1.2</a>, <a class="iref" href="#rfc.xref.header.connection.3">7.1.3</a>, <a class="iref" href="#rfc.iref.c.11"><b>9.1</b></a>, <a class="iref" href="#rfc.xref.header.connection.4">9.5</a>, <a class="iref" href="#rfc.xref.header.connection.5">9.8</a>, <a class="iref" href="#rfc.xref.header.connection.6">10.1</a>, <a class="iref" href="#rfc.xref.header.connection.7">B.2</a>, <a class="iref" href="#rfc.xref.header.connection.8">B.4</a></li> 3185 <li class="indline1">Content-Length header <a class="iref" href="#rfc.xref.header.content-length.1">3.4</a>, <a class="iref" href="#rfc.iref.c.12"><b>9.2</b></a>, <a class="iref" href="#rfc.xref.header.content-length.2">10.1</a>, <a class="iref" href="#rfc.xref.header.content-length.3">B.3</a></li> 3180 3186 </ul> 3181 3187 </li> 3182 3188 <li class="indline0"><a id="rfc.index.D" href="#rfc.index.D"><b>D</b></a><ul class="ind"> 3183 <li class="indline1">Date header <a class="iref" href="#rfc.xref.header.date.1"> 2.7.5</a>, <a class="iref" href="#rfc.iref.d.3"><b>3.3</b></a>, <a class="iref" href="#rfc.xref.header.date.2">4.1</a></li>3184 <li class="indline1">deflate (Coding Format) <a class="iref" href="#rfc.iref.d.2"> 2.10.2.2.2</a></li>3189 <li class="indline1">Date header <a class="iref" href="#rfc.xref.header.date.1">3.5</a>, <a class="iref" href="#rfc.iref.d.3"><b>9.3</b></a>, <a class="iref" href="#rfc.xref.header.date.2">10.1</a></li> 3190 <li class="indline1">deflate (Coding Format) <a class="iref" href="#rfc.iref.d.2">6.2.2.2</a></li> 3185 3191 <li class="indline1">downstream <a class="iref" href="#rfc.iref.d.1">2.2</a></li> 3186 3192 </ul> … … 3192 3198 <li class="indline1"><tt>absolute-URI</tt> <a class="iref" href="#rfc.iref.g.27"><b>2.6</b></a></li> 3193 3199 <li class="indline1">ALPHA <a class="iref" href="#rfc.iref.g.1"><b>1.2</b></a></li> 3194 <li class="indline1"><tt>asctime-date</tt> <a class="iref" href="#rfc.iref.g.69"><b> 2.10.1</b></a></li>3195 <li class="indline1"><tt>attribute</tt> <a class="iref" href="#rfc.iref.g.73"><b> 2.10.2</b></a></li>3200 <li class="indline1"><tt>asctime-date</tt> <a class="iref" href="#rfc.iref.g.69"><b>6.1</b></a></li> 3201 <li class="indline1"><tt>attribute</tt> <a class="iref" href="#rfc.iref.g.73"><b>6.2</b></a></li> 3196 3202 <li class="indline1"><tt>authority</tt> <a class="iref" href="#rfc.iref.g.28"><b>2.6</b></a></li> 3197 3203 <li class="indline1"><tt>BWS</tt> <a class="iref" href="#rfc.iref.g.15"><b>1.2.2</b></a></li> 3198 <li class="indline1"><tt>chunk</tt> <a class="iref" href="#rfc.iref.g.78"><b> 2.10.2.1</b></a></li>3199 <li class="indline1"><tt>chunk-data</tt> <a class="iref" href="#rfc.iref.g.84"><b> 2.10.2.1</b></a></li>3200 <li class="indline1"><tt>chunk-ext</tt> <a class="iref" href="#rfc.iref.g.81"><b> 2.10.2.1</b></a></li>3201 <li class="indline1"><tt>chunk-ext-name</tt> <a class="iref" href="#rfc.iref.g.82"><b> 2.10.2.1</b></a></li>3202 <li class="indline1"><tt>chunk-ext-val</tt> <a class="iref" href="#rfc.iref.g.83"><b> 2.10.2.1</b></a></li>3203 <li class="indline1"><tt>chunk-size</tt> <a class="iref" href="#rfc.iref.g.79"><b> 2.10.2.1</b></a></li>3204 <li class="indline1"><tt>Chunked-Body</tt> <a class="iref" href="#rfc.iref.g.77"><b> 2.10.2.1</b></a></li>3205 <li class="indline1"><tt>comment</tt> <a class="iref" href="#rfc.iref.g.40"><b> 2.7.2</b></a></li>3206 <li class="indline1"><tt>Connection</tt> <a class="iref" href="#rfc.iref.g.90"><b> 3.1</b></a></li>3207 <li class="indline1"><tt>connection-token</tt> <a class="iref" href="#rfc.iref.g.92"><b> 3.1</b></a></li>3208 <li class="indline1"><tt>Connection-v</tt> <a class="iref" href="#rfc.iref.g.91"><b> 3.1</b></a></li>3209 <li class="indline1"><tt>Content-Length</tt> <a class="iref" href="#rfc.iref.g.93"><b> 3.2</b></a></li>3210 <li class="indline1"><tt>Content-Length-v</tt> <a class="iref" href="#rfc.iref.g.94"><b> 3.2</b></a></li>3204 <li class="indline1"><tt>chunk</tt> <a class="iref" href="#rfc.iref.g.78"><b>6.2.1</b></a></li> 3205 <li class="indline1"><tt>chunk-data</tt> <a class="iref" href="#rfc.iref.g.84"><b>6.2.1</b></a></li> 3206 <li class="indline1"><tt>chunk-ext</tt> <a class="iref" href="#rfc.iref.g.81"><b>6.2.1</b></a></li> 3207 <li class="indline1"><tt>chunk-ext-name</tt> <a class="iref" href="#rfc.iref.g.82"><b>6.2.1</b></a></li> 3208 <li class="indline1"><tt>chunk-ext-val</tt> <a class="iref" href="#rfc.iref.g.83"><b>6.2.1</b></a></li> 3209 <li class="indline1"><tt>chunk-size</tt> <a class="iref" href="#rfc.iref.g.79"><b>6.2.1</b></a></li> 3210 <li class="indline1"><tt>Chunked-Body</tt> <a class="iref" href="#rfc.iref.g.77"><b>6.2.1</b></a></li> 3211 <li class="indline1"><tt>comment</tt> <a class="iref" href="#rfc.iref.g.40"><b>3.2</b></a></li> 3212 <li class="indline1"><tt>Connection</tt> <a class="iref" href="#rfc.iref.g.90"><b>9.1</b></a></li> 3213 <li class="indline1"><tt>connection-token</tt> <a class="iref" href="#rfc.iref.g.92"><b>9.1</b></a></li> 3214 <li class="indline1"><tt>Connection-v</tt> <a class="iref" href="#rfc.iref.g.91"><b>9.1</b></a></li> 3215 <li class="indline1"><tt>Content-Length</tt> <a class="iref" href="#rfc.iref.g.93"><b>9.2</b></a></li> 3216 <li class="indline1"><tt>Content-Length-v</tt> <a class="iref" href="#rfc.iref.g.94"><b>9.2</b></a></li> 3211 3217 <li class="indline1">CR <a class="iref" href="#rfc.iref.g.2"><b>1.2</b></a></li> 3212 3218 <li class="indline1">CRLF <a class="iref" href="#rfc.iref.g.3"><b>1.2</b></a></li> 3213 <li class="indline1"><tt>ctext</tt> <a class="iref" href="#rfc.iref.g.41"><b> 2.7.2</b></a></li>3219 <li class="indline1"><tt>ctext</tt> <a class="iref" href="#rfc.iref.g.41"><b>3.2</b></a></li> 3214 3220 <li class="indline1">CTL <a class="iref" href="#rfc.iref.g.4"><b>1.2</b></a></li> 3215 <li class="indline1"><tt>Date</tt> <a class="iref" href="#rfc.iref.g.95"><b> 3.3</b></a></li>3216 <li class="indline1"><tt>Date-v</tt> <a class="iref" href="#rfc.iref.g.96"><b> 3.3</b></a></li>3217 <li class="indline1"><tt>date1</tt> <a class="iref" href="#rfc.iref.g.56"><b> 2.10.1</b></a></li>3218 <li class="indline1"><tt>date2</tt> <a class="iref" href="#rfc.iref.g.75"><b> 2.10.2</b></a></li>3219 <li class="indline1"><tt>date3</tt> <a class="iref" href="#rfc.iref.g.76"><b> 2.10.2</b></a></li>3220 <li class="indline1"><tt>day</tt> <a class="iref" href="#rfc.iref.g.63"><b> 2.10.1</b></a></li>3221 <li class="indline1"><tt>day-name</tt> <a class="iref" href="#rfc.iref.g.61"><b> 2.10.1</b></a></li>3222 <li class="indline1"><tt>day-name-l</tt> <a class="iref" href="#rfc.iref.g.62"><b> 2.10.1</b></a></li>3221 <li class="indline1"><tt>Date</tt> <a class="iref" href="#rfc.iref.g.95"><b>9.3</b></a></li> 3222 <li class="indline1"><tt>Date-v</tt> <a class="iref" href="#rfc.iref.g.96"><b>9.3</b></a></li> 3223 <li class="indline1"><tt>date1</tt> <a class="iref" href="#rfc.iref.g.56"><b>6.1</b></a></li> 3224 <li class="indline1"><tt>date2</tt> <a class="iref" href="#rfc.iref.g.75"><b>6.2</b></a></li> 3225 <li class="indline1"><tt>date3</tt> <a class="iref" href="#rfc.iref.g.76"><b>6.2</b></a></li> 3226 <li class="indline1"><tt>day</tt> <a class="iref" href="#rfc.iref.g.63"><b>6.1</b></a></li> 3227 <li class="indline1"><tt>day-name</tt> <a class="iref" href="#rfc.iref.g.61"><b>6.1</b></a></li> 3228 <li class="indline1"><tt>day-name-l</tt> <a class="iref" href="#rfc.iref.g.62"><b>6.1</b></a></li> 3223 3229 <li class="indline1">DIGIT <a class="iref" href="#rfc.iref.g.5"><b>1.2</b></a></li> 3224 3230 <li class="indline1">DQUOTE <a class="iref" href="#rfc.iref.g.6"><b>1.2</b></a></li> 3225 <li class="indline1"><tt>extension-code</tt> <a class="iref" href="#rfc.iref.g.52"><b> 2.9.1.1</b></a></li>3226 <li class="indline1"><tt>extension-method</tt> <a class="iref" href="#rfc.iref.g.47"><b> 2.8.1.1</b></a></li>3227 <li class="indline1"><tt>field-content</tt> <a class="iref" href="#rfc.iref.g.39"><b> 2.7.2</b></a></li>3228 <li class="indline1"><tt>field-name</tt> <a class="iref" href="#rfc.iref.g.37"><b> 2.7.2</b></a></li>3229 <li class="indline1"><tt>field-value</tt> <a class="iref" href="#rfc.iref.g.38"><b> 2.7.2</b></a></li>3230 <li class="indline1"><tt>general-header</tt> <a class="iref" href="#rfc.iref.g.43"><b> 2.7.5</b></a></li>3231 <li class="indline1"><tt>GMT</tt> <a class="iref" href="#rfc.iref.g.66"><b> 2.10.1</b></a></li>3232 <li class="indline1"><tt>header-field</tt> <a class="iref" href="#rfc.iref.g.36"><b> 2.7.2</b></a></li>3231 <li class="indline1"><tt>extension-code</tt> <a class="iref" href="#rfc.iref.g.52"><b>5.1.1</b></a></li> 3232 <li class="indline1"><tt>extension-method</tt> <a class="iref" href="#rfc.iref.g.47"><b>4.1.1</b></a></li> 3233 <li class="indline1"><tt>field-content</tt> <a class="iref" href="#rfc.iref.g.39"><b>3.2</b></a></li> 3234 <li class="indline1"><tt>field-name</tt> <a class="iref" href="#rfc.iref.g.37"><b>3.2</b></a></li> 3235 <li class="indline1"><tt>field-value</tt> <a class="iref" href="#rfc.iref.g.38"><b>3.2</b></a></li> 3236 <li class="indline1"><tt>general-header</tt> <a class="iref" href="#rfc.iref.g.43"><b>3.5</b></a></li> 3237 <li class="indline1"><tt>GMT</tt> <a class="iref" href="#rfc.iref.g.66"><b>6.1</b></a></li> 3238 <li class="indline1"><tt>header-field</tt> <a class="iref" href="#rfc.iref.g.36"><b>3.2</b></a></li> 3233 3239 <li class="indline1">HEXDIG <a class="iref" href="#rfc.iref.g.7"><b>1.2</b></a></li> 3234 <li class="indline1"><tt>Host</tt> <a class="iref" href="#rfc.iref.g.97"><b> 3.4</b></a></li>3235 <li class="indline1"><tt>Host-v</tt> <a class="iref" href="#rfc.iref.g.98"><b> 3.4</b></a></li>3236 <li class="indline1"><tt>hour</tt> <a class="iref" href="#rfc.iref.g.58"><b> 2.10.1</b></a></li>3237 <li class="indline1"><tt>HTTP-date</tt> <a class="iref" href="#rfc.iref.g.54"><b> 2.10.1</b></a></li>3238 <li class="indline1"><tt>HTTP-message</tt> <a class="iref" href="#rfc.iref.g.35"><b> 2.7</b></a></li>3240 <li class="indline1"><tt>Host</tt> <a class="iref" href="#rfc.iref.g.97"><b>9.4</b></a></li> 3241 <li class="indline1"><tt>Host-v</tt> <a class="iref" href="#rfc.iref.g.98"><b>9.4</b></a></li> 3242 <li class="indline1"><tt>hour</tt> <a class="iref" href="#rfc.iref.g.58"><b>6.1</b></a></li> 3243 <li class="indline1"><tt>HTTP-date</tt> <a class="iref" href="#rfc.iref.g.54"><b>6.1</b></a></li> 3244 <li class="indline1"><tt>HTTP-message</tt> <a class="iref" href="#rfc.iref.g.35"><b>3</b></a></li> 3239 3245 <li class="indline1"><tt>HTTP-Prot-Name</tt> <a class="iref" href="#rfc.iref.g.25"><b>2.5</b></a></li> 3240 3246 <li class="indline1"><tt>http-URI</tt> <a class="iref" href="#rfc.iref.g.33"><b>2.6.1</b></a></li> 3241 3247 <li class="indline1"><tt>HTTP-Version</tt> <a class="iref" href="#rfc.iref.g.24"><b>2.5</b></a></li> 3242 3248 <li class="indline1"><tt>https-URI</tt> <a class="iref" href="#rfc.iref.g.34"><b>2.6.2</b></a></li> 3243 <li class="indline1"><tt>last-chunk</tt> <a class="iref" href="#rfc.iref.g.80"><b> 2.10.2.1</b></a></li>3249 <li class="indline1"><tt>last-chunk</tt> <a class="iref" href="#rfc.iref.g.80"><b>6.2.1</b></a></li> 3244 3250 <li class="indline1">LF <a class="iref" href="#rfc.iref.g.8"><b>1.2</b></a></li> 3245 <li class="indline1"><tt>message-body</tt> <a class="iref" href="#rfc.iref.g.42"><b> 2.7.3</b></a></li>3246 <li class="indline1"><tt>Method</tt> <a class="iref" href="#rfc.iref.g.46"><b> 2.8.1.1</b></a></li>3247 <li class="indline1"><tt>minute</tt> <a class="iref" href="#rfc.iref.g.59"><b> 2.10.1</b></a></li>3248 <li class="indline1"><tt>month</tt> <a class="iref" href="#rfc.iref.g.64"><b> 2.10.1</b></a></li>3249 <li class="indline1"><tt>obs-date</tt> <a class="iref" href="#rfc.iref.g.67"><b> 2.10.1</b></a></li>3251 <li class="indline1"><tt>message-body</tt> <a class="iref" href="#rfc.iref.g.42"><b>3.3</b></a></li> 3252 <li class="indline1"><tt>Method</tt> <a class="iref" href="#rfc.iref.g.46"><b>4.1.1</b></a></li> 3253 <li class="indline1"><tt>minute</tt> <a class="iref" href="#rfc.iref.g.59"><b>6.1</b></a></li> 3254 <li class="indline1"><tt>month</tt> <a class="iref" href="#rfc.iref.g.64"><b>6.1</b></a></li> 3255 <li class="indline1"><tt>obs-date</tt> <a class="iref" href="#rfc.iref.g.67"><b>6.1</b></a></li> 3250 3256 <li class="indline1"><tt>obs-text</tt> <a class="iref" href="#rfc.iref.g.20"><b>1.2.2</b></a></li> 3251 3257 <li class="indline1">OCTET <a class="iref" href="#rfc.iref.g.9"><b>1.2</b></a></li> … … 3253 3259 <li class="indline1"><tt>path-absolute</tt> <a class="iref" href="#rfc.iref.g.29"><b>2.6</b></a></li> 3254 3260 <li class="indline1"><tt>port</tt> <a class="iref" href="#rfc.iref.g.30"><b>2.6</b></a></li> 3255 <li class="indline1"><tt>product</tt> <a class="iref" href="#rfc.iref.g.87"><b> 2.10.3</b></a></li>3256 <li class="indline1"><tt>product-version</tt> <a class="iref" href="#rfc.iref.g.88"><b> 2.10.3</b></a></li>3257 <li class="indline1"><tt>protocol-name</tt> <a class="iref" href="#rfc.iref.g.113"><b> 3.9</b></a></li>3258 <li class="indline1"><tt>protocol-version</tt> <a class="iref" href="#rfc.iref.g.114"><b> 3.9</b></a></li>3259 <li class="indline1"><tt>pseudonym</tt> <a class="iref" href="#rfc.iref.g.116"><b> 3.9</b></a></li>3261 <li class="indline1"><tt>product</tt> <a class="iref" href="#rfc.iref.g.87"><b>6.3</b></a></li> 3262 <li class="indline1"><tt>product-version</tt> <a class="iref" href="#rfc.iref.g.88"><b>6.3</b></a></li> 3263 <li class="indline1"><tt>protocol-name</tt> <a class="iref" href="#rfc.iref.g.113"><b>9.9</b></a></li> 3264 <li class="indline1"><tt>protocol-version</tt> <a class="iref" href="#rfc.iref.g.114"><b>9.9</b></a></li> 3265 <li class="indline1"><tt>pseudonym</tt> <a class="iref" href="#rfc.iref.g.116"><b>9.9</b></a></li> 3260 3266 <li class="indline1"><tt>qdtext</tt> <a class="iref" href="#rfc.iref.g.19"><b>1.2.2</b></a></li> 3261 3267 <li class="indline1"><tt>query</tt> <a class="iref" href="#rfc.iref.g.31"><b>2.6</b></a></li> … … 3263 3269 <li class="indline1"><tt>quoted-string</tt> <a class="iref" href="#rfc.iref.g.18"><b>1.2.2</b></a></li> 3264 3270 <li class="indline1"><tt>quoted-text</tt> <a class="iref" href="#rfc.iref.g.21"><b>1.2.2</b></a></li> 3265 <li class="indline1"><tt>qvalue</tt> <a class="iref" href="#rfc.iref.g.89"><b> 2.10.4</b></a></li>3266 <li class="indline1"><tt>Reason-Phrase</tt> <a class="iref" href="#rfc.iref.g.53"><b> 2.9.1.1</b></a></li>3267 <li class="indline1"><tt>received-by</tt> <a class="iref" href="#rfc.iref.g.115"><b> 3.9</b></a></li>3268 <li class="indline1"><tt>received-protocol</tt> <a class="iref" href="#rfc.iref.g.112"><b> 3.9</b></a></li>3269 <li class="indline1"><tt>Request</tt> <a class="iref" href="#rfc.iref.g.44"><b> 2.8</b></a></li>3270 <li class="indline1"><tt>Request-Line</tt> <a class="iref" href="#rfc.iref.g.45"><b> 2.8.1</b></a></li>3271 <li class="indline1"><tt>request-target</tt> <a class="iref" href="#rfc.iref.g.48"><b> 2.8.1.2</b></a></li>3272 <li class="indline1"><tt>Response</tt> <a class="iref" href="#rfc.iref.g.49"><b> 2.9</b></a></li>3273 <li class="indline1"><tt>rfc1123-date</tt> <a class="iref" href="#rfc.iref.g.55"><b> 2.10.1</b></a></li>3274 <li class="indline1"><tt>rfc850-date</tt> <a class="iref" href="#rfc.iref.g.68"><b> 2.10.1</b></a></li>3271 <li class="indline1"><tt>qvalue</tt> <a class="iref" href="#rfc.iref.g.89"><b>6.4</b></a></li> 3272 <li class="indline1"><tt>Reason-Phrase</tt> <a class="iref" href="#rfc.iref.g.53"><b>5.1.1</b></a></li> 3273 <li class="indline1"><tt>received-by</tt> <a class="iref" href="#rfc.iref.g.115"><b>9.9</b></a></li> 3274 <li class="indline1"><tt>received-protocol</tt> <a class="iref" href="#rfc.iref.g.112"><b>9.9</b></a></li> 3275 <li class="indline1"><tt>Request</tt> <a class="iref" href="#rfc.iref.g.44"><b>4</b></a></li> 3276 <li class="indline1"><tt>Request-Line</tt> <a class="iref" href="#rfc.iref.g.45"><b>4.1</b></a></li> 3277 <li class="indline1"><tt>request-target</tt> <a class="iref" href="#rfc.iref.g.48"><b>4.1.2</b></a></li> 3278 <li class="indline1"><tt>Response</tt> <a class="iref" href="#rfc.iref.g.49"><b>5</b></a></li> 3279 <li class="indline1"><tt>rfc1123-date</tt> <a class="iref" href="#rfc.iref.g.55"><b>6.1</b></a></li> 3280 <li class="indline1"><tt>rfc850-date</tt> <a class="iref" href="#rfc.iref.g.68"><b>6.1</b></a></li> 3275 3281 <li class="indline1"><tt>RWS</tt> <a class="iref" href="#rfc.iref.g.14"><b>1.2.2</b></a></li> 3276 <li class="indline1"><tt>second</tt> <a class="iref" href="#rfc.iref.g.60"><b> 2.10.1</b></a></li>3282 <li class="indline1"><tt>second</tt> <a class="iref" href="#rfc.iref.g.60"><b>6.1</b></a></li> 3277 3283 <li class="indline1">SP <a class="iref" href="#rfc.iref.g.10"><b>1.2</b></a></li> 3278 <li class="indline1"><tt>Status-Code</tt> <a class="iref" href="#rfc.iref.g.51"><b> 2.9.1.1</b></a></li>3279 <li class="indline1"><tt>Status-Line</tt> <a class="iref" href="#rfc.iref.g.50"><b> 2.9.1</b></a></li>3280 <li class="indline1"><tt>t-codings</tt> <a class="iref" href="#rfc.iref.g.101"><b> 3.5</b></a></li>3284 <li class="indline1"><tt>Status-Code</tt> <a class="iref" href="#rfc.iref.g.51"><b>5.1.1</b></a></li> 3285 <li class="indline1"><tt>Status-Line</tt> <a class="iref" href="#rfc.iref.g.50"><b>5.1</b></a></li> 3286 <li class="indline1"><tt>t-codings</tt> <a class="iref" href="#rfc.iref.g.101"><b>9.5</b></a></li> 3281 3287 <li class="indline1"><tt>tchar</tt> <a class="iref" href="#rfc.iref.g.17"><b>1.2.2</b></a></li> 3282 <li class="indline1"><tt>TE</tt> <a class="iref" href="#rfc.iref.g.99"><b> 3.5</b></a></li>3283 <li class="indline1"><tt>te-ext</tt> <a class="iref" href="#rfc.iref.g.103"><b> 3.5</b></a></li>3284 <li class="indline1"><tt>te-params</tt> <a class="iref" href="#rfc.iref.g.102"><b> 3.5</b></a></li>3285 <li class="indline1"><tt>TE-v</tt> <a class="iref" href="#rfc.iref.g.100"><b> 3.5</b></a></li>3286 <li class="indline1"><tt>time-of-day</tt> <a class="iref" href="#rfc.iref.g.57"><b> 2.10.1</b></a></li>3288 <li class="indline1"><tt>TE</tt> <a class="iref" href="#rfc.iref.g.99"><b>9.5</b></a></li> 3289 <li class="indline1"><tt>te-ext</tt> <a class="iref" href="#rfc.iref.g.103"><b>9.5</b></a></li> 3290 <li class="indline1"><tt>te-params</tt> <a class="iref" href="#rfc.iref.g.102"><b>9.5</b></a></li> 3291 <li class="indline1"><tt>TE-v</tt> <a class="iref" href="#rfc.iref.g.100"><b>9.5</b></a></li> 3292 <li class="indline1"><tt>time-of-day</tt> <a class="iref" href="#rfc.iref.g.57"><b>6.1</b></a></li> 3287 3293 <li class="indline1"><tt>token</tt> <a class="iref" href="#rfc.iref.g.16"><b>1.2.2</b></a></li> 3288 <li class="indline1"><tt>Trailer</tt> <a class="iref" href="#rfc.iref.g.104"><b> 3.6</b></a></li>3289 <li class="indline1"><tt>trailer-part</tt> <a class="iref" href="#rfc.iref.g.85"><b> 2.10.2.1</b></a></li>3290 <li class="indline1"><tt>Trailer-v</tt> <a class="iref" href="#rfc.iref.g.105"><b> 3.6</b></a></li>3291 <li class="indline1"><tt>transfer-coding</tt> <a class="iref" href="#rfc.iref.g.70"><b> 2.10.2</b></a></li>3292 <li class="indline1"><tt>Transfer-Encoding</tt> <a class="iref" href="#rfc.iref.g.106"><b> 3.7</b></a></li>3293 <li class="indline1"><tt>Transfer-Encoding-v</tt> <a class="iref" href="#rfc.iref.g.107"><b> 3.7</b></a></li>3294 <li class="indline1"><tt>transfer-extension</tt> <a class="iref" href="#rfc.iref.g.71"><b> 2.10.2</b></a></li>3295 <li class="indline1"><tt>transfer-parameter</tt> <a class="iref" href="#rfc.iref.g.72"><b> 2.10.2</b></a></li>3296 <li class="indline1"><tt>Upgrade</tt> <a class="iref" href="#rfc.iref.g.108"><b> 3.8</b></a></li>3297 <li class="indline1"><tt>Upgrade-v</tt> <a class="iref" href="#rfc.iref.g.109"><b> 3.8</b></a></li>3294 <li class="indline1"><tt>Trailer</tt> <a class="iref" href="#rfc.iref.g.104"><b>9.6</b></a></li> 3295 <li class="indline1"><tt>trailer-part</tt> <a class="iref" href="#rfc.iref.g.85"><b>6.2.1</b></a></li> 3296 <li class="indline1"><tt>Trailer-v</tt> <a class="iref" href="#rfc.iref.g.105"><b>9.6</b></a></li> 3297 <li class="indline1"><tt>transfer-coding</tt> <a class="iref" href="#rfc.iref.g.70"><b>6.2</b></a></li> 3298 <li class="indline1"><tt>Transfer-Encoding</tt> <a class="iref" href="#rfc.iref.g.106"><b>9.7</b></a></li> 3299 <li class="indline1"><tt>Transfer-Encoding-v</tt> <a class="iref" href="#rfc.iref.g.107"><b>9.7</b></a></li> 3300 <li class="indline1"><tt>transfer-extension</tt> <a class="iref" href="#rfc.iref.g.71"><b>6.2</b></a></li> 3301 <li class="indline1"><tt>transfer-parameter</tt> <a class="iref" href="#rfc.iref.g.72"><b>6.2</b></a></li> 3302 <li class="indline1"><tt>Upgrade</tt> <a class="iref" href="#rfc.iref.g.108"><b>9.8</b></a></li> 3303 <li class="indline1"><tt>Upgrade-v</tt> <a class="iref" href="#rfc.iref.g.109"><b>9.8</b></a></li> 3298 3304 <li class="indline1"><tt>uri-host</tt> <a class="iref" href="#rfc.iref.g.32"><b>2.6</b></a></li> 3299 3305 <li class="indline1"><tt>URI-reference</tt> <a class="iref" href="#rfc.iref.g.26"><b>2.6</b></a></li> 3300 <li class="indline1"><tt>value</tt> <a class="iref" href="#rfc.iref.g.74"><b> 2.10.2</b></a></li>3306 <li class="indline1"><tt>value</tt> <a class="iref" href="#rfc.iref.g.74"><b>6.2</b></a></li> 3301 3307 <li class="indline1">VCHAR <a class="iref" href="#rfc.iref.g.11"><b>1.2</b></a></li> 3302 <li class="indline1"><tt>Via</tt> <a class="iref" href="#rfc.iref.g.110"><b> 3.9</b></a></li>3303 <li class="indline1"><tt>Via-v</tt> <a class="iref" href="#rfc.iref.g.111"><b> 3.9</b></a></li>3308 <li class="indline1"><tt>Via</tt> <a class="iref" href="#rfc.iref.g.110"><b>9.9</b></a></li> 3309 <li class="indline1"><tt>Via-v</tt> <a class="iref" href="#rfc.iref.g.111"><b>9.9</b></a></li> 3304 3310 <li class="indline1">WSP <a class="iref" href="#rfc.iref.g.12"><b>1.2</b></a></li> 3305 <li class="indline1"><tt>year</tt> <a class="iref" href="#rfc.iref.g.65"><b> 2.10.1</b></a></li>3311 <li class="indline1"><tt>year</tt> <a class="iref" href="#rfc.iref.g.65"><b>6.1</b></a></li> 3306 3312 </ul> 3307 3313 </li> 3308 <li class="indline1">gzip (Coding Format) <a class="iref" href="#rfc.iref.g.86"> 2.10.2.2.3</a></li>3314 <li class="indline1">gzip (Coding Format) <a class="iref" href="#rfc.iref.g.86">6.2.2.3</a></li> 3309 3315 </ul> 3310 3316 </li> 3311 3317 <li class="indline0"><a id="rfc.index.H" href="#rfc.index.H"><b>H</b></a><ul class="ind"> 3312 <li class="indline1">header field <a class="iref" href="#rfc.iref.h.5"> 2.7</a></li>3313 <li class="indline1">header section <a class="iref" href="#rfc.iref.h.3"> 2.7</a></li>3314 <li class="indline1">headers <a class="iref" href="#rfc.iref.h.4"> 2.7</a></li>3318 <li class="indline1">header field <a class="iref" href="#rfc.iref.h.5">3</a></li> 3319 <li class="indline1">header section <a class="iref" href="#rfc.iref.h.3">3</a></li> 3320 <li class="indline1">headers <a class="iref" href="#rfc.iref.h.4">3</a></li> 3315 3321 <li class="indline1">Headers 3316 3322 <ul class="ind"> 3317 <li class="indline1">Connection <a class="iref" href="#rfc.xref.header.connection.1"> 2.7.5</a>, <a class="iref" href="#rfc.xref.header.connection.2">2.11.1.2</a>, <a class="iref" href="#rfc.xref.header.connection.3">2.11.1.3</a>, <a class="iref" href="#rfc.iref.h.6"><b>3.1</b></a>, <a class="iref" href="#rfc.xref.header.connection.4">3.5</a>, <a class="iref" href="#rfc.xref.header.connection.5">3.8</a>, <a class="iref" href="#rfc.xref.header.connection.6">4.1</a>, <a class="iref" href="#rfc.xref.header.connection.7">B.2</a>, <a class="iref" href="#rfc.xref.header.connection.8">B.4</a></li>3318 <li class="indline1">Content-Length <a class="iref" href="#rfc.xref.header.content-length.1"> 2.7.4</a>, <a class="iref" href="#rfc.iref.h.7"><b>3.2</b></a>, <a class="iref" href="#rfc.xref.header.content-length.2">4.1</a>, <a class="iref" href="#rfc.xref.header.content-length.3">B.3</a></li>3319 <li class="indline1">Date <a class="iref" href="#rfc.xref.header.date.1"> 2.7.5</a>, <a class="iref" href="#rfc.iref.h.8"><b>3.3</b></a>, <a class="iref" href="#rfc.xref.header.date.2">4.1</a></li>3320 <li class="indline1">Host <a class="iref" href="#rfc.iref.h.10"><b> 3.4</b></a>, <a class="iref" href="#rfc.xref.header.host.1">4.1</a>, <a class="iref" href="#rfc.xref.header.host.2">B.1.1</a></li>3321 <li class="indline1">TE <a class="iref" href="#rfc.xref.header.te.1"> 2.10.2</a>, <a class="iref" href="#rfc.xref.header.te.2">2.10.2.1</a>, <a class="iref" href="#rfc.xref.header.te.3">2.10.4</a>, <a class="iref" href="#rfc.iref.h.11"><b>3.5</b></a>, <a class="iref" href="#rfc.xref.header.te.4">4.1</a>, <a class="iref" href="#rfc.xref.header.te.5">B.3</a></li>3322 <li class="indline1">Trailer <a class="iref" href="#rfc.xref.header.trailer.1"> 2.7.5</a>, <a class="iref" href="#rfc.xref.header.trailer.2">2.10.2.1</a>, <a class="iref" href="#rfc.iref.h.12"><b>3.6</b></a>, <a class="iref" href="#rfc.xref.header.trailer.3">4.1</a></li>3323 <li class="indline1">Transfer-Encoding <a class="iref" href="#rfc.xref.header.transfer-encoding.1"> 2.7.3</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.2">2.7.4</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.3">2.7.5</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.4">2.10.2</a>, <a class="iref" href="#rfc.iref.h.13"><b>3.7</b></a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.5">4.1</a></li>3324 <li class="indline1">Upgrade <a class="iref" href="#rfc.xref.header.upgrade.1"> 2.7.5</a>, <a class="iref" href="#rfc.iref.h.14"><b>3.8</b></a>, <a class="iref" href="#rfc.xref.header.upgrade.2">4.1</a></li>3325 <li class="indline1">Via <a class="iref" href="#rfc.xref.header.via.1"> 2.7.5</a>, <a class="iref" href="#rfc.iref.h.15"><b>3.9</b></a>, <a class="iref" href="#rfc.xref.header.via.2">4.1</a></li>3323 <li class="indline1">Connection <a class="iref" href="#rfc.xref.header.connection.1">3.5</a>, <a class="iref" href="#rfc.xref.header.connection.2">7.1.2</a>, <a class="iref" href="#rfc.xref.header.connection.3">7.1.3</a>, <a class="iref" href="#rfc.iref.h.6"><b>9.1</b></a>, <a class="iref" href="#rfc.xref.header.connection.4">9.5</a>, <a class="iref" href="#rfc.xref.header.connection.5">9.8</a>, <a class="iref" href="#rfc.xref.header.connection.6">10.1</a>, <a class="iref" href="#rfc.xref.header.connection.7">B.2</a>, <a class="iref" href="#rfc.xref.header.connection.8">B.4</a></li> 3324 <li class="indline1">Content-Length <a class="iref" href="#rfc.xref.header.content-length.1">3.4</a>, <a class="iref" href="#rfc.iref.h.7"><b>9.2</b></a>, <a class="iref" href="#rfc.xref.header.content-length.2">10.1</a>, <a class="iref" href="#rfc.xref.header.content-length.3">B.3</a></li> 3325 <li class="indline1">Date <a class="iref" href="#rfc.xref.header.date.1">3.5</a>, <a class="iref" href="#rfc.iref.h.8"><b>9.3</b></a>, <a class="iref" href="#rfc.xref.header.date.2">10.1</a></li> 3326 <li class="indline1">Host <a class="iref" href="#rfc.iref.h.10"><b>9.4</b></a>, <a class="iref" href="#rfc.xref.header.host.1">10.1</a>, <a class="iref" href="#rfc.xref.header.host.2">B.1.1</a></li> 3327 <li class="indline1">TE <a class="iref" href="#rfc.xref.header.te.1">6.2</a>, <a class="iref" href="#rfc.xref.header.te.2">6.2.1</a>, <a class="iref" href="#rfc.xref.header.te.3">6.4</a>, <a class="iref" href="#rfc.iref.h.11"><b>9.5</b></a>, <a class="iref" href="#rfc.xref.header.te.4">10.1</a>, <a class="iref" href="#rfc.xref.header.te.5">B.3</a></li> 3328 <li class="indline1">Trailer <a class="iref" href="#rfc.xref.header.trailer.1">3.5</a>, <a class="iref" href="#rfc.xref.header.trailer.2">6.2.1</a>, <a class="iref" href="#rfc.iref.h.12"><b>9.6</b></a>, <a class="iref" href="#rfc.xref.header.trailer.3">10.1</a></li> 3329 <li class="indline1">Transfer-Encoding <a class="iref" href="#rfc.xref.header.transfer-encoding.1">3.3</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.2">3.4</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.3">3.5</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.4">6.2</a>, <a class="iref" href="#rfc.iref.h.13"><b>9.7</b></a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.5">10.1</a></li> 3330 <li class="indline1">Upgrade <a class="iref" href="#rfc.xref.header.upgrade.1">3.5</a>, <a class="iref" href="#rfc.iref.h.14"><b>9.8</b></a>, <a class="iref" href="#rfc.xref.header.upgrade.2">10.1</a></li> 3331 <li class="indline1">Via <a class="iref" href="#rfc.xref.header.via.1">3.5</a>, <a class="iref" href="#rfc.iref.h.15"><b>9.9</b></a>, <a class="iref" href="#rfc.xref.header.via.2">10.1</a></li> 3326 3332 </ul> 3327 3333 </li> 3328 <li class="indline1">Host header <a class="iref" href="#rfc.iref.h.9"><b> 3.4</b></a>, <a class="iref" href="#rfc.xref.header.host.1">4.1</a>, <a class="iref" href="#rfc.xref.header.host.2">B.1.1</a></li>3334 <li class="indline1">Host header <a class="iref" href="#rfc.iref.h.9"><b>9.4</b></a>, <a class="iref" href="#rfc.xref.header.host.1">10.1</a>, <a class="iref" href="#rfc.xref.header.host.2">B.1.1</a></li> 3329 3335 <li class="indline1">http URI scheme <a class="iref" href="#rfc.iref.h.1"><b>2.6.1</b></a></li> 3330 3336 <li class="indline1">https URI scheme <a class="iref" href="#rfc.iref.h.2">2.6.2</a></li> … … 3333 3339 <li class="indline0"><a id="rfc.index.I" href="#rfc.index.I"><b>I</b></a><ul class="ind"> 3334 3340 <li class="indline1">inbound <a class="iref" href="#rfc.iref.i.1">2.2</a></li> 3335 <li class="indline1"><em>ISO-8859-1</em> <a class="iref" href="#rfc.xref.ISO-8859-1.1"> 2.7.2</a>, <a class="iref" href="#ISO-8859-1"><b>7.1</b></a></li>3341 <li class="indline1"><em>ISO-8859-1</em> <a class="iref" href="#rfc.xref.ISO-8859-1.1">3.2</a>, <a class="iref" href="#ISO-8859-1"><b>13.1</b></a></li> 3336 3342 </ul> 3337 3343 </li> 3338 3344 <li class="indline0"><a id="rfc.index.K" href="#rfc.index.K"><b>K</b></a><ul class="ind"> 3339 <li class="indline1"><em>Kri2001</em> <a class="iref" href="#rfc.xref.Kri2001.1"> 2.7.2</a>, <a class="iref" href="#Kri2001"><b>7.2</b></a></li>3345 <li class="indline1"><em>Kri2001</em> <a class="iref" href="#rfc.xref.Kri2001.1">3.2</a>, <a class="iref" href="#Kri2001"><b>13.2</b></a></li> 3340 3346 </ul> 3341 3347 </li> … … 3343 3349 <li class="indline1">Media Type 3344 3350 <ul class="ind"> 3345 <li class="indline1">application/http <a class="iref" href="#rfc.iref.m.4"><b> 4.3.2</b></a></li>3346 <li class="indline1">message/http <a class="iref" href="#rfc.iref.m.2"><b> 4.3.1</b></a></li>3351 <li class="indline1">application/http <a class="iref" href="#rfc.iref.m.4"><b>10.3.2</b></a></li> 3352 <li class="indline1">message/http <a class="iref" href="#rfc.iref.m.2"><b>10.3.1</b></a></li> 3347 3353 </ul> 3348 3354 </li> 3349 3355 <li class="indline1">message <a class="iref" href="#rfc.iref.m.1">2.1</a></li> 3350 <li class="indline1">message/http Media Type <a class="iref" href="#rfc.iref.m.3"><b> 4.3.1</b></a></li>3356 <li class="indline1">message/http Media Type <a class="iref" href="#rfc.iref.m.3"><b>10.3.1</b></a></li> 3351 3357 </ul> 3352 3358 </li> 3353 3359 <li class="indline0"><a id="rfc.index.N" href="#rfc.index.N"><b>N</b></a><ul class="ind"> 3354 <li class="indline1"><em>Nie1997</em> <a class="iref" href="#rfc.xref.Nie1997.1"> 2.11.1.1</a>, <a class="iref" href="#Nie1997"><b>7.2</b></a>, <a class="iref" href="#rfc.xref.Nie1997.2">B.3</a></li>3360 <li class="indline1"><em>Nie1997</em> <a class="iref" href="#rfc.xref.Nie1997.1">7.1.1</a>, <a class="iref" href="#Nie1997"><b>13.2</b></a>, <a class="iref" href="#rfc.xref.Nie1997.2">B.3</a></li> 3355 3361 </ul> 3356 3362 </li> … … 3361 3367 </li> 3362 3368 <li class="indline0"><a id="rfc.index.P" href="#rfc.index.P"><b>P</b></a><ul class="ind"> 3363 <li class="indline1"><em>Pad1995</em> <a class="iref" href="#rfc.xref.Pad1995.1"> 2.11.1.1</a>, <a class="iref" href="#Pad1995"><b>7.2</b></a></li>3364 <li class="indline1"><em>Part2</em> <a class="iref" href="#rfc.xref.Part2.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.3"> 2.8</a>, <a class="iref" href="#rfc.xref.Part2.4">2.8.1.2</a>, <a class="iref" href="#rfc.xref.Part2.5">2.8.1.2</a>, <a class="iref" href="#rfc.xref.Part2.6">2.9</a>, <a class="iref" href="#rfc.xref.Part2.7">2.9.1.1</a>, <a class="iref" href="#rfc.xref.Part2.8">2.11.1.2.2</a>, <a class="iref" href="#rfc.xref.Part2.9">2.11.1.4</a>, <a class="iref" href="#rfc.xref.Part2.10">2.11.2.3</a>, <a class="iref" href="#rfc.xref.Part2.11">2.11.2.3</a>, <a class="iref" href="#rfc.xref.Part2.12">2.11.2.3</a>, <a class="iref" href="#rfc.xref.Part2.13">2.11.2.3</a>, <a class="iref" href="#Part2"><b>7.1</b></a><ul class="ind">3365 <li class="indline1"><em>Section 3</em> <a class="iref" href="#rfc.xref.Part2.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.3"> 2.8</a></li>3366 <li class="indline1"><em>Section 5</em> <a class="iref" href="#rfc.xref.Part2.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.6"> 2.9</a></li>3367 <li class="indline1"><em>Section 7.1.2</em> <a class="iref" href="#rfc.xref.Part2.8"> 2.11.1.2.2</a>, <a class="iref" href="#rfc.xref.Part2.9">2.11.1.4</a></li>3368 <li class="indline1"><em>Section 7.9</em> <a class="iref" href="#rfc.xref.Part2.4"> 2.8.1.2</a></li>3369 <li class="indline1"><em>Section 8</em> <a class="iref" href="#rfc.xref.Part2.7"> 2.9.1.1</a></li>3370 <li class="indline1"><em>Section 8.1.1</em> <a class="iref" href="#rfc.xref.Part2.10"> 2.11.2.3</a></li>3371 <li class="indline1"><em>Section 8.1</em> <a class="iref" href="#rfc.xref.Part2.13"> 2.11.2.3</a></li>3372 <li class="indline1"><em>Section 8.4.15</em> <a class="iref" href="#rfc.xref.Part2.5"> 2.8.1.2</a></li>3373 <li class="indline1"><em>Section 9.2</em> <a class="iref" href="#rfc.xref.Part2.11"> 2.11.2.3</a>, <a class="iref" href="#rfc.xref.Part2.12">2.11.2.3</a></li>3369 <li class="indline1"><em>Pad1995</em> <a class="iref" href="#rfc.xref.Pad1995.1">7.1.1</a>, <a class="iref" href="#Pad1995"><b>13.2</b></a></li> 3370 <li class="indline1"><em>Part2</em> <a class="iref" href="#rfc.xref.Part2.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.3">4</a>, <a class="iref" href="#rfc.xref.Part2.4">4.1.2</a>, <a class="iref" href="#rfc.xref.Part2.5">4.1.2</a>, <a class="iref" href="#rfc.xref.Part2.6">5</a>, <a class="iref" href="#rfc.xref.Part2.7">5.1.1</a>, <a class="iref" href="#rfc.xref.Part2.8">7.1.2.2</a>, <a class="iref" href="#rfc.xref.Part2.9">7.1.4</a>, <a class="iref" href="#rfc.xref.Part2.10">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.11">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.12">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.13">7.2.3</a>, <a class="iref" href="#Part2"><b>13.1</b></a><ul class="ind"> 3371 <li class="indline1"><em>Section 3</em> <a class="iref" href="#rfc.xref.Part2.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.3">4</a></li> 3372 <li class="indline1"><em>Section 5</em> <a class="iref" href="#rfc.xref.Part2.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part2.6">5</a></li> 3373 <li class="indline1"><em>Section 7.1.2</em> <a class="iref" href="#rfc.xref.Part2.8">7.1.2.2</a>, <a class="iref" href="#rfc.xref.Part2.9">7.1.4</a></li> 3374 <li class="indline1"><em>Section 7.9</em> <a class="iref" href="#rfc.xref.Part2.4">4.1.2</a></li> 3375 <li class="indline1"><em>Section 8</em> <a class="iref" href="#rfc.xref.Part2.7">5.1.1</a></li> 3376 <li class="indline1"><em>Section 8.1.1</em> <a class="iref" href="#rfc.xref.Part2.10">7.2.3</a></li> 3377 <li class="indline1"><em>Section 8.1</em> <a class="iref" href="#rfc.xref.Part2.13">7.2.3</a></li> 3378 <li class="indline1"><em>Section 8.4.15</em> <a class="iref" href="#rfc.xref.Part2.5">4.1.2</a></li> 3379 <li class="indline1"><em>Section 9.2</em> <a class="iref" href="#rfc.xref.Part2.11">7.2.3</a>, <a class="iref" href="#rfc.xref.Part2.12">7.2.3</a></li> 3374 3380 </ul> 3375 3381 </li> 3376 <li class="indline1"><em>Part3</em> <a class="iref" href="#rfc.xref.Part3.1">1</a>, <a class="iref" href="#rfc.xref.Part3.2">1.2.2</a>, <a class="iref" href="#rfc.xref.Part3.3">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.4">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.5"> 2.8</a>, <a class="iref" href="#rfc.xref.Part3.6">2.9</a>, <a class="iref" href="#rfc.xref.Part3.7">2.10.4</a>, <a class="iref" href="#Part3"><b>7.1</b></a>, <a class="iref" href="#rfc.xref.Part3.8">A</a>, <a class="iref" href="#rfc.xref.Part3.9">B.3</a><ul class="ind">3382 <li class="indline1"><em>Part3</em> <a class="iref" href="#rfc.xref.Part3.1">1</a>, <a class="iref" href="#rfc.xref.Part3.2">1.2.2</a>, <a class="iref" href="#rfc.xref.Part3.3">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.4">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.5">4</a>, <a class="iref" href="#rfc.xref.Part3.6">5</a>, <a class="iref" href="#rfc.xref.Part3.7">6.4</a>, <a class="iref" href="#Part3"><b>13.1</b></a>, <a class="iref" href="#rfc.xref.Part3.8">A</a>, <a class="iref" href="#rfc.xref.Part3.9">B.3</a><ul class="ind"> 3377 3383 <li class="indline1"><em>Section 2.3</em> <a class="iref" href="#rfc.xref.Part3.2">1.2.2</a></li> 3378 <li class="indline1"><em>Section 3.1</em> <a class="iref" href="#rfc.xref.Part3.4">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.5"> 2.8</a>, <a class="iref" href="#rfc.xref.Part3.6">2.9</a></li>3384 <li class="indline1"><em>Section 3.1</em> <a class="iref" href="#rfc.xref.Part3.4">1.2.3</a>, <a class="iref" href="#rfc.xref.Part3.5">4</a>, <a class="iref" href="#rfc.xref.Part3.6">5</a></li> 3379 3385 <li class="indline1"><em>Section 3.2</em> <a class="iref" href="#rfc.xref.Part3.3">1.2.3</a></li> 3380 <li class="indline1"><em>Section 4</em> <a class="iref" href="#rfc.xref.Part3.7"> 2.10.4</a></li>3386 <li class="indline1"><em>Section 4</em> <a class="iref" href="#rfc.xref.Part3.7">6.4</a></li> 3381 3387 <li class="indline1"><em>Appendix A</em> <a class="iref" href="#rfc.xref.Part3.1">1</a></li> 3382 3388 </ul> 3383 3389 </li> 3384 <li class="indline1"><em>Part5</em> <a class="iref" href="#Part5"><b> 7.1</b></a>, <a class="iref" href="#rfc.xref.Part5.1">B.3</a></li>3385 <li class="indline1"><em>Part6</em> <a class="iref" href="#rfc.xref.Part6.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.3">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.4">2.3</a>, <a class="iref" href="#rfc.xref.Part6.5"> 2.7.5</a>, <a class="iref" href="#rfc.xref.Part6.6">2.7.5</a>, <a class="iref" href="#rfc.xref.Part6.7">2.7.5</a>, <a class="iref" href="#Part6"><b>7.1</b></a>, <a class="iref" href="#rfc.xref.Part6.8">B.3</a><ul class="ind">3390 <li class="indline1"><em>Part5</em> <a class="iref" href="#Part5"><b>13.1</b></a>, <a class="iref" href="#rfc.xref.Part5.1">B.3</a></li> 3391 <li class="indline1"><em>Part6</em> <a class="iref" href="#rfc.xref.Part6.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.3">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.4">2.3</a>, <a class="iref" href="#rfc.xref.Part6.5">3.5</a>, <a class="iref" href="#rfc.xref.Part6.6">3.5</a>, <a class="iref" href="#rfc.xref.Part6.7">3.5</a>, <a class="iref" href="#Part6"><b>13.1</b></a>, <a class="iref" href="#rfc.xref.Part6.8">B.3</a><ul class="ind"> 3386 3392 <li class="indline1"><em>Section 2</em> <a class="iref" href="#rfc.xref.Part6.4">2.3</a></li> 3387 <li class="indline1"><em>Section 3.2</em> <a class="iref" href="#rfc.xref.Part6.5"> 2.7.5</a></li>3388 <li class="indline1"><em>Section 3.4</em> <a class="iref" href="#rfc.xref.Part6.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.6"> 2.7.5</a></li>3389 <li class="indline1"><em>Section 3.6</em> <a class="iref" href="#rfc.xref.Part6.3">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.7"> 2.7.5</a></li>3393 <li class="indline1"><em>Section 3.2</em> <a class="iref" href="#rfc.xref.Part6.5">3.5</a></li> 3394 <li class="indline1"><em>Section 3.4</em> <a class="iref" href="#rfc.xref.Part6.1">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.2">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.6">3.5</a></li> 3395 <li class="indline1"><em>Section 3.6</em> <a class="iref" href="#rfc.xref.Part6.3">1.2.3</a>, <a class="iref" href="#rfc.xref.Part6.7">3.5</a></li> 3390 3396 </ul> 3391 3397 </li> … … 3398 3404 <li class="indline1">response <a class="iref" href="#rfc.iref.r.2">2.1</a></li> 3399 3405 <li class="indline1">reverse proxy <a class="iref" href="#rfc.iref.r.3">2.2</a></li> 3400 <li class="indline1"><em>RFC1123</em> <a class="iref" href="#rfc.xref.RFC1123.1"> 2.10.1</a>, <a class="iref" href="#RFC1123"><b>7.2</b></a></li>3401 <li class="indline1"><em>RFC1305</em> <a class="iref" href="#rfc.xref.RFC1305.1"> 3.3</a>, <a class="iref" href="#RFC1305"><b>7.2</b></a></li>3402 <li class="indline1"><em>RFC1900</em> <a class="iref" href="#rfc.xref.RFC1900.1"> 5.4</a>, <a class="iref" href="#RFC1900"><b>7.2</b></a></li>3403 <li class="indline1"><em>RFC1945</em> <a class="iref" href="#RFC1945"><b> 7.2</b></a>, <a class="iref" href="#rfc.xref.RFC1945.1">B</a></li>3404 <li class="indline1"><em>RFC1950</em> <a class="iref" href="#rfc.xref.RFC1950.1"> 2.10.2.2.2</a>, <a class="iref" href="#rfc.xref.RFC1950.2">4.4</a>, <a class="iref" href="#RFC1950"><b>7.1</b></a></li>3405 <li class="indline1"><em>RFC1951</em> <a class="iref" href="#rfc.xref.RFC1951.1"> 2.10.2.2.2</a>, <a class="iref" href="#RFC1951"><b>7.1</b></a></li>3406 <li class="indline1"><em>RFC1952</em> <a class="iref" href="#rfc.xref.RFC1952.1"> 2.10.2.2.3</a>, <a class="iref" href="#rfc.xref.RFC1952.2">4.4</a>, <a class="iref" href="#RFC1952"><b>7.1</b></a></li>3407 <li class="indline1"><em>RFC2045</em> <a class="iref" href="#rfc.xref.RFC2045.1">1</a>, <a class="iref" href="#rfc.xref.RFC2045.2"> 2.10.2</a>, <a class="iref" href="#rfc.xref.RFC2045.3">6</a>, <a class="iref" href="#RFC2045"><b>7.2</b></a><ul class="ind">3408 <li class="indline1"><em>Section 6</em> <a class="iref" href="#rfc.xref.RFC2045.2"> 2.10.2</a></li>3406 <li class="indline1"><em>RFC1123</em> <a class="iref" href="#rfc.xref.RFC1123.1">6.1</a>, <a class="iref" href="#RFC1123"><b>13.2</b></a></li> 3407 <li class="indline1"><em>RFC1305</em> <a class="iref" href="#rfc.xref.RFC1305.1">9.3</a>, <a class="iref" href="#RFC1305"><b>13.2</b></a></li> 3408 <li class="indline1"><em>RFC1900</em> <a class="iref" href="#rfc.xref.RFC1900.1">11.4</a>, <a class="iref" href="#RFC1900"><b>13.2</b></a></li> 3409 <li class="indline1"><em>RFC1945</em> <a class="iref" href="#RFC1945"><b>13.2</b></a>, <a class="iref" href="#rfc.xref.RFC1945.1">B</a></li> 3410 <li class="indline1"><em>RFC1950</em> <a class="iref" href="#rfc.xref.RFC1950.1">6.2.2.2</a>, <a class="iref" href="#rfc.xref.RFC1950.2">10.4</a>, <a class="iref" href="#RFC1950"><b>13.1</b></a></li> 3411 <li class="indline1"><em>RFC1951</em> <a class="iref" href="#rfc.xref.RFC1951.1">6.2.2.2</a>, <a class="iref" href="#RFC1951"><b>13.1</b></a></li> 3412 <li class="indline1"><em>RFC1952</em> <a class="iref" href="#rfc.xref.RFC1952.1">6.2.2.3</a>, <a class="iref" href="#rfc.xref.RFC1952.2">10.4</a>, <a class="iref" href="#RFC1952"><b>13.1</b></a></li> 3413 <li class="indline1"><em>RFC2045</em> <a class="iref" href="#rfc.xref.RFC2045.1">1</a>, <a class="iref" href="#rfc.xref.RFC2045.2">6.2</a>, <a class="iref" href="#rfc.xref.RFC2045.3">12</a>, <a class="iref" href="#RFC2045"><b>13.2</b></a><ul class="ind"> 3414 <li class="indline1"><em>Section 6</em> <a class="iref" href="#rfc.xref.RFC2045.2">6.2</a></li> 3409 3415 </ul> 3410 3416 </li> 3411 <li class="indline1"><em>RFC2047</em> <a class="iref" href="#rfc.xref.RFC2047.1"> 2.7.2</a>, <a class="iref" href="#RFC2047"><b>7.2</b></a></li>3412 <li class="indline1"><em>RFC2068</em> <a class="iref" href="#rfc.xref.RFC2068.1">2.5</a>, <a class="iref" href="#rfc.xref.RFC2068.2"> 2.11.1.3</a>, <a class="iref" href="#rfc.xref.RFC2068.3">2.11.2.3</a>, <a class="iref" href="#rfc.xref.RFC2068.4">6</a>, <a class="iref" href="#rfc.xref.RFC2068.5">7.1</a>, <a class="iref" href="#rfc.xref.RFC2068.6">7.1</a>, <a class="iref" href="#rfc.xref.RFC2068.7">7.1</a>, <a class="iref" href="#RFC2068"><b>7.2</b></a>, <a class="iref" href="#rfc.xref.RFC2068.8">B</a>, <a class="iref" href="#rfc.xref.RFC2068.9">B.2</a><ul class="ind">3413 <li class="indline1"><em>Section 19.7.1</em> <a class="iref" href="#rfc.xref.RFC2068.2"> 2.11.1.3</a>, <a class="iref" href="#rfc.xref.RFC2068.8">B</a>, <a class="iref" href="#rfc.xref.RFC2068.9">B.2</a></li>3417 <li class="indline1"><em>RFC2047</em> <a class="iref" href="#rfc.xref.RFC2047.1">3.2</a>, <a class="iref" href="#RFC2047"><b>13.2</b></a></li> 3418 <li class="indline1"><em>RFC2068</em> <a class="iref" href="#rfc.xref.RFC2068.1">2.5</a>, <a class="iref" href="#rfc.xref.RFC2068.2">7.1.3</a>, <a class="iref" href="#rfc.xref.RFC2068.3">7.2.3</a>, <a class="iref" href="#rfc.xref.RFC2068.4">12</a>, <a class="iref" href="#rfc.xref.RFC2068.5">13.1</a>, <a class="iref" href="#rfc.xref.RFC2068.6">13.1</a>, <a class="iref" href="#rfc.xref.RFC2068.7">13.1</a>, <a class="iref" href="#RFC2068"><b>13.2</b></a>, <a class="iref" href="#rfc.xref.RFC2068.8">B</a>, <a class="iref" href="#rfc.xref.RFC2068.9">B.2</a><ul class="ind"> 3419 <li class="indline1"><em>Section 19.7.1</em> <a class="iref" href="#rfc.xref.RFC2068.2">7.1.3</a>, <a class="iref" href="#rfc.xref.RFC2068.8">B</a>, <a class="iref" href="#rfc.xref.RFC2068.9">B.2</a></li> 3414 3420 </ul> 3415 3421 </li> 3416 <li class="indline1"><em>RFC2109</em> <a class="iref" href="#rfc.xref.RFC2109.1"> 2.7.2</a>, <a class="iref" href="#RFC2109"><b>7.2</b></a></li>3417 <li class="indline1"><em>RFC2119</em> <a class="iref" href="#rfc.xref.RFC2119.1">1.1</a>, <a class="iref" href="#RFC2119"><b> 7.1</b></a>, <a class="iref" href="#rfc.xref.RFC2119.2">B.3</a></li>3418 <li class="indline1"><em>RFC2145</em> <a class="iref" href="#rfc.xref.RFC2145.1">2.5</a>, <a class="iref" href="#rfc.xref.RFC2145.2">2.5</a>, <a class="iref" href="#RFC2145"><b> 7.2</b></a>, <a class="iref" href="#rfc.xref.RFC2145.3">B.3</a></li>3419 <li class="indline1"><em>RFC2616</em> <a class="iref" href="#rfc.xref.RFC2616.1">1</a>, <a class="iref" href="#rfc.xref.RFC2616.2"> 6</a>, <a class="iref" href="#RFC2616"><b>7.2</b></a>, <a class="iref" href="#rfc.xref.RFC2616.3">D.1</a></li>3420 <li class="indline1"><em>RFC2818</em> <a class="iref" href="#rfc.xref.RFC2818.1">2.6.2</a>, <a class="iref" href="#RFC2818"><b> 7.2</b></a></li>3421 <li class="indline1"><em>RFC2965</em> <a class="iref" href="#rfc.xref.RFC2965.1"> 2.7.2</a>, <a class="iref" href="#RFC2965"><b>7.2</b></a></li>3422 <li class="indline1"><em>RFC3864</em> <a class="iref" href="#rfc.xref.RFC3864.1"> 4.1</a>, <a class="iref" href="#RFC3864"><b>7.2</b></a></li>3423 <li class="indline1"><em>RFC3986</em> <a class="iref" href="#rfc.xref.RFC3986.1">1</a>, <a class="iref" href="#rfc.xref.RFC3986.2">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.3">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.4">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.5">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.6">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.7">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.8">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.9">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.10">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.11">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.12">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.13">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.14">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.15">2.6.1</a>, <a class="iref" href="#rfc.xref.RFC3986.16">2.6.3</a>, <a class="iref" href="#rfc.xref.RFC3986.17">2.6.3</a>, <a class="iref" href="#rfc.xref.RFC3986.18"> 2.8.1.2</a>, <a class="iref" href="#RFC3986"><b>7.1</b></a><ul class="ind">3424 <li class="indline1"><em>Section 2.1</em> <a class="iref" href="#rfc.xref.RFC3986.17">2.6.3</a>, <a class="iref" href="#rfc.xref.RFC3986.18"> 2.8.1.2</a></li>3422 <li class="indline1"><em>RFC2109</em> <a class="iref" href="#rfc.xref.RFC2109.1">3.2</a>, <a class="iref" href="#RFC2109"><b>13.2</b></a></li> 3423 <li class="indline1"><em>RFC2119</em> <a class="iref" href="#rfc.xref.RFC2119.1">1.1</a>, <a class="iref" href="#RFC2119"><b>13.1</b></a>, <a class="iref" href="#rfc.xref.RFC2119.2">B.3</a></li> 3424 <li class="indline1"><em>RFC2145</em> <a class="iref" href="#rfc.xref.RFC2145.1">2.5</a>, <a class="iref" href="#rfc.xref.RFC2145.2">2.5</a>, <a class="iref" href="#RFC2145"><b>13.2</b></a>, <a class="iref" href="#rfc.xref.RFC2145.3">B.3</a></li> 3425 <li class="indline1"><em>RFC2616</em> <a class="iref" href="#rfc.xref.RFC2616.1">1</a>, <a class="iref" href="#rfc.xref.RFC2616.2">12</a>, <a class="iref" href="#RFC2616"><b>13.2</b></a>, <a class="iref" href="#rfc.xref.RFC2616.3">D.1</a></li> 3426 <li class="indline1"><em>RFC2818</em> <a class="iref" href="#rfc.xref.RFC2818.1">2.6.2</a>, <a class="iref" href="#RFC2818"><b>13.2</b></a></li> 3427 <li class="indline1"><em>RFC2965</em> <a class="iref" href="#rfc.xref.RFC2965.1">3.2</a>, <a class="iref" href="#RFC2965"><b>13.2</b></a></li> 3428 <li class="indline1"><em>RFC3864</em> <a class="iref" href="#rfc.xref.RFC3864.1">10.1</a>, <a class="iref" href="#RFC3864"><b>13.2</b></a></li> 3429 <li class="indline1"><em>RFC3986</em> <a class="iref" href="#rfc.xref.RFC3986.1">1</a>, <a class="iref" href="#rfc.xref.RFC3986.2">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.3">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.4">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.5">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.6">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.7">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.8">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.9">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.10">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.11">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.12">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.13">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.14">2.6</a>, <a class="iref" href="#rfc.xref.RFC3986.15">2.6.1</a>, <a class="iref" href="#rfc.xref.RFC3986.16">2.6.3</a>, <a class="iref" href="#rfc.xref.RFC3986.17">2.6.3</a>, <a class="iref" href="#rfc.xref.RFC3986.18">4.1.2</a>, <a class="iref" href="#RFC3986"><b>13.1</b></a><ul class="ind"> 3430 <li class="indline1"><em>Section 2.1</em> <a class="iref" href="#rfc.xref.RFC3986.17">2.6.3</a>, <a class="iref" href="#rfc.xref.RFC3986.18">4.1.2</a></li> 3425 3431 <li class="indline1"><em>Section 3</em> <a class="iref" href="#rfc.xref.RFC3986.5">2.6</a></li> 3426 3432 <li class="indline1"><em>Section 3.2</em> <a class="iref" href="#rfc.xref.RFC3986.9">2.6</a></li> … … 3435 3441 </ul> 3436 3442 </li> 3437 <li class="indline1"><em>RFC4288</em> <a class="iref" href="#rfc.xref.RFC4288.1"> 4.3</a>, <a class="iref" href="#RFC4288"><b>7.2</b></a></li>3438 <li class="indline1"><em>RFC4395</em> <a class="iref" href="#rfc.xref.RFC4395.1"> 4.2</a>, <a class="iref" href="#RFC4395"><b>7.2</b></a></li>3439 <li class="indline1"><em>RFC5226</em> <a class="iref" href="#rfc.xref.RFC5226.1"> 2.10.2.3</a>, <a class="iref" href="#RFC5226"><b>7.2</b></a><ul class="ind">3440 <li class="indline1"><em>Section 4.1</em> <a class="iref" href="#rfc.xref.RFC5226.1"> 2.10.2.3</a></li>3443 <li class="indline1"><em>RFC4288</em> <a class="iref" href="#rfc.xref.RFC4288.1">10.3</a>, <a class="iref" href="#RFC4288"><b>13.2</b></a></li> 3444 <li class="indline1"><em>RFC4395</em> <a class="iref" href="#rfc.xref.RFC4395.1">10.2</a>, <a class="iref" href="#RFC4395"><b>13.2</b></a></li> 3445 <li class="indline1"><em>RFC5226</em> <a class="iref" href="#rfc.xref.RFC5226.1">6.2.3</a>, <a class="iref" href="#RFC5226"><b>13.2</b></a><ul class="ind"> 3446 <li class="indline1"><em>Section 4.1</em> <a class="iref" href="#rfc.xref.RFC5226.1">6.2.3</a></li> 3441 3447 </ul> 3442 3448 </li> 3443 <li class="indline1"><em>RFC5234</em> <a class="iref" href="#rfc.xref.RFC5234.1">1.2</a>, <a class="iref" href="#rfc.xref.RFC5234.2">1.2</a>, <a class="iref" href="#rfc.xref.RFC5234.3">1.2.1</a>, <a class="iref" href="#rfc.xref.RFC5234.4"> 6</a>, <a class="iref" href="#RFC5234"><b>7.1</b></a><ul class="ind">3449 <li class="indline1"><em>RFC5234</em> <a class="iref" href="#rfc.xref.RFC5234.1">1.2</a>, <a class="iref" href="#rfc.xref.RFC5234.2">1.2</a>, <a class="iref" href="#rfc.xref.RFC5234.3">1.2.1</a>, <a class="iref" href="#rfc.xref.RFC5234.4">12</a>, <a class="iref" href="#RFC5234"><b>13.1</b></a><ul class="ind"> 3444 3450 <li class="indline1"><em>Appendix B.1</em> <a class="iref" href="#rfc.xref.RFC5234.2">1.2</a></li> 3445 3451 </ul> 3446 3452 </li> 3447 <li class="indline1"><em>RFC5322</em> <a class="iref" href="#rfc.xref.RFC5322.1">1</a>, <a class="iref" href="#rfc.xref.RFC5322.2"> 2.7</a>, <a class="iref" href="#rfc.xref.RFC5322.3">2.10.1</a>, <a class="iref" href="#rfc.xref.RFC5322.4">3.3</a>, <a class="iref" href="#rfc.xref.RFC5322.5">3.9</a>, <a class="iref" href="#RFC5322"><b>7.2</b></a><ul class="ind">3448 <li class="indline1"><em>Section 3.3</em> <a class="iref" href="#rfc.xref.RFC5322.3"> 2.10.1</a></li>3449 <li class="indline1"><em>Section 3.6.1</em> <a class="iref" href="#rfc.xref.RFC5322.4"> 3.3</a></li>3450 <li class="indline1"><em>Section 3.6.7</em> <a class="iref" href="#rfc.xref.RFC5322.5"> 3.9</a></li>3453 <li class="indline1"><em>RFC5322</em> <a class="iref" href="#rfc.xref.RFC5322.1">1</a>, <a class="iref" href="#rfc.xref.RFC5322.2">3</a>, <a class="iref" href="#rfc.xref.RFC5322.3">6.1</a>, <a class="iref" href="#rfc.xref.RFC5322.4">9.3</a>, <a class="iref" href="#rfc.xref.RFC5322.5">9.9</a>, <a class="iref" href="#RFC5322"><b>13.2</b></a><ul class="ind"> 3454 <li class="indline1"><em>Section 3.3</em> <a class="iref" href="#rfc.xref.RFC5322.3">6.1</a></li> 3455 <li class="indline1"><em>Section 3.6.1</em> <a class="iref" href="#rfc.xref.RFC5322.4">9.3</a></li> 3456 <li class="indline1"><em>Section 3.6.7</em> <a class="iref" href="#rfc.xref.RFC5322.5">9.9</a></li> 3451 3457 </ul> 3452 3458 </li> … … 3455 3461 <li class="indline0"><a id="rfc.index.S" href="#rfc.index.S"><b>S</b></a><ul class="ind"> 3456 3462 <li class="indline1">server <a class="iref" href="#rfc.iref.s.1">2.1</a></li> 3457 <li class="indline1"><em>Spe</em> <a class="iref" href="#rfc.xref.Spe.1"> 2.11.1.1</a>, <a class="iref" href="#Spe"><b>7.2</b></a></li>3463 <li class="indline1"><em>Spe</em> <a class="iref" href="#rfc.xref.Spe.1">7.1.1</a>, <a class="iref" href="#Spe"><b>13.2</b></a></li> 3458 3464 </ul> 3459 3465 </li> 3460 3466 <li class="indline0"><a id="rfc.index.T" href="#rfc.index.T"><b>T</b></a><ul class="ind"> 3461 <li class="indline1">TE header <a class="iref" href="#rfc.xref.header.te.1"> 2.10.2</a>, <a class="iref" href="#rfc.xref.header.te.2">2.10.2.1</a>, <a class="iref" href="#rfc.xref.header.te.3">2.10.4</a>, <a class="iref" href="#rfc.iref.t.2"><b>3.5</b></a>, <a class="iref" href="#rfc.xref.header.te.4">4.1</a>, <a class="iref" href="#rfc.xref.header.te.5">B.3</a></li>3462 <li class="indline1"><em>Tou1998</em> <a class="iref" href="#rfc.xref.Tou1998.1"> 2.11.1.1</a>, <a class="iref" href="#Tou1998"><b>7.2</b></a></li>3463 <li class="indline1">Trailer header <a class="iref" href="#rfc.xref.header.trailer.1"> 2.7.5</a>, <a class="iref" href="#rfc.xref.header.trailer.2">2.10.2.1</a>, <a class="iref" href="#rfc.iref.t.3"><b>3.6</b></a>, <a class="iref" href="#rfc.xref.header.trailer.3">4.1</a></li>3464 <li class="indline1">Transfer-Encoding header <a class="iref" href="#rfc.xref.header.transfer-encoding.1"> 2.7.3</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.2">2.7.4</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.3">2.7.5</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.4">2.10.2</a>, <a class="iref" href="#rfc.iref.t.4"><b>3.7</b></a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.5">4.1</a></li>3467 <li class="indline1">TE header <a class="iref" href="#rfc.xref.header.te.1">6.2</a>, <a class="iref" href="#rfc.xref.header.te.2">6.2.1</a>, <a class="iref" href="#rfc.xref.header.te.3">6.4</a>, <a class="iref" href="#rfc.iref.t.2"><b>9.5</b></a>, <a class="iref" href="#rfc.xref.header.te.4">10.1</a>, <a class="iref" href="#rfc.xref.header.te.5">B.3</a></li> 3468 <li class="indline1"><em>Tou1998</em> <a class="iref" href="#rfc.xref.Tou1998.1">7.1.1</a>, <a class="iref" href="#Tou1998"><b>13.2</b></a></li> 3469 <li class="indline1">Trailer header <a class="iref" href="#rfc.xref.header.trailer.1">3.5</a>, <a class="iref" href="#rfc.xref.header.trailer.2">6.2.1</a>, <a class="iref" href="#rfc.iref.t.3"><b>9.6</b></a>, <a class="iref" href="#rfc.xref.header.trailer.3">10.1</a></li> 3470 <li class="indline1">Transfer-Encoding header <a class="iref" href="#rfc.xref.header.transfer-encoding.1">3.3</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.2">3.4</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.3">3.5</a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.4">6.2</a>, <a class="iref" href="#rfc.iref.t.4"><b>9.7</b></a>, <a class="iref" href="#rfc.xref.header.transfer-encoding.5">10.1</a></li> 3465 3471 <li class="indline1">tunnel <a class="iref" href="#rfc.iref.t.1">2.2</a></li> 3466 3472 </ul> 3467 3473 </li> 3468 3474 <li class="indline0"><a id="rfc.index.U" href="#rfc.index.U"><b>U</b></a><ul class="ind"> 3469 <li class="indline1">Upgrade header <a class="iref" href="#rfc.xref.header.upgrade.1"> 2.7.5</a>, <a class="iref" href="#rfc.iref.u.5"><b>3.8</b></a>, <a class="iref" href="#rfc.xref.header.upgrade.2">4.1</a></li>3475 <li class="indline1">Upgrade header <a class="iref" href="#rfc.xref.header.upgrade.1">3.5</a>, <a class="iref" href="#rfc.iref.u.5"><b>9.8</b></a>, <a class="iref" href="#rfc.xref.header.upgrade.2">10.1</a></li> 3470 3476 <li class="indline1">upstream <a class="iref" href="#rfc.iref.u.2">2.2</a></li> 3471 3477 <li class="indline1">URI scheme … … 3475 3481 </ul> 3476 3482 </li> 3477 <li class="indline1"><em>USASCII</em> <a class="iref" href="#rfc.xref.USASCII.1">1.2</a>, <a class="iref" href="#rfc.xref.USASCII.2"> 2.7.2</a>, <a class="iref" href="#USASCII"><b>7.1</b></a></li>3483 <li class="indline1"><em>USASCII</em> <a class="iref" href="#rfc.xref.USASCII.1">1.2</a>, <a class="iref" href="#rfc.xref.USASCII.2">3.2</a>, <a class="iref" href="#USASCII"><b>13.1</b></a></li> 3478 3484 <li class="indline1">user agent <a class="iref" href="#rfc.iref.u.1">2.1</a></li> 3479 3485 </ul> 3480 3486 </li> 3481 3487 <li class="indline0"><a id="rfc.index.V" href="#rfc.index.V"><b>V</b></a><ul class="ind"> 3482 <li class="indline1">Via header <a class="iref" href="#rfc.xref.header.via.1"> 2.7.5</a>, <a class="iref" href="#rfc.iref.v.1"><b>3.9</b></a>, <a class="iref" href="#rfc.xref.header.via.2">4.1</a></li>3488 <li class="indline1">Via header <a class="iref" href="#rfc.xref.header.via.1">3.5</a>, <a class="iref" href="#rfc.iref.v.1"><b>9.9</b></a>, <a class="iref" href="#rfc.xref.header.via.2">10.1</a></li> 3483 3489 </ul> 3484 3490 </li> -
draft-ietf-httpbis/latest/p1-messaging.xml
r674 r676 986 986 </section> 987 987 </section> 988 </section> 988 989 989 990 <section title="HTTP Message" anchor="http.message"> … … 2445 2446 </t> 2446 2447 </section> 2447 </section>2448 2448 2449 2449 <section title="Use of HTTP for proxy communication" anchor="http.proxy"> … … 2452 2452 </t> 2453 2453 </section> 2454 2454 2455 <section title="Interception of HTTP for access control" anchor="http.intercept"> 2455 2456 <t> … … 2457 2458 </t> 2458 2459 </section> 2460 2459 2461 <section title="Use of HTTP by other protocols" anchor="http.others"> 2460 2462 <t> … … 2462 2464 Extensions of HTTP like WebDAV.</cref> 2463 2465 </t> 2466 2464 2467 </section> 2465 2468 <section title="Use of HTTP by media type specification" anchor="http.media">
Note: See TracChangeset
for help on using the changeset viewer.