| draft-ietf-httpbis-p1-messaging-19.txt | draft-ietf-httpbis-p1-messaging-latest.txt | |||
|---|---|---|---|---|
| HTTPbis Working Group R. Fielding, Ed. | HTTPbis Working Group R. Fielding, Ed. | |||
| Internet-Draft Adobe | Internet-Draft Adobe | |||
| Obsoletes: 2145,2616 (if approved) Y. Lafon, Ed. | Obsoletes: 2145,2616 (if approved) Y. Lafon, Ed. | |||
| Updates: 2817 (if approved) W3C | Updates: 2817 (if approved) W3C | |||
| Intended status: Standards Track J. Reschke, Ed. | Intended status: Standards Track J. Reschke, Ed. | |||
| Expires: September 13, 2012 greenbytes | Expires: November 20, 2012 greenbytes | |||
| March 12, 2012 | May 19, 2012 | |||
| HTTP/1.1, part 1: URIs, Connections, and Message Parsing | HTTP/1.1, part 1: URIs, Connections, and Message Parsing | |||
| draft-ietf-httpbis-p1-messaging-19 | draft-ietf-httpbis-p1-messaging-latest | |||
| Abstract | Abstract | |||
| The Hypertext Transfer Protocol (HTTP) is an application-level | The Hypertext Transfer Protocol (HTTP) is an application-level | |||
| protocol for distributed, collaborative, hypertext information | protocol for distributed, collaborative, hypertext information | |||
| systems. HTTP has been in use by the World Wide Web global | systems. HTTP has been in use by the World Wide Web global | |||
| information initiative since 1990. This document is Part 1 of the | information initiative since 1990. This document is Part 1 of the | |||
| seven-part specification that defines the protocol referred to as | seven-part specification that defines the protocol referred to as | |||
| "HTTP/1.1" and, taken together, obsoletes RFC 2616 and moves it to | "HTTP/1.1" and, taken together, obsoletes RFC 2616 and moves it to | |||
| historic status, along with its predecessor RFC 2068. | historic status, along with its predecessor RFC 2068. | |||
| skipping to change at page 1, line 45 | skipping to change at page 1, line 45 | |||
| Discussion of this draft should take place on the HTTPBIS working | Discussion of this draft should take place on the HTTPBIS working | |||
| group mailing list (ietf-http-wg@w3.org), which is archived at | group mailing list (ietf-http-wg@w3.org), which is archived at | |||
| <http://lists.w3.org/Archives/Public/ietf-http-wg/>. | <http://lists.w3.org/Archives/Public/ietf-http-wg/>. | |||
| The current issues list is at | The current issues list is at | |||
| <http://tools.ietf.org/wg/httpbis/trac/report/3> and related | <http://tools.ietf.org/wg/httpbis/trac/report/3> and related | |||
| documents (including fancy diffs) can be found at | documents (including fancy diffs) can be found at | |||
| <http://tools.ietf.org/wg/httpbis/>. | <http://tools.ietf.org/wg/httpbis/>. | |||
| The changes in this draft are summarized in Appendix C.20. | The changes in this draft are summarized in Appendix C.21. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on September 13, 2012. | This Internet-Draft will expire on November 20, 2012. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2012 IETF Trust and the persons identified as the | Copyright (c) 2012 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 5, line 16 | skipping to change at page 5, line 16 | |||
| C.11. Since draft-ietf-httpbis-p1-messaging-09 . . . . . . . . . 83 | C.11. Since draft-ietf-httpbis-p1-messaging-09 . . . . . . . . . 83 | |||
| C.12. Since draft-ietf-httpbis-p1-messaging-10 . . . . . . . . . 83 | C.12. Since draft-ietf-httpbis-p1-messaging-10 . . . . . . . . . 83 | |||
| C.13. Since draft-ietf-httpbis-p1-messaging-11 . . . . . . . . . 84 | C.13. Since draft-ietf-httpbis-p1-messaging-11 . . . . . . . . . 84 | |||
| C.14. Since draft-ietf-httpbis-p1-messaging-12 . . . . . . . . . 84 | C.14. Since draft-ietf-httpbis-p1-messaging-12 . . . . . . . . . 84 | |||
| C.15. Since draft-ietf-httpbis-p1-messaging-13 . . . . . . . . . 85 | C.15. Since draft-ietf-httpbis-p1-messaging-13 . . . . . . . . . 85 | |||
| C.16. Since draft-ietf-httpbis-p1-messaging-14 . . . . . . . . . 85 | C.16. Since draft-ietf-httpbis-p1-messaging-14 . . . . . . . . . 85 | |||
| C.17. Since draft-ietf-httpbis-p1-messaging-15 . . . . . . . . . 85 | C.17. Since draft-ietf-httpbis-p1-messaging-15 . . . . . . . . . 85 | |||
| C.18. Since draft-ietf-httpbis-p1-messaging-16 . . . . . . . . . 86 | C.18. Since draft-ietf-httpbis-p1-messaging-16 . . . . . . . . . 86 | |||
| C.19. Since draft-ietf-httpbis-p1-messaging-17 . . . . . . . . . 86 | C.19. Since draft-ietf-httpbis-p1-messaging-17 . . . . . . . . . 86 | |||
| C.20. Since draft-ietf-httpbis-p1-messaging-18 . . . . . . . . . 87 | C.20. Since draft-ietf-httpbis-p1-messaging-18 . . . . . . . . . 87 | |||
| C.21. Since draft-ietf-httpbis-p1-messaging-19 . . . . . . . . . 87 | ||||
| Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 | Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 | |||
| 1. Introduction | 1. Introduction | |||
| The Hypertext Transfer Protocol (HTTP) is an application-level | The Hypertext Transfer Protocol (HTTP) is an application-level | |||
| request/response protocol that uses extensible semantics and MIME- | request/response protocol that uses extensible semantics and MIME- | |||
| like message payloads for flexible interaction with network-based | like message payloads for flexible interaction with network-based | |||
| hypertext information systems. HTTP relies upon the Uniform Resource | hypertext information systems. HTTP relies upon the Uniform Resource | |||
| Identifier (URI) standard [RFC3986] to indicate the target resource | Identifier (URI) standard [RFC3986] to indicate the target resource | |||
| (Section 5.1) and relationships between resources. Messages are | (Section 5.1) and relationships between resources. Messages are | |||
| passed in a format similar to that used by Internet mail [RFC5322] | passed in a format similar to that used by Internet mail [RFC5322] | |||
| and the Multipurpose Internet Mail Extensions (MIME) [RFC2045] (see | and the Multipurpose Internet Mail Extensions (MIME) [RFC2045] (see | |||
| Appendix A of [Part3] for the differences between HTTP and MIME | Appendix A of [Part2] for the differences between HTTP and MIME | |||
| messages). | messages). | |||
| HTTP is a generic interface protocol for information systems. It is | HTTP is a generic interface protocol for information systems. It is | |||
| designed to hide the details of how a service is implemented by | designed to hide the details of how a service is implemented by | |||
| presenting a uniform interface to clients that is independent of the | presenting a uniform interface to clients that is independent of the | |||
| types of resources provided. Likewise, servers do not need to be | types of resources provided. Likewise, servers do not need to be | |||
| aware of each client's purpose: an HTTP request can be considered in | aware of each client's purpose: an HTTP request can be considered in | |||
| isolation rather than being associated with a specific type of client | isolation rather than being associated with a specific type of client | |||
| or a predetermined sequence of application steps. The result is a | or a predetermined sequence of application steps. The result is a | |||
| protocol that can be used effectively in many different contexts and | protocol that can be used effectively in many different contexts and | |||
| skipping to change at page 10, line 52 | skipping to change at page 10, line 52 | |||
| that would be significant to the original sender or potentially | that would be significant to the original sender or potentially | |||
| significant to downstream recipients). For example, a transforming | significant to downstream recipients). For example, a transforming | |||
| proxy might be acting as a shared annotation server (modifying | proxy might be acting as a shared annotation server (modifying | |||
| responses to include references to a local annotation database), a | responses to include references to a local annotation database), a | |||
| malware filter, a format transcoder, or an intranet-to-Internet | malware filter, a format transcoder, or an intranet-to-Internet | |||
| privacy filter. Such transformations are presumed to be desired by | privacy filter. Such transformations are presumed to be desired by | |||
| the client (or client organization) that selected the proxy and are | the client (or client organization) that selected the proxy and are | |||
| beyond the scope of this specification. However, when a proxy is not | beyond the scope of this specification. However, when a proxy is not | |||
| intended to transform a given message, we use the term "non- | intended to transform a given message, we use the term "non- | |||
| transforming proxy" to target requirements that preserve HTTP message | transforming proxy" to target requirements that preserve HTTP message | |||
| semantics. See Section 7.2.4 of [Part2] and Section 3.6 of [Part6] | semantics. See Section 4.4.4 of [Part2] and Section 3.6 of [Part6] | |||
| for status and warning codes related to transformations. | for status and warning codes related to transformations. | |||
| A "gateway" (a.k.a., "reverse proxy") is a receiving agent that acts | A "gateway" (a.k.a., "reverse proxy") is a receiving agent that acts | |||
| as a layer above some other server(s) and translates the received | as a layer above some other server(s) and translates the received | |||
| requests to the underlying server's protocol. Gateways are often | requests to the underlying server's protocol. Gateways are often | |||
| used to encapsulate legacy or untrusted information services, to | used to encapsulate legacy or untrusted information services, to | |||
| improve server performance through "accelerator" caching, and to | improve server performance through "accelerator" caching, and to | |||
| enable partitioning or load-balancing of HTTP services across | enable partitioning or load-balancing of HTTP services across | |||
| multiple machines. | multiple machines. | |||
| skipping to change at page 21, line 7 | skipping to change at page 21, line 7 | |||
| directly instead of properly percent-encoding the disallowed | directly instead of properly percent-encoding the disallowed | |||
| characters. Recipients of an invalid request-line SHOULD respond | characters. Recipients of an invalid request-line SHOULD respond | |||
| with either a 400 (Bad Request) error or a 301 (Moved Permanently) | with either a 400 (Bad Request) error or a 301 (Moved Permanently) | |||
| redirect with the request-target properly encoded. Recipients SHOULD | redirect with the request-target properly encoded. Recipients SHOULD | |||
| NOT attempt to autocorrect and then process the request without a | NOT attempt to autocorrect and then process the request without a | |||
| redirect, since the invalid request-line might be deliberately | redirect, since the invalid request-line might be deliberately | |||
| crafted to bypass security filters along the request chain. | crafted to bypass security filters along the request chain. | |||
| HTTP does not place a pre-defined limit on the length of a request- | HTTP does not place a pre-defined limit on the length of a request- | |||
| line. A server that receives a method longer than any that it | line. A server that receives a method longer than any that it | |||
| implements SHOULD respond with either a 404 (Not Allowed), if it is | implements SHOULD respond with either a 405 (Not Allowed), if it is | |||
| an origin server, or a 501 (Not Implemented) status code. A server | an origin server, or a 501 (Not Implemented) status code. A server | |||
| MUST be prepared to receive URIs of unbounded length and respond with | MUST be prepared to receive URIs of unbounded length and respond with | |||
| the 414 (URI Too Long) status code if the received request-target | the 414 (URI Too Long) status code if the received request-target | |||
| would be longer than the server wishes to handle (see Section 7.4.12 | would be longer than the server wishes to handle (see Section 4.6.12 | |||
| of [Part2]). | of [Part2]). | |||
| Various ad-hoc limitations on request-line length are found in | Various ad-hoc limitations on request-line length are found in | |||
| practice. It is RECOMMENDED that all HTTP senders and recipients | practice. It is RECOMMENDED that all HTTP senders and recipients | |||
| support, at a minimum, request-line lengths of up to 8000 octets. | support, at a minimum, request-line lengths of up to 8000 octets. | |||
| 3.1.2. Status Line | 3.1.2. Status Line | |||
| The first line of a response message is the status-line, consisting | The first line of a response message is the status-line, consisting | |||
| of the protocol version, a space (SP), the status code, another | of the protocol version, a space (SP), the status code, another | |||
| skipping to change at page 22, line 15 | skipping to change at page 22, line 15 | |||
| header-field = field-name ":" OWS field-value BWS | header-field = field-name ":" OWS field-value BWS | |||
| field-name = token | field-name = token | |||
| field-value = *( field-content / obs-fold ) | field-value = *( field-content / obs-fold ) | |||
| field-content = *( HTAB / SP / VCHAR / obs-text ) | field-content = *( HTAB / SP / VCHAR / obs-text ) | |||
| obs-fold = CRLF ( SP / HTAB ) | obs-fold = CRLF ( SP / HTAB ) | |||
| ; obsolete line folding | ; obsolete line folding | |||
| ; see Section 3.2.2 | ; see Section 3.2.2 | |||
| The field-name token labels the corresponding field-value as having | The field-name token labels the corresponding field-value as having | |||
| the semantics defined by that header field. For example, the Date | the semantics defined by that header field. For example, the Date | |||
| header field is defined in Section 10.2 of [Part2] as containing the | header field is defined in Section 9.10 of [Part2] as containing the | |||
| origination timestamp for the message in which it appears. | origination timestamp for the message in which it appears. | |||
| HTTP header fields are fully extensible: there is no limit on the | HTTP header fields are fully extensible: there is no limit on the | |||
| introduction of new field names, each presumably defining new | introduction of new field names, each presumably defining new | |||
| semantics, or on the number of header fields used in a given message. | semantics, or on the number of header fields used in a given message. | |||
| Existing fields are defined in each part of this specification and in | Existing fields are defined in each part of this specification and in | |||
| many other specifications outside the standards process. New header | many other specifications outside the standards process. New header | |||
| fields can be introduced without changing the protocol version if | fields can be introduced without changing the protocol version if | |||
| their defined semantics allow them to be safely ignored by recipients | their defined semantics allow them to be safely ignored by recipients | |||
| that do not recognize them. | that do not recognize them. | |||
| skipping to change at page 28, line 42 | skipping to change at page 28, line 42 | |||
| indicates that the payload body has been compressed using the gzip | indicates that the payload body has been compressed using the gzip | |||
| coding and then chunked using the chunked coding while forming the | coding and then chunked using the chunked coding while forming the | |||
| message body. | message body. | |||
| If more than one Transfer-Encoding header field is present in a | If more than one Transfer-Encoding header field is present in a | |||
| message, the multiple field-values MUST be combined into one field- | message, the multiple field-values MUST be combined into one field- | |||
| value, according to the algorithm defined in Section 3.2, before | value, according to the algorithm defined in Section 3.2, before | |||
| determining the message body length. | determining the message body length. | |||
| Unlike Content-Encoding (Section 2.2 of [Part3]), Transfer-Encoding | Unlike Content-Encoding (Section 5.4 of [Part2]), Transfer-Encoding | |||
| is a property of the message, not of the payload, and thus MAY be | is a property of the message, not of the payload, and thus MAY be | |||
| added or removed by any implementation along the request/response | added or removed by any implementation along the request/response | |||
| chain. Additional information about the encoding parameters MAY be | chain. Additional information about the encoding parameters MAY be | |||
| provided by other header fields not defined by this specification. | provided by other header fields not defined by this specification. | |||
| Transfer-Encoding MAY be sent in a response to a HEAD request or in a | Transfer-Encoding MAY be sent in a response to a HEAD request or in a | |||
| 304 response to a GET request, neither of which includes a message | 304 response to a GET request, neither of which includes a message | |||
| body, to indicate that the origin server would have applied a | body, to indicate that the origin server would have applied a | |||
| transfer coding to the message body if the request had been an | transfer coding to the message body if the request had been an | |||
| unconditional GET. This indication is not required, however, because | unconditional GET. This indication is not required, however, because | |||
| skipping to change at page 33, line 4 | skipping to change at page 33, line 4 | |||
| if the zero-sized chunk that terminates the encoding has not been | if the zero-sized chunk that terminates the encoding has not been | |||
| received. A message that uses a valid Content-Length is incomplete | received. A message that uses a valid Content-Length is incomplete | |||
| if the size of the message body received (in octets) is less than the | if the size of the message body received (in octets) is less than the | |||
| value given by Content-Length. A response that has neither chunked | value given by Content-Length. A response that has neither chunked | |||
| transfer encoding nor Content-Length is terminated by closure of the | transfer encoding nor Content-Length is terminated by closure of the | |||
| connection, and thus is considered complete regardless of the number | connection, and thus is considered complete regardless of the number | |||
| of message body octets received, provided that the header block was | of message body octets received, provided that the header block was | |||
| received intact. | received intact. | |||
| A user agent MUST NOT render an incomplete response message body as | A user agent MUST NOT render an incomplete response message body as | |||
| if it were complete (i.e., some indication must be given to the user | if it were complete (i.e., some indication needs to be given to the | |||
| that an error occurred). Cache requirements for incomplete responses | user that an error occurred). Cache requirements for incomplete | |||
| are defined in Section 2.1 of [Part6]. | responses are defined in Section 2.1 of [Part6]. | |||
| A server MUST read the entire request message body or close the | A server MUST read the entire request message body or close the | |||
| connection after sending its response, since otherwise the remaining | connection after sending its response, since otherwise the remaining | |||
| data on a persistent connection would be misinterpreted as the next | data on a persistent connection would be misinterpreted as the next | |||
| request. Likewise, a client MUST read the entire response message | request. Likewise, a client MUST read the entire response message | |||
| body if it intends to reuse the same connection for a subsequent | body if it intends to reuse the same connection for a subsequent | |||
| request. Pipelining multiple requests on a connection is described | request. Pipelining multiple requests on a connection is described | |||
| in Section 6.3.2.2. | in Section 6.3.2.2. | |||
| 3.5. Message Parsing Robustness | 3.5. Message Parsing Robustness | |||
| skipping to change at page 38, line 16 | skipping to change at page 38, line 16 | |||
| transfer-coding with the highest non-zero qvalue is preferred. | transfer-coding with the highest non-zero qvalue is preferred. | |||
| The "chunked" transfer-coding always has a qvalue of 1. | The "chunked" transfer-coding always has a qvalue of 1. | |||
| If the TE field-value is empty or if no TE field is present, the only | If the TE field-value is empty or if no TE field is present, the only | |||
| acceptable transfer-coding is "chunked". A message with no transfer- | acceptable transfer-coding is "chunked". A message with no transfer- | |||
| coding is always acceptable. | coding is always acceptable. | |||
| 4.3.1. Quality Values | 4.3.1. Quality Values | |||
| Both transfer codings (TE request header field, Section 4.3) and | Both transfer codings (TE request header field, Section 4.3) and | |||
| content negotiation (Section 5 of [Part3]) use short "floating point" | content negotiation (Section 8 of [Part2]) use short "floating point" | |||
| numbers to indicate the relative importance ("weight") of various | numbers to indicate the relative importance ("weight") of various | |||
| negotiable parameters. A weight is normalized to a real number in | negotiable parameters. A weight is normalized to a real number in | |||
| the range 0 through 1, where 0 is the minimum and 1 the maximum | the range 0 through 1, where 0 is the minimum and 1 the maximum | |||
| value. If a parameter has a quality value of 0, then content with | value. If a parameter has a quality value of 0, then content with | |||
| this parameter is "not acceptable" for the client. HTTP/1.1 | this parameter is "not acceptable" for the client. HTTP/1.1 | |||
| applications MUST NOT generate more than three digits after the | applications MUST NOT generate more than three digits after the | |||
| decimal point. User configuration of these values SHOULD also be | decimal point. User configuration of these values SHOULD also be | |||
| limited in this fashion. | limited in this fashion. | |||
| qvalue = ( "0" [ "." 0*3DIGIT ] ) | qvalue = ( "0" [ "." 0*3DIGIT ] ) | |||
| skipping to change at page 41, line 31 | skipping to change at page 41, line 31 | |||
| An example absolute-form of request-line would be: | An example absolute-form of request-line would be: | |||
| GET http://www.example.org/pub/WWW/TheProject.html HTTP/1.1 | GET http://www.example.org/pub/WWW/TheProject.html HTTP/1.1 | |||
| To allow for transition to the absolute-form for all requests in some | To allow for transition to the absolute-form for all requests in some | |||
| future version of HTTP, HTTP/1.1 servers MUST accept the absolute- | future version of HTTP, HTTP/1.1 servers MUST accept the absolute- | |||
| form in requests, even though HTTP/1.1 clients will only send them in | form in requests, even though HTTP/1.1 clients will only send them in | |||
| requests to proxies. | requests to proxies. | |||
| The authority-form of request-target is only used for CONNECT | The authority-form of request-target is only used for CONNECT | |||
| requests (Section 6.9 of [Part2]). When making a CONNECT request to | requests (Section 2.3.8 of [Part2]). When making a CONNECT request | |||
| establish a tunnel through one or more proxies, a client MUST send | to establish a tunnel through one or more proxies, a client MUST send | |||
| only the target URI's authority component (excluding any userinfo) as | only the target URI's authority component (excluding any userinfo) as | |||
| the request-target. For example, | the request-target. For example, | |||
| CONNECT www.example.com:80 HTTP/1.1 | CONNECT www.example.com:80 HTTP/1.1 | |||
| The asterisk-form of request-target is only used for a server-wide | The asterisk-form of request-target is only used for a server-wide | |||
| OPTIONS request (Section 6.2 of [Part2]). When a client wishes to | OPTIONS request (Section 2.3.1 of [Part2]). When a client wishes to | |||
| request OPTIONS for the server as a whole, as opposed to a specific | request OPTIONS for the server as a whole, as opposed to a specific | |||
| named resource of that server, the client MUST send only "*" (%x2A) | named resource of that server, the client MUST send only "*" (%x2A) | |||
| as the request-target. For example, | as the request-target. For example, | |||
| OPTIONS * HTTP/1.1 | OPTIONS * HTTP/1.1 | |||
| If a proxy receives an OPTIONS request with an absolute-form of | If a proxy receives an OPTIONS request with an absolute-form of | |||
| request-target in which the URI has an empty path and no query | request-target in which the URI has an empty path and no query | |||
| component, then the last proxy on the request chain MUST send a | component, then the last proxy on the request chain MUST send a | |||
| request-target of "*" when it forwards the request to the indicated | request-target of "*" when it forwards the request to the indicated | |||
| skipping to change at page 47, line 11 | skipping to change at page 47, line 11 | |||
| does not include no-transform, but if it does so, it MUST add a | does not include no-transform, but if it does so, it MUST add a | |||
| Warning 214 (Transformation applied) if one does not already appear | Warning 214 (Transformation applied) if one does not already appear | |||
| in the message (see Section 3.6 of [Part6]). | in the message (see Section 3.6 of [Part6]). | |||
| Warning: Unnecessary modification of end-to-end header fields | Warning: Unnecessary modification of end-to-end header fields | |||
| might cause authentication failures if stronger authentication | might cause authentication failures if stronger authentication | |||
| mechanisms are introduced in later versions of HTTP. Such | mechanisms are introduced in later versions of HTTP. Such | |||
| authentication mechanisms MAY rely on the values of header fields | authentication mechanisms MAY rely on the values of header fields | |||
| not listed here. | not listed here. | |||
| A non-transforming proxy MUST preserve the message payload ([Part3]), | A non-transforming proxy MUST preserve the message payload ([Part2]), | |||
| though it MAY change the message body through application or removal | though it MAY change the message body through application or removal | |||
| of a transfer-coding (Section 4). | of a transfer-coding (Section 4). | |||
| 5.7. Associating a Response to a Request | 5.7. Associating a Response to a Request | |||
| HTTP does not include a request identifier for associating a given | HTTP does not include a request identifier for associating a given | |||
| request message with its corresponding one or more response messages. | request message with its corresponding one or more response messages. | |||
| Hence, it relies on the order of response arrival to correspond | Hence, it relies on the order of response arrival to correspond | |||
| exactly to the order in which requests are made on the same | exactly to the order in which requests are made on the same | |||
| connection. More than one response message per request only occurs | connection. More than one response message per request only occurs | |||
| when one or more informational responses (1xx, see Section 7.1 of | when one or more informational responses (1xx, see Section 4.3 of | |||
| [Part2]) precede a final response to the same request. | [Part2]) precede a final response to the same request. | |||
| A client that uses persistent connections and sends more than one | A client that uses persistent connections and sends more than one | |||
| request per connection MUST maintain a list of outstanding requests | request per connection MUST maintain a list of outstanding requests | |||
| in the order sent on that connection and MUST associate each received | in the order sent on that connection and MUST associate each received | |||
| response message to the highest ordered request that has not yet | response message to the highest ordered request that has not yet | |||
| received a final (non-1xx) response. | received a final (non-1xx) response. | |||
| 6. Connection Management | 6. Connection Management | |||
| skipping to change at page 52, line 42 | skipping to change at page 52, line 42 | |||
| Clients which assume persistent connections and pipeline immediately | Clients which assume persistent connections and pipeline immediately | |||
| after connection establishment SHOULD be prepared to retry their | after connection establishment SHOULD be prepared to retry their | |||
| connection if the first pipelined attempt fails. If a client does | connection if the first pipelined attempt fails. If a client does | |||
| such a retry, it MUST NOT pipeline before it knows the connection is | such a retry, it MUST NOT pipeline before it knows the connection is | |||
| persistent. Clients MUST also be prepared to resend their requests | persistent. Clients MUST also be prepared to resend their requests | |||
| if the server closes the connection before sending all of the | if the server closes the connection before sending all of the | |||
| corresponding responses. | corresponding responses. | |||
| Clients SHOULD NOT pipeline requests using non-idempotent request | Clients SHOULD NOT pipeline requests using non-idempotent request | |||
| methods or non-idempotent sequences of request methods (see Section | methods or non-idempotent sequences of request methods (see Section | |||
| 6.1.2 of [Part2]). Otherwise, a premature termination of the | 2.1.2 of [Part2]). Otherwise, a premature termination of the | |||
| transport connection could lead to indeterminate results. A client | transport connection could lead to indeterminate results. A client | |||
| wishing to send a non-idempotent request SHOULD wait to send that | wishing to send a non-idempotent request SHOULD wait to send that | |||
| request until it has received the response status line for the | request until it has received the response status line for the | |||
| previous request. | previous request. | |||
| 6.3.3. Practical Considerations | 6.3.3. Practical Considerations | |||
| Servers will usually have some time-out value beyond which they will | Servers will usually have some time-out value beyond which they will | |||
| no longer maintain an inactive connection. Proxy servers might make | no longer maintain an inactive connection. Proxy servers might make | |||
| this a higher value since it is likely that the client will be making | this a higher value since it is likely that the client will be making | |||
| skipping to change at page 53, line 49 | skipping to change at page 53, line 49 | |||
| Note that servers might reject traffic that they deem abusive, | Note that servers might reject traffic that they deem abusive, | |||
| including an excessive number of connections from a client. | including an excessive number of connections from a client. | |||
| 6.3.4. Retrying Requests | 6.3.4. Retrying Requests | |||
| Senders can close the transport connection at any time. Therefore, | Senders can close the transport connection at any time. Therefore, | |||
| clients, servers, and proxies MUST be able to recover from | clients, servers, and proxies MUST be able to recover from | |||
| asynchronous close events. Client software MAY reopen the transport | asynchronous close events. Client software MAY reopen the transport | |||
| connection and retransmit the aborted sequence of requests without | connection and retransmit the aborted sequence of requests without | |||
| user interaction so long as the request sequence is idempotent (see | user interaction so long as the request sequence is idempotent (see | |||
| Section 6.1.2 of [Part2]). Non-idempotent request methods or | Section 2.1.2 of [Part2]). Non-idempotent request methods or | |||
| sequences MUST NOT be automatically retried, although user agents MAY | sequences MUST NOT be automatically retried, although user agents MAY | |||
| offer a human operator the choice of retrying the request(s). | offer a human operator the choice of retrying the request(s). | |||
| Confirmation by user-agent software with semantic understanding of | Confirmation by user-agent software with semantic understanding of | |||
| the application MAY substitute for user confirmation. The automatic | the application MAY substitute for user confirmation. The automatic | |||
| retry SHOULD NOT be repeated if the second sequence of requests | retry SHOULD NOT be repeated if the second sequence of requests | |||
| fails. | fails. | |||
| 6.4. Message Transmission Requirements | 6.4. Message Transmission Requirements | |||
| skipping to change at page 54, line 32 | skipping to change at page 54, line 32 | |||
| the network connection for an error status code while it is | the network connection for an error status code while it is | |||
| transmitting the request. If the client sees an error status code, | transmitting the request. If the client sees an error status code, | |||
| it SHOULD immediately cease transmitting the body. If the body is | it SHOULD immediately cease transmitting the body. If the body is | |||
| being sent using a "chunked" encoding (Section 4), a zero length | being sent using a "chunked" encoding (Section 4), a zero length | |||
| chunk and empty trailer MAY be used to prematurely mark the end of | chunk and empty trailer MAY be used to prematurely mark the end of | |||
| the message. If the body was preceded by a Content-Length header | the message. If the body was preceded by a Content-Length header | |||
| field, the client MUST close the connection. | field, the client MUST close the connection. | |||
| 6.4.3. Use of the 100 (Continue) Status | 6.4.3. Use of the 100 (Continue) Status | |||
| The purpose of the 100 (Continue) status code (see Section 7.1.1 of | The purpose of the 100 (Continue) status code (see Section 4.3.1 of | |||
| [Part2]) is to allow a client that is sending a request message with | [Part2]) is to allow a client that is sending a request message with | |||
| a request body to determine if the origin server is willing to accept | a request body to determine if the origin server is willing to accept | |||
| the request (based on the request header fields) before the client | the request (based on the request header fields) before the client | |||
| sends the request body. In some cases, it might either be | sends the request body. In some cases, it might either be | |||
| inappropriate or highly inefficient for the client to send the body | inappropriate or highly inefficient for the client to send the body | |||
| if the server will reject the message without looking at the body. | if the server will reject the message without looking at the body. | |||
| Requirements for HTTP/1.1 clients: | Requirements for HTTP/1.1 clients: | |||
| o If a client will wait for a 100 (Continue) response before sending | o If a client will wait for a 100 (Continue) response before sending | |||
| the request body, it MUST send an Expect header field (Section | the request body, it MUST send an Expect header field (Section | |||
| 10.3 of [Part2]) with the "100-continue" expectation. | 9.11 of [Part2]) with the "100-continue" expectation. | |||
| o A client MUST NOT send an Expect header field (Section 10.3 of | o A client MUST NOT send an Expect header field (Section 9.11 of | |||
| [Part2]) with the "100-continue" expectation if it does not intend | [Part2]) with the "100-continue" expectation if it does not intend | |||
| to send a request body. | to send a request body. | |||
| Because of the presence of older implementations, the protocol allows | Because of the presence of older implementations, the protocol allows | |||
| ambiguous situations in which a client might send "Expect: 100- | ambiguous situations in which a client might send "Expect: 100- | |||
| continue" without receiving either a 417 (Expectation Failed) or a | continue" without receiving either a 417 (Expectation Failed) or a | |||
| 100 (Continue) status code. Therefore, when a client sends this | 100 (Continue) status code. Therefore, when a client sends this | |||
| header field to an origin server (possibly via a proxy) from which it | header field to an origin server (possibly via a proxy) from which it | |||
| has never seen a 100 (Continue) status code, the client SHOULD NOT | has never seen a 100 (Continue) status code, the client SHOULD NOT | |||
| wait for an indefinite period before sending the request body. | wait for an indefinite period before sending the request body. | |||
| skipping to change at page 56, line 26 | skipping to change at page 56, line 26 | |||
| HTTP/1.0 or lower, it MUST NOT forward the request, and it MUST | HTTP/1.0 or lower, it MUST NOT forward the request, and it MUST | |||
| respond with a 417 (Expectation Failed) status code. | respond with a 417 (Expectation Failed) status code. | |||
| o Proxies SHOULD maintain a record of the HTTP version numbers | o Proxies SHOULD maintain a record of the HTTP version numbers | |||
| received from recently-referenced next-hop servers. | received from recently-referenced next-hop servers. | |||
| o A proxy MUST NOT forward a 100 (Continue) response if the request | o A proxy MUST NOT forward a 100 (Continue) response if the request | |||
| message was received from an HTTP/1.0 (or earlier) client and did | message was received from an HTTP/1.0 (or earlier) client and did | |||
| not include an Expect header field with the "100-continue" | not include an Expect header field with the "100-continue" | |||
| expectation. This requirement overrides the general rule for | expectation. This requirement overrides the general rule for | |||
| forwarding of 1xx responses (see Section 7.1 of [Part2]). | forwarding of 1xx responses (see Section 4.3 of [Part2]). | |||
| 6.4.4. Closing Connections on Error | 6.4.4. Closing Connections on Error | |||
| If the client is sending data, a server implementation using TCP | If the client is sending data, a server implementation using TCP | |||
| SHOULD be careful to ensure that the client acknowledges receipt of | SHOULD be careful to ensure that the client acknowledges receipt of | |||
| the packet(s) containing the response, before the server closes the | the packet(s) containing the response, before the server closes the | |||
| input connection. If the client continues sending data to the server | input connection. If the client continues sending data to the server | |||
| after the close, the server's TCP stack will send a reset packet to | after the close, the server's TCP stack will send a reset packet to | |||
| the client, which might erase the client's unacknowledged input | the client, which might erase the client's unacknowledged input | |||
| buffers before they can be read and interpreted by the HTTP | buffers before they can be read and interpreted by the HTTP | |||
| skipping to change at page 57, line 37 | skipping to change at page 57, line 37 | |||
| after changing the protocol MUST be a response to the initial HTTP | after changing the protocol MUST be a response to the initial HTTP | |||
| request containing the Upgrade header field. | request containing the Upgrade header field. | |||
| The Upgrade header field only applies to the immediate connection. | The Upgrade header field only applies to the immediate connection. | |||
| Therefore, the upgrade keyword MUST be supplied within a Connection | Therefore, the upgrade keyword MUST be supplied within a Connection | |||
| header field (Section 6.1) whenever Upgrade is present in an HTTP/1.1 | header field (Section 6.1) whenever Upgrade is present in an HTTP/1.1 | |||
| message. | message. | |||
| The Upgrade header field cannot be used to indicate a switch to a | The Upgrade header field cannot be used to indicate a switch to a | |||
| protocol on a different connection. For that purpose, it is more | protocol on a different connection. For that purpose, it is more | |||
| appropriate to use a 3xx redirection response (Section 7.3 of | appropriate to use a 3xx redirection response (Section 4.5 of | |||
| [Part2]). | [Part2]). | |||
| Servers MUST include the "Upgrade" header field in 101 (Switching | Servers MUST include the "Upgrade" header field in 101 (Switching | |||
| Protocols) responses to indicate which protocol(s) are being switched | Protocols) responses to indicate which protocol(s) are being switched | |||
| to, and MUST include it in 426 (Upgrade Required) responses to | to, and MUST include it in 426 (Upgrade Required) responses to | |||
| indicate acceptable protocols to upgrade to. Servers MAY include it | indicate acceptable protocols to upgrade to. Servers MAY include it | |||
| in any other response to indicate that they are willing to upgrade to | in any other response to indicate that they are willing to upgrade to | |||
| one of the specified protocols. | one of the specified protocols. | |||
| This specification only defines the protocol name "HTTP" for use by | This specification only defines the protocol name "HTTP" for use by | |||
| skipping to change at page 61, line 39 | skipping to change at page 61, line 39 | |||
| Registrations MUST include the following fields: | Registrations MUST include the following fields: | |||
| o Name | o Name | |||
| o Description | o Description | |||
| o Pointer to specification text | o Pointer to specification text | |||
| Names of transfer codings MUST NOT overlap with names of content | Names of transfer codings MUST NOT overlap with names of content | |||
| codings (Section 2.2 of [Part3]) unless the encoding transformation | codings (Section 5.4 of [Part2]) unless the encoding transformation | |||
| is identical, as it is the case for the compression codings defined | is identical, as it is the case for the compression codings defined | |||
| in Section 4.2. | in Section 4.2. | |||
| Values to be added to this name space require IETF Review (see | Values to be added to this name space require IETF Review (see | |||
| Section 4.1 of [RFC5226]), and MUST conform to the purpose of | Section 4.1 of [RFC5226]), and MUST conform to the purpose of | |||
| transfer coding defined in this section. | transfer coding defined in this section. | |||
| The registry itself is maintained at | The registry itself is maintained at | |||
| <http://www.iana.org/assignments/http-parameters>. | <http://www.iana.org/assignments/http-parameters>. | |||
| skipping to change at page 65, line 42 | skipping to change at page 65, line 42 | |||
| unlimited lengths. | unlimited lengths. | |||
| To promote interoperability, this specification makes specific | To promote interoperability, this specification makes specific | |||
| recommendations for minimum size limits on request-line | recommendations for minimum size limits on request-line | |||
| (Section 3.1.1) and blocks of header fields (Section 3.2). These are | (Section 3.1.1) and blocks of header fields (Section 3.2). These are | |||
| minimum recommendations, chosen to be supportable even by | minimum recommendations, chosen to be supportable even by | |||
| implementations with limited resources; it is expected that most | implementations with limited resources; it is expected that most | |||
| implementations will choose substantially higher limits. | implementations will choose substantially higher limits. | |||
| This specification also provides a way for servers to reject messages | This specification also provides a way for servers to reject messages | |||
| that have request-targets that are too long (Section 7.4.12 of | that have request-targets that are too long (Section 4.6.12 of | |||
| [Part2]) or request entities that are too large (Section 7.4 of | [Part2]) or request entities that are too large (Section 4.6 of | |||
| [Part2]). | [Part2]). | |||
| Other fields (including but not limited to request methods, response | Other fields (including but not limited to request methods, response | |||
| status phrases, header field-names, and body chunks) SHOULD be | status phrases, header field-names, and body chunks) SHOULD be | |||
| limited by implementations carefully, so as to not impede | limited by implementations carefully, so as to not impede | |||
| interoperability. | interoperability. | |||
| 9. Acknowledgments | 9. Acknowledgments | |||
| This edition of HTTP builds on the many contributions that went into | This edition of HTTP builds on the many contributions that went into | |||
| skipping to change at page 66, line 19 | skipping to change at page 66, line 19 | |||
| contributions made by the previous authors, editors, and working | contributions made by the previous authors, editors, and working | |||
| group chairs: Tim Berners-Lee, Ari Luotonen, Roy T. Fielding, Henrik | group chairs: Tim Berners-Lee, Ari Luotonen, Roy T. Fielding, Henrik | |||
| Frystyk Nielsen, Jim Gettys, Jeffrey C. Mogul, Larry Masinter, Paul | Frystyk Nielsen, Jim Gettys, Jeffrey C. Mogul, Larry Masinter, Paul | |||
| J. Leach, and Mark Nottingham. See Section 16 of [RFC2616] for | J. Leach, and Mark Nottingham. See Section 16 of [RFC2616] for | |||
| additional acknowledgements from prior revisions. | additional acknowledgements from prior revisions. | |||
| Since 1999, the following contributors have helped improve the HTTP | Since 1999, the following contributors have helped improve the HTTP | |||
| specification by reporting bugs, asking smart questions, drafting or | specification by reporting bugs, asking smart questions, drafting or | |||
| reviewing text, and evaluating open issues: | reviewing text, and evaluating open issues: | |||
| Adam Barth, Adam Roach, Addison Phillips, Adrian Chadd, Adrien de | Adam Barth, Adam Roach, Addison Phillips, Adrian Chadd, Adrien W. de | |||
| Croy, Alan Ford, Alan Ruttenberg, Albert Lunde, Alex Rousskov, Alexey | Croy, Alan Ford, Alan Ruttenberg, Albert Lunde, Alex Rousskov, | |||
| Melnikov, Alisha Smith, Amichai Rothman, Amit Klein, Amos Jeffries, | Alexandre Morgaut, Alexey Melnikov, Alisha Smith, Amichai Rothman, | |||
| Andreas Maier, Andreas Petersson, Anne van Kesteren, Anthony Bryan, | Amit Klein, Amos Jeffries, Andreas Maier, Andreas Petersson, Anne van | |||
| Asbjorn Ulsberg, Balachander Krishnamurthy, Barry Leiba, Ben Laurie, | Kesteren, Anthony Bryan, Asbjorn Ulsberg, Balachander Krishnamurthy, | |||
| Benjamin Niven-Jenkins, Bil Corry, Bill Burke, Bjoern Hoehrmann, Bob | Barry Leiba, Ben Laurie, Benjamin Niven-Jenkins, Bil Corry, Bill | |||
| Scheifler, Boris Zbarsky, Brett Slatkin, Brian Kell, Brian McBarron, | Burke, Bjoern Hoehrmann, Bob Scheifler, Boris Zbarsky, Brett Slatkin, | |||
| Brian Pane, Brian Smith, Bryce Nesbitt, Cameron Heavon-Jones, Carl | Brian Kell, Brian McBarron, Brian Pane, Brian Smith, Bryce Nesbitt, | |||
| Kugler, Carsten Bormann, Charles Fry, Chris Newman, Cyrus Daboo, Dale | Cameron Heavon-Jones, Carl Kugler, Carsten Bormann, Charles Fry, | |||
| Robert Anderson, Dan Winship, Daniel Stenberg, Dave Cridland, Dave | Chris Newman, Cyrus Daboo, Dale Robert Anderson, Dan Winship, Daniel | |||
| Crocker, Dave Kristol, David Booth, David Singer, David W. Morris, | Stenberg, Dave Cridland, Dave Crocker, Dave Kristol, David Booth, | |||
| Diwakar Shetty, Dmitry Kurochkin, Drummond Reed, Duane Wessels, | David Singer, David W. Morris, Diwakar Shetty, Dmitry Kurochkin, | |||
| Edward Lee, Eliot Lear, Eran Hammer-Lahav, Eric D. Williams, Eric J. | Drummond Reed, Duane Wessels, Edward Lee, Eliot Lear, Eran Hammer- | |||
| Bowman, Eric Lawrence, Eric Rescorla, Erik Aronesty, Florian Weimer, | Lahav, Eric D. Williams, Eric J. Bowman, Eric Lawrence, Eric | |||
| Frank Ellermann, Fred Bohle, Geoffrey Sneddon, Gervase Markham, Greg | Rescorla, Erik Aronesty, Florian Weimer, Frank Ellermann, Fred Bohle, | |||
| Wilkins, Harald Tveit Alvestrand, Harry Halpin, Helge Hess, Henrik | Geoffrey Sneddon, Gervase Markham, Greg Wilkins, Harald Tveit | |||
| Nordstrom, Henry S. Thompson, Henry Story, Herbert van de Sompel, | Alvestrand, Harry Halpin, Helge Hess, Henrik Nordstrom, Henry S. | |||
| Howard Melman, Hugo Haas, Ian Hickson, Ingo Struck, J. Ross Nicoll, | Thompson, Henry Story, Herbert van de Sompel, Howard Melman, Hugo | |||
| James H. Manger, James Lacey, James M. Snell, Jamie Lokier, Jan | Haas, Ian Hickson, Ingo Struck, J. Ross Nicoll, James H. Manger, | |||
| Algermissen, Jeff Hodges (for coming up with the term 'effective | James Lacey, James M. Snell, Jamie Lokier, Jan Algermissen, Jeff | |||
| Request-URI'), Jeff Walden, Jim Luther, Joe D. Williams, Joe | Hodges (for coming up with the term 'effective Request-URI'), Jeff | |||
| Gregorio, Joe Orton, John C. Klensin, John C. Mallery, John Cowan, | Walden, Jim Luther, Joe D. Williams, Joe Gregorio, Joe Orton, John C. | |||
| John Kemp, John Panzer, John Schneider, John Stracke, Jonas Sicking, | Klensin, John C. Mallery, John Cowan, John Kemp, John Panzer, John | |||
| Jonathan Billington, Jonathan Moore, Jonathan Rees, Jordi Ros, Joris | Schneider, John Stracke, Jonas Sicking, Jonathan Billington, Jonathan | |||
| Dobbelsteen, Josh Cohen, Julien Pierre, Jungshik Shin, Justin | Moore, Jonathan Rees, Jordi Ros, Joris Dobbelsteen, Josh Cohen, | |||
| Chapweske, Justin Erenkrantz, Justin James, Kalvinder Singh, Karl | Julien Pierre, Jungshik Shin, Justin Chapweske, Justin Erenkrantz, | |||
| Dubost, Keith Hoffman, Keith Moore, Koen Holtman, Konstantin | Justin James, Kalvinder Singh, Karl Dubost, Keith Hoffman, Keith | |||
| Voronkov, Kris Zyp, Lisa Dusseault, Maciej Stachowiak, Marc | Moore, Koen Holtman, Konstantin Voronkov, Kris Zyp, Lisa Dusseault, | |||
| Schneider, Marc Slemko, Mark Baker, Mark Pauley, Markus Lanthaler, | Maciej Stachowiak, Marc Schneider, Marc Slemko, Mark Baker, Mark | |||
| Martin J. Duerst, Martin Thomson, Matt Lynch, Matthew Cox, Max Clark, | Pauley, Mark Watson, Markus Isomaki, Markus Lanthaler, Martin J. | |||
| Michael Burrows, Michael Hausenblas, Mike Amundsen, Mike Belshe, Mike | Duerst, Martin Thomson, Matt Lynch, Matthew Cox, Max Clark, Michael | |||
| Kelly, Mike Schinkel, Miles Sabin, Mykyta Yevstifeyev, Nathan Rixham, | Burrows, Michael Hausenblas, Mike Amundsen, Mike Belshe, Mike Kelly, | |||
| Nicholas Shanks, Nico Williams, Nicolas Alvarez, Nicolas Mailhot, | Mike Schinkel, Miles Sabin, Murray S. Kucherawy, Mykyta Yevstifeyev, | |||
| Noah Slater, Pablo Castro, Pat Hayes, Patrick R. McManus, Paul E. | Nathan Rixham, Nicholas Shanks, Nico Williams, Nicolas Alvarez, | |||
| Nicolas Mailhot, Noah Slater, Pablo Castro, Pat Hayes, Patrick R. | ||||
| Jones, Paul Hoffman, Paul Marquess, Peter Saint-Andre, Peter Watkins, | McManus, Paul E. Jones, Paul Hoffman, Paul Marquess, Peter Lepeska, | |||
| Phil Archer, Phillip Hallam-Baker, Poul-Henning Kamp, Preethi | Peter Saint-Andre, Peter Watkins, Phil Archer, Phillip Hallam-Baker, | |||
| Natarajan, Ray Polk, Reto Bachmann-Gmuer, Richard Cyganiak, Robert | Poul-Henning Kamp, Preethi Natarajan, Ray Polk, Reto Bachmann-Gmuer, | |||
| Brewer, Robert Collins, Robert O'Callahan, Robert Olofsson, Robert | Richard Cyganiak, Robert Brewer, Robert Collins, Robert O'Callahan, | |||
| Sayre, Robert Siemer, Robert de Wilde, Roberto Javier Godoy, Ronny | Robert Olofsson, Robert Sayre, Robert Siemer, Robert de Wilde, | |||
| Widjaja, S. Mike Dierken, Salvatore Loreto, Sam Johnston, Sam Ruby, | Roberto Javier Godoy, Roberto Peon, Ronny Widjaja, S. Mike Dierken, | |||
| Scott Lawrence (for maintaining the original issues list), Sean B. | Salvatore Loreto, Sam Johnston, Sam Ruby, Scott Lawrence (for | |||
| Palmer, Shane McCarron, Stefan Eissing, Stefan Tilkov, Stefanos | maintaining the original issues list), Sean B. Palmer, Shane | |||
| Harhalakis, Stephane Bortzmeyer, Stephen Farrell, Stuart Williams, | McCarron, Stefan Eissing, Stefan Tilkov, Stefanos Harhalakis, | |||
| Subbu Allamaraju, Sylvain Hellegouarch, Tapan Divekar, Ted Hardie, | Stephane Bortzmeyer, Stephen Farrell, Stuart Williams, Subbu | |||
| Thomas Broyer, Thomas Nordin, Thomas Roessler, Tim Morgan, Tim Olsen, | Allamaraju, Sylvain Hellegouarch, Tapan Divekar, Ted Hardie, Thomas | |||
| Travis Snoozy, Tyler Close, Vincent Murphy, Wenbo Zhu, Werner | Broyer, Thomas Nordin, Thomas Roessler, Tim Bray, Tim Morgan, Tim | |||
| Baumann, Wilbur Streett, Wilfredo Sanchez Vega, William A. Rowe Jr., | Olsen, Tom Zhou, Travis Snoozy, Tyler Close, Vincent Murphy, Wenbo | |||
| William Chan, Willy Tarreau, Xiaoshu Wang, Yaron Goland, Yngve | Zhu, Werner Baumann, Wilbur Streett, Wilfredo Sanchez Vega, William | |||
| Nysaeter Pettersen, Yogesh Bang, Yutaka Oiwa, Zed A. Shaw, and Zhong | A. Rowe Jr., William Chan, Willy Tarreau, Xiaoshu Wang, Yaron Goland, | |||
| Yu. | Yngve Nysaeter Pettersen, Yogesh Bang, Yutaka Oiwa, Zed A. Shaw, and | |||
| Zhong Yu. | ||||
| 10. References | 10. References | |||
| 10.1. Normative References | 10.1. Normative References | |||
| [ISO-8859-1] International Organization for Standardization, | [ISO-8859-1] International Organization for Standardization, | |||
| "Information technology -- 8-bit single-byte coded | "Information technology -- 8-bit single-byte coded | |||
| graphic character sets -- Part 1: Latin alphabet No. | graphic character sets -- Part 1: Latin alphabet No. | |||
| 1", ISO/IEC 8859-1:1998, 1998. | 1", ISO/IEC 8859-1:1998, 1998. | |||
| [Part2] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed., | [Part2] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed., | |||
| "HTTP/1.1, part 2: Message Semantics", | "HTTP/1.1, part 2: Message Semantics", | |||
| draft-ietf-httpbis-p2-semantics-19 (work in progress), | draft-ietf-httpbis-p2-semantics-latest (work in | |||
| March 2012. | progress), May 2012. | |||
| [Part3] Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed., | ||||
| "HTTP/1.1, part 3: Message Payload and Content | ||||
| Negotiation", draft-ietf-httpbis-p3-payload-19 (work in | ||||
| progress), March 2012. | ||||
| [Part6] Fielding, R., Ed., Lafon, Y., Ed., Nottingham, M., Ed., | [Part6] Fielding, R., Ed., Lafon, Y., Ed., Nottingham, M., Ed., | |||
| and J. Reschke, Ed., "HTTP/1.1, part 6: Caching", | and J. Reschke, Ed., "HTTP/1.1, part 6: Caching", | |||
| draft-ietf-httpbis-p6-cache-19 (work in progress), | draft-ietf-httpbis-p6-cache-latest (work in progress), | |||
| March 2012. | May 2012. | |||
| [RFC1950] Deutsch, L. and J-L. Gailly, "ZLIB Compressed Data | [RFC1950] Deutsch, L. and J-L. Gailly, "ZLIB Compressed Data | |||
| Format Specification version 3.3", RFC 1950, May 1996. | Format Specification version 3.3", RFC 1950, May 1996. | |||
| [RFC1951] Deutsch, P., "DEFLATE Compressed Data Format | [RFC1951] Deutsch, P., "DEFLATE Compressed Data Format | |||
| Specification version 1.3", RFC 1951, May 1996. | Specification version 1.3", RFC 1951, May 1996. | |||
| [RFC1952] Deutsch, P., Gailly, J-L., Adler, M., Deutsch, L., and | [RFC1952] Deutsch, P., Gailly, J-L., Adler, M., Deutsch, L., and | |||
| G. Randers-Pehrson, "GZIP file format specification | G. Randers-Pehrson, "GZIP file format specification | |||
| version 4.3", RFC 1952, May 1996. | version 4.3", RFC 1952, May 1996. | |||
| skipping to change at page 73, line 25 | skipping to change at page 73, line 22 | |||
| to retry a sequence of requests as long it was idempotent. Remove | to retry a sequence of requests as long it was idempotent. Remove | |||
| requirements about when servers are allowed to close connections | requirements about when servers are allowed to close connections | |||
| prematurely. (Section 6.3.3) | prematurely. (Section 6.3.3) | |||
| Remove requirement to retry requests under certain cirumstances when | Remove requirement to retry requests under certain cirumstances when | |||
| the server prematurely closes the connection. (Section 6.4) | the server prematurely closes the connection. (Section 6.4) | |||
| Change ABNF productions for header fields to only define the field | Change ABNF productions for header fields to only define the field | |||
| value. | value. | |||
| Clarify exactly when close connection options must be sent. | Clarify exactly when close connection options have to be sent. | |||
| (Section 6.1) | (Section 6.1) | |||
| Define the semantics of the "Upgrade" header field in responses other | Define the semantics of the "Upgrade" header field in responses other | |||
| than 101 (this was incorporated from [RFC2817]). (Section 6.5) | than 101 (this was incorporated from [RFC2817]). (Section 6.5) | |||
| A.3. Changes from RFC 2817 | A.3. Changes from RFC 2817 | |||
| Registration of Upgrade tokens now requires IETF Review (Section 7.6) | Registration of Upgrade tokens now requires IETF Review (Section 7.6) | |||
| Appendix B. Collected ABNF | Appendix B. Collected ABNF | |||
| skipping to change at page 86, line 34 | skipping to change at page 86, line 34 | |||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/297>: "Retrying | o <http://tools.ietf.org/wg/httpbis/trac/ticket/297>: "Retrying | |||
| Requests" | Requests" | |||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/318>: "Closing the | o <http://tools.ietf.org/wg/httpbis/trac/ticket/318>: "Closing the | |||
| connection on server error" | connection on server error" | |||
| C.19. Since draft-ietf-httpbis-p1-messaging-17 | C.19. Since draft-ietf-httpbis-p1-messaging-17 | |||
| Closed issues: | Closed issues: | |||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/158>: "Proxy- | ||||
| Connection and Keep-Alive" | ||||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/166>: "Clarify 'User | o <http://tools.ietf.org/wg/httpbis/trac/ticket/166>: "Clarify 'User | |||
| Agent'" | Agent'" | |||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/300>: "Define non- | o <http://tools.ietf.org/wg/httpbis/trac/ticket/300>: "Define non- | |||
| final responses" | final responses" | |||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/323>: "intended | o <http://tools.ietf.org/wg/httpbis/trac/ticket/323>: "intended | |||
| maturity level vs normative references" | maturity level vs normative references" | |||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/324>: "Intermediary | o <http://tools.ietf.org/wg/httpbis/trac/ticket/324>: "Intermediary | |||
| rewriting of queries" | rewriting of queries" | |||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/158>: "Proxy- | ||||
| Connection and Keep-Alive" | ||||
| C.20. Since draft-ietf-httpbis-p1-messaging-18 | C.20. Since draft-ietf-httpbis-p1-messaging-18 | |||
| Closed issues: | Closed issues: | |||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/250>: "message-body | o <http://tools.ietf.org/wg/httpbis/trac/ticket/250>: "message-body | |||
| in CONNECT response" | in CONNECT response" | |||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/302>: "Misplaced | o <http://tools.ietf.org/wg/httpbis/trac/ticket/302>: "Misplaced | |||
| text on connection handling in p2" | text on connection handling in p2" | |||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/335>: "wording of | o <http://tools.ietf.org/wg/httpbis/trac/ticket/335>: "wording of | |||
| line folding rule" | line folding rule" | |||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/343>: "chunk- | o <http://tools.ietf.org/wg/httpbis/trac/ticket/343>: "chunk- | |||
| extensions" | extensions" | |||
| o <http://tools.ietf.org/wg/httpbis/trac/ticket/346>: "make IANA | o <http://tools.ietf.org/wg/httpbis/trac/ticket/346>: "make IANA | |||
| policy definitions consistent" | policy definitions consistent" | |||
| C.21. Since draft-ietf-httpbis-p1-messaging-19 | ||||
| None yet. | ||||
| Index | Index | |||
| A | A | |||
| absolute-form (of request-target) 41 | absolute-form (of request-target) 41 | |||
| accelerator 11 | accelerator 11 | |||
| application/http Media Type 60 | application/http Media Type 60 | |||
| asterisk-form (of request-target) 41 | asterisk-form (of request-target) 41 | |||
| authority-form (of request-target) 41 | authority-form (of request-target) 41 | |||
| B | B | |||
| End of changes. 33 change blocks. | ||||
| 94 lines changed or deleted | 95 lines changed or added | |||
This html diff was produced by rfcdiff 1.38. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||