Changeset 1492 for draft-ietf-httpbis/latest/p1-messaging.html
- Timestamp:
- 14/12/11 03:21:58 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/p1-messaging.html
r1491 r1492 359 359 } 360 360 @bottom-center { 361 content: "Expires June 1 3, 2012";361 content: "Expires June 16, 2012"; 362 362 } 363 363 @bottom-right { … … 409 409 <meta name="dct.creator" content="Reschke, J. F."> 410 410 <meta name="dct.identifier" content="urn:ietf:id:draft-ietf-httpbis-p1-messaging-latest"> 411 <meta name="dct.issued" scheme="ISO8601" content="2011-12-1 1">411 <meta name="dct.issued" scheme="ISO8601" content="2011-12-14"> 412 412 <meta name="dct.replaces" content="urn:ietf:rfc:2145"> 413 413 <meta name="dct.replaces" content="urn:ietf:rfc:2616"> … … 441 441 </tr> 442 442 <tr> 443 <td class="left">Expires: June 1 3, 2012</td>443 <td class="left">Expires: June 16, 2012</td> 444 444 <td class="right">HP</td> 445 445 </tr> … … 494 494 <tr> 495 495 <td class="left"></td> 496 <td class="right">December 1 1, 2011</td>496 <td class="right">December 14, 2011</td> 497 497 </tr> 498 498 </tbody> … … 527 527 in progress”. 528 528 </p> 529 <p>This Internet-Draft will expire on June 1 3, 2012.</p>529 <p>This Internet-Draft will expire on June 16, 2012.</p> 530 530 <h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1> 531 531 <p>Copyright © 2011 IETF Trust and the persons identified as the document authors. All rights reserved.</p> … … 2937 2937 </p> 2938 2938 <h3 id="rfc.section.A.1.2"><a href="#rfc.section.A.1.2">A.1.2</a> <a id="compatibility.with.http.1.0.persistent.connections" href="#compatibility.with.http.1.0.persistent.connections">Keep-Alive Connections</a></h3> 2939 <p id="rfc.section.A.1.2.p.1"> For most implementations of HTTP/1.0, each connection is established by the client prior to the request and closed bythe2940 server after sending the response. However, some implementations implement the Keep-Aliveversion of persistent connections2939 <p id="rfc.section.A.1.2.p.1">In HTTP/1.0, each connection is established by the client prior to the request and closed by the server after sending the 2940 response. However, some implementations implement the explicitly negotiated ("Keep-Alive") version of persistent connections 2941 2941 described 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.5"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2068]</cite></a>. 2942 2942 </p> 2943 <p id="rfc.section.A.1.2.p.2">Some clients and servers might wish to be compatible with some previous implementations of persistent connections in HTTP/1.0 2944 clients and servers. Persistent connections in HTTP/1.0 are explicitly negotiated as they are not the default behavior. HTTP/1.0 2945 experimental implementations of persistent connections are faulty, and the new facilities in HTTP/1.1 are designed to rectify 2946 these problems. The problem was that some existing HTTP/1.0 clients might send Keep-Alive to a proxy server that doesn't understand 2947 Connection, which would then erroneously forward it to the next inbound server, which would establish the Keep-Alive connection 2948 and result in a hung HTTP/1.0 proxy waiting for the close on the response. The result is that HTTP/1.0 clients must be prevented 2949 from using Keep-Alive when talking to proxies. 2950 </p> 2951 <p id="rfc.section.A.1.2.p.3">However, talking to proxies is the most important use of persistent connections, so that prohibition is clearly unacceptable. 2952 Therefore, we need some other mechanism for indicating a persistent connection is desired, which is safe to use even when 2953 talking to an old proxy that ignores Connection. Persistent connections are the default for HTTP/1.1 messages; we introduce 2954 a new keyword (Connection: close) for declaring non-persistence. See <a href="#header.connection" id="rfc.xref.header.connection.12" title="Connection">Section 8.1</a>. 2943 <p id="rfc.section.A.1.2.p.2">Some clients and servers might wish to be compatible with these previous approaches to persistent connections, by explicitly 2944 negotiating for them with a "Connection: keep-alive" request header field. However, some experimental implementations of HTTP/1.0 2945 persistent connections are faulty; for example, if a HTTP/1.0 proxy server doesn't understand Connection, it will erroneously 2946 forward that header to the next inbound server, which would result in a hung connection. 2947 </p> 2948 <p id="rfc.section.A.1.2.p.3">One attempted solution was the introduction of a Proxy-Connection header, targeted specifically at proxies. In practice, this 2949 was also unworkable, because proxies are often deployed in multiple layers, bringing about the same problem discussed above. 2950 </p> 2951 <p id="rfc.section.A.1.2.p.4">As a result, clients are encouraged not to send the Proxy-Connection header in any requests.</p> 2952 <p id="rfc.section.A.1.2.p.5">Clients are also encouraged to consider the use of Connection: keep-alive in requests carefully; while they can enable persistent 2953 connections with HTTP/1.0 servers, clients using them need will need to monitor the connection for "hung" requests (which 2954 indicate that the client ought stop sending the header), and this mechanism ought not be used by clients at all when a proxy 2955 is being used. 2955 2956 </p> 2956 2957 <h2 id="rfc.section.A.2"><a href="#rfc.section.A.2">A.2</a> <a id="changes.from.rfc.2616" href="#changes.from.rfc.2616">Changes from RFC 2616</a></h2> … … 2986 2987 <p id="rfc.section.A.2.p.12">Change ABNF productions for header fields to only define the field value. (<a href="#header.field.definitions" title="Header Field Definitions">Section 8</a>) 2987 2988 </p> 2988 <p id="rfc.section.A.2.p.13">Clarify exactly when close connection options must be sent. (<a href="#header.connection" id="rfc.xref.header.connection.1 3" title="Connection">Section 8.1</a>)2989 <p id="rfc.section.A.2.p.13">Clarify exactly when close connection options must be sent. (<a href="#header.connection" id="rfc.xref.header.connection.12" title="Connection">Section 8.1</a>) 2989 2990 </p> 2990 2991 <p id="rfc.section.A.2.p.14">Define the semantics of the "Upgrade" header field in responses other than 101 (this was incorporated from <a href="#RFC2817" id="rfc.xref.RFC2817.3"><cite title="Upgrading to TLS Within HTTP/1.1">[RFC2817]</cite></a>). (<a href="#header.upgrade" id="rfc.xref.header.upgrade.3" title="Upgrade">Section 8.7</a>) … … 3494 3495 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/324">http://tools.ietf.org/wg/httpbis/trac/ticket/324</a>>: "Intermediary rewriting of queries" 3495 3496 </li> 3497 <li> <<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/158">http://tools.ietf.org/wg/httpbis/trac/ticket/158</a>>: "Proxy-Connection and Keep-Alive" 3498 </li> 3496 3499 </ul> 3497 3500 <h1 id="rfc.index"><a href="#rfc.index">Index</a></h1> … … 3528 3531 <li>compress (Coding Format) <a href="#rfc.iref.c.8">5.1.2.1</a></li> 3529 3532 <li>connection <a href="#rfc.iref.c.2"><b>2.1</b></a></li> 3530 <li>Connection header field <a href="#rfc.xref.header.connection.1">2.4</a>, <a href="#rfc.xref.header.connection.2">2.6</a>, <a href="#rfc.xref.header.connection.3">3.2</a>, <a href="#rfc.xref.header.connection.4">6.1.2</a>, <a href="#rfc.xref.header.connection.5">6.1.3</a>, <a href="#rfc.xref.header.connection.6">6.1.3.1</a>, <a href="#rfc.xref.header.connection.7">8</a>, <a href="#rfc.iref.c.12"><b>8.1</b></a>, <a href="#rfc.xref.header.connection.8">8.4</a>, <a href="#rfc.xref.header.connection.9">8.7</a>, <a href="#rfc.xref.header.connection.10">9.1</a>, <a href="#rfc.xref.header.connection.11">9.1</a>, <a href="#rfc.xref.header.connection.12">A. 1.2</a>, <a href="#rfc.xref.header.connection.13">A.2</a></li>3533 <li>Connection header field <a href="#rfc.xref.header.connection.1">2.4</a>, <a href="#rfc.xref.header.connection.2">2.6</a>, <a href="#rfc.xref.header.connection.3">3.2</a>, <a href="#rfc.xref.header.connection.4">6.1.2</a>, <a href="#rfc.xref.header.connection.5">6.1.3</a>, <a href="#rfc.xref.header.connection.6">6.1.3.1</a>, <a href="#rfc.xref.header.connection.7">8</a>, <a href="#rfc.iref.c.12"><b>8.1</b></a>, <a href="#rfc.xref.header.connection.8">8.4</a>, <a href="#rfc.xref.header.connection.9">8.7</a>, <a href="#rfc.xref.header.connection.10">9.1</a>, <a href="#rfc.xref.header.connection.11">9.1</a>, <a href="#rfc.xref.header.connection.12">A.2</a></li> 3531 3534 <li>Content-Length header field <a href="#rfc.xref.header.content-length.1">3.3</a>, <a href="#rfc.xref.header.content-length.2">8</a>, <a href="#rfc.iref.c.13"><b>8.2</b></a>, <a href="#rfc.xref.header.content-length.3">9.1</a></li> 3532 3535 </ul> … … 3642 3645 <li>Header Fields 3643 3646 <ul> 3644 <li>Connection <a href="#rfc.xref.header.connection.1">2.4</a>, <a href="#rfc.xref.header.connection.2">2.6</a>, <a href="#rfc.xref.header.connection.3">3.2</a>, <a href="#rfc.xref.header.connection.4">6.1.2</a>, <a href="#rfc.xref.header.connection.5">6.1.3</a>, <a href="#rfc.xref.header.connection.6">6.1.3.1</a>, <a href="#rfc.xref.header.connection.7">8</a>, <a href="#rfc.iref.h.6"><b>8.1</b></a>, <a href="#rfc.xref.header.connection.8">8.4</a>, <a href="#rfc.xref.header.connection.9">8.7</a>, <a href="#rfc.xref.header.connection.10">9.1</a>, <a href="#rfc.xref.header.connection.11">9.1</a>, <a href="#rfc.xref.header.connection.12">A. 1.2</a>, <a href="#rfc.xref.header.connection.13">A.2</a></li>3647 <li>Connection <a href="#rfc.xref.header.connection.1">2.4</a>, <a href="#rfc.xref.header.connection.2">2.6</a>, <a href="#rfc.xref.header.connection.3">3.2</a>, <a href="#rfc.xref.header.connection.4">6.1.2</a>, <a href="#rfc.xref.header.connection.5">6.1.3</a>, <a href="#rfc.xref.header.connection.6">6.1.3.1</a>, <a href="#rfc.xref.header.connection.7">8</a>, <a href="#rfc.iref.h.6"><b>8.1</b></a>, <a href="#rfc.xref.header.connection.8">8.4</a>, <a href="#rfc.xref.header.connection.9">8.7</a>, <a href="#rfc.xref.header.connection.10">9.1</a>, <a href="#rfc.xref.header.connection.11">9.1</a>, <a href="#rfc.xref.header.connection.12">A.2</a></li> 3645 3648 <li>Content-Length <a href="#rfc.xref.header.content-length.1">3.3</a>, <a href="#rfc.xref.header.content-length.2">8</a>, <a href="#rfc.iref.h.7"><b>8.2</b></a>, <a href="#rfc.xref.header.content-length.3">9.1</a></li> 3646 3649 <li>Host <a href="#rfc.xref.header.host.1">4.3</a>, <a href="#rfc.xref.header.host.2">8</a>, <a href="#rfc.iref.h.9"><b>8.3</b></a>, <a href="#rfc.xref.header.host.3">9.1</a>, <a href="#rfc.xref.header.host.4">A.1.1</a></li>
Note: See TracChangeset
for help on using the changeset viewer.