draft-ietf-httpbis-p2-semantics-04.txt | draft-ietf-httpbis-p2-semantics-05.txt | |||
---|---|---|---|---|
Network Working Group R. Fielding, Ed. | Network Working Group R. Fielding, Ed. | |||
Internet-Draft Day Software | Internet-Draft Day Software | |||
Obsoletes: 2616 (if approved) J. Gettys | Obsoletes: 2616 (if approved) J. Gettys | |||
Updates: 2817 (if approved) One Laptop per Child | Updates: 2817 (if approved) One Laptop per Child | |||
Intended status: Standards Track J. Mogul | Intended status: Standards Track J. Mogul | |||
Expires: March 2, 2009 HP | Expires: May 20, 2009 HP | |||
H. Frystyk | H. Frystyk | |||
Microsoft | Microsoft | |||
L. Masinter | L. Masinter | |||
Adobe Systems | Adobe Systems | |||
P. Leach | P. Leach | |||
Microsoft | Microsoft | |||
T. Berners-Lee | T. Berners-Lee | |||
W3C/MIT | W3C/MIT | |||
Y. Lafon, Ed. | Y. Lafon, Ed. | |||
W3C | W3C | |||
J. Reschke, Ed. | J. Reschke, Ed. | |||
greenbytes | greenbytes | |||
August 29, 2008 | November 16, 2008 | |||
HTTP/1.1, part 2: Message Semantics | HTTP/1.1, part 2: Message Semantics | |||
draft-ietf-httpbis-p2-semantics-04 | draft-ietf-httpbis-p2-semantics-05 | |||
Status of this Memo | Status of this Memo | |||
By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
skipping to change at page 1, line 49 | skipping to change at page 1, line 49 | |||
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." | |||
The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
This Internet-Draft will expire on March 2, 2009. | This Internet-Draft will expire on May 20, 2009. | |||
Abstract | Abstract | |||
The Hypertext Transfer Protocol (HTTP) is an application-level | The Hypertext Transfer Protocol (HTTP) is an application-level | |||
protocol for distributed, collaborative, hypermedia information | protocol for distributed, collaborative, hypermedia 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 2 of the | information initiative since 1990. This document is Part 2 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. Part 2 defines | "HTTP/1.1" and, taken together, obsoletes RFC 2616. Part 2 defines | |||
the semantics of HTTP messages as expressed by request methods, | the semantics of HTTP messages as expressed by request methods, | |||
request-header fields, response status codes, and response-header | request-header fields, response status codes, and response-header | |||
fields. | fields. | |||
Editorial Note (To be removed by RFC Editor) | Editorial Note (To be removed by RFC Editor) | |||
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). The current issues list is | group mailing list (ietf-http-wg@w3.org). The current issues list is | |||
at <http://www.tools.ietf.org/wg/httpbis/trac/report/11> and related | at <http://tools.ietf.org/wg/httpbis/trac/report/11> and related | |||
documents (including fancy diffs) can be found at | documents (including fancy diffs) can be found at | |||
<http://www.tools.ietf.org/wg/httpbis/>. | <http://tools.ietf.org/wg/httpbis/>. | |||
The changes in this draft are summarized in Appendix B.4. | The changes in this draft are summarized in Appendix B.6. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
1.1. Requirements . . . . . . . . . . . . . . . . . . . . . . . 6 | 1.1. Requirements . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
2. Notational Conventions and Generic Grammar . . . . . . . . . . 6 | 2. Notational Conventions and Generic Grammar . . . . . . . . . . 6 | |||
3. Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 3. Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
3.1. Method Registry . . . . . . . . . . . . . . . . . . . . . 8 | 3.1. Method Registry . . . . . . . . . . . . . . . . . . . . . 8 | |||
4. Request Header Fields . . . . . . . . . . . . . . . . . . . . 9 | 4. Request Header Fields . . . . . . . . . . . . . . . . . . . . 9 | |||
5. Status Code and Reason Phrase . . . . . . . . . . . . . . . . 9 | 5. Status Code and Reason Phrase . . . . . . . . . . . . . . . . 10 | |||
5.1. Status Code Registry . . . . . . . . . . . . . . . . . . . 12 | 5.1. Status Code Registry . . . . . . . . . . . . . . . . . . . 12 | |||
6. Response Header Fields . . . . . . . . . . . . . . . . . . . . 12 | 6. Response Header Fields . . . . . . . . . . . . . . . . . . . . 12 | |||
7. Entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 7. Entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
8. Method Definitions . . . . . . . . . . . . . . . . . . . . . . 13 | 8. Method Definitions . . . . . . . . . . . . . . . . . . . . . . 13 | |||
8.1. Safe and Idempotent Methods . . . . . . . . . . . . . . . 13 | 8.1. Safe and Idempotent Methods . . . . . . . . . . . . . . . 13 | |||
8.1.1. Safe Methods . . . . . . . . . . . . . . . . . . . . . 13 | 8.1.1. Safe Methods . . . . . . . . . . . . . . . . . . . . . 13 | |||
8.1.2. Idempotent Methods . . . . . . . . . . . . . . . . . . 14 | 8.1.2. Idempotent Methods . . . . . . . . . . . . . . . . . . 14 | |||
8.2. OPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 8.2. OPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
8.3. GET . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 8.3. GET . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
8.4. HEAD . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 8.4. HEAD . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
skipping to change at page 5, line 11 | skipping to change at page 5, line 11 | |||
Appendix A. Compatibility with Previous Versions . . . . . . . . 42 | Appendix A. Compatibility with Previous Versions . . . . . . . . 42 | |||
A.1. Changes from RFC 2068 . . . . . . . . . . . . . . . . . . 42 | A.1. Changes from RFC 2068 . . . . . . . . . . . . . . . . . . 42 | |||
A.2. Changes from RFC 2616 . . . . . . . . . . . . . . . . . . 43 | A.2. Changes from RFC 2616 . . . . . . . . . . . . . . . . . . 43 | |||
Appendix B. Change Log (to be removed by RFC Editor before | Appendix B. Change Log (to be removed by RFC Editor before | |||
publication) . . . . . . . . . . . . . . . . . . . . 44 | publication) . . . . . . . . . . . . . . . . . . . . 44 | |||
B.1. Since RFC2616 . . . . . . . . . . . . . . . . . . . . . . 44 | B.1. Since RFC2616 . . . . . . . . . . . . . . . . . . . . . . 44 | |||
B.2. Since draft-ietf-httpbis-p2-semantics-00 . . . . . . . . . 44 | B.2. Since draft-ietf-httpbis-p2-semantics-00 . . . . . . . . . 44 | |||
B.3. Since draft-ietf-httpbis-p2-semantics-01 . . . . . . . . . 45 | B.3. Since draft-ietf-httpbis-p2-semantics-01 . . . . . . . . . 45 | |||
B.4. Since draft-ietf-httpbis-p2-semantics-02 . . . . . . . . . 45 | B.4. Since draft-ietf-httpbis-p2-semantics-02 . . . . . . . . . 45 | |||
B.5. Since draft-ietf-httpbis-p2-semantics-03 . . . . . . . . . 46 | B.5. Since draft-ietf-httpbis-p2-semantics-03 . . . . . . . . . 46 | |||
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 | B.6. Since draft-ietf-httpbis-p2-semantics-04 . . . . . . . . . 46 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 50 | Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 51 | ||||
Intellectual Property and Copyright Statements . . . . . . . . . . 54 | Intellectual Property and Copyright Statements . . . . . . . . . . 54 | |||
1. Introduction | 1. Introduction | |||
This document defines HTTP/1.1 request and response semantics. Each | This document defines HTTP/1.1 request and response semantics. Each | |||
HTTP message, as defined in [Part1], is in the form of either a | HTTP message, as defined in [Part1], is in the form of either a | |||
request or a response. An HTTP server listens on a connection for | request or a response. An HTTP server listens on a connection for | |||
HTTP requests and responds to each request, in the order received on | HTTP requests and responds to each request, in the order received on | |||
that connection, with one or more HTTP response messages. This | that connection, with one or more HTTP response messages. This | |||
document defines the commonly agreed upon semantics of the HTTP | document defines the commonly agreed upon semantics of the HTTP | |||
skipping to change at page 6, line 46 | skipping to change at page 6, line 46 | |||
REQUIRED level and all the SHOULD level requirements for its | REQUIRED level and all the SHOULD level requirements for its | |||
protocols is said to be "unconditionally compliant"; one that | protocols is said to be "unconditionally compliant"; one that | |||
satisfies all the MUST level requirements but not all the SHOULD | satisfies all the MUST level requirements but not all the SHOULD | |||
level requirements for its protocols is said to be "conditionally | level requirements for its protocols is said to be "conditionally | |||
compliant." | compliant." | |||
2. Notational Conventions and Generic Grammar | 2. Notational Conventions and Generic Grammar | |||
This specification uses the ABNF syntax defined in Section 2.1 of | This specification uses the ABNF syntax defined in Section 2.1 of | |||
[Part1] and the core rules defined in Section 2.2 of [Part1]: | [Part1] and the core rules defined in Section 2.2 of [Part1]: | |||
[[abnf.dep: ABNF syntax and basic rules will be adopted from RFC | ||||
5234, see <http://tools.ietf.org/wg/httpbis/trac/ticket/36>.]] | ||||
DIGIT = <DIGIT, defined in [Part1], Section 2.2> | DIGIT = <DIGIT, defined in [Part1], Section 2.2> | |||
comment = <comment, defined in [Part1], Section 2.2> | comment = <comment, defined in [Part1], Section 2.2> | |||
quoted-string = <quoted-string, defined in [Part1], Section 2.2> | quoted-string = <quoted-string, defined in [Part1], Section 2.2> | |||
token = <token, defined in [Part1], Section 2.2> | token = <token, defined in [Part1], Section 2.2> | |||
OWS = <OWS, defined in [Part1], Section 2.2> | ||||
RWS = <RWS, defined in [Part1], Section 2.2> | ||||
The ABNF rules below are defined in other parts: | The ABNF rules below are defined in other parts: | |||
absoluteURI = <absoluteURI, defined in [Part1], Section 3.2.1> | absolute-URI = <absolute-URI, defined in [Part1], Section 3.2> | |||
fragment = <fragment, defined in [Part1], Section 3.2.1> | fragment = <fragment, defined in [Part1], Section 3.2> | |||
Host = <Host, defined in [Part1], Section 8.4> | Host = <Host, defined in [Part1], Section 3.2> | |||
HTTP-date = <HTTP-date, defined in [Part1], Section 3.3.1> | HTTP-date = <HTTP-date, defined in [Part1], Section 3.3.1> | |||
product = <product, defined in [Part1], Section 3.5> | product = <product, defined in [Part1], Section 3.5> | |||
relativeURI = <relativeURI, defined in [Part1], Section 3.2.1> | relativeURI = <relativeURI, defined in [Part1], Section 3.2> | |||
TE = <TE, defined in [Part1], Section 8.8> | TE = <TE, defined in [Part1], Section 8.8> | |||
Accept = <Accept, defined in [Part3], Section 6.1> | Accept = <Accept, defined in [Part3], Section 6.1> | |||
Accept-Charset = | Accept-Charset = | |||
<Accept-Charset, defined in [Part3], Section 6.2> | <Accept-Charset, defined in [Part3], Section 6.2> | |||
Accept-Encoding = | Accept-Encoding = | |||
<Accept-Encoding, defined in [Part3], Section 6.3> | <Accept-Encoding, defined in [Part3], Section 6.3> | |||
Accept-Language = | Accept-Language = | |||
<Accept-Language, defined in [Part3], Section 6.4> | <Accept-Language, defined in [Part3], Section 6.4> | |||
skipping to change at page 8, line 12 | skipping to change at page 8, line 18 | |||
<Proxy-Authorization, defined in [Part7], Section 4.3> | <Proxy-Authorization, defined in [Part7], Section 4.3> | |||
WWW-Authenticate = | WWW-Authenticate = | |||
<WWW-Authenticate, defined in [Part7], Section 4.4> | <WWW-Authenticate, defined in [Part7], Section 4.4> | |||
3. Method | 3. Method | |||
The Method token indicates the method to be performed on the resource | The Method token indicates the method to be performed on the resource | |||
identified by the Request-URI. The method is case-sensitive. | identified by the Request-URI. The method is case-sensitive. | |||
Method = %x4F.50.54.49.4F.4E.53 ; "OPTIONS", Section 8.2 | Method = %x4F.50.54.49.4F.4E.53 ; "OPTIONS", Section 8.2 | |||
| %x47.45.54 ; "GET", Section 8.3 | / %x47.45.54 ; "GET", Section 8.3 | |||
| %x48.45.41.44 ; "HEAD", Section 8.4 | / %x48.45.41.44 ; "HEAD", Section 8.4 | |||
| %x50.4F.53.54 ; "POST", Section 8.5 | / %x50.4F.53.54 ; "POST", Section 8.5 | |||
| %x50.55.54 ; "PUT", Section 8.6 | / %x50.55.54 ; "PUT", Section 8.6 | |||
| %x44.45.4C.45.54.45 ; "DELETE", Section 8.7 | / %x44.45.4C.45.54.45 ; "DELETE", Section 8.7 | |||
| %x54.52.41.43.45 ; "TRACE", Section 8.8 | / %x54.52.41.43.45 ; "TRACE", Section 8.8 | |||
| %x43.4F.4E.4E.45.43.54 ; "CONNECT", Section 8.9 | / %x43.4F.4E.4E.45.43.54 ; "CONNECT", Section 8.9 | |||
| extension-method | / extension-method | |||
extension-method = token | extension-method = token | |||
The list of methods allowed by a resource can be specified in an | The list of methods allowed by a resource can be specified in an | |||
Allow header field (Section 10.1). The return code of the response | Allow header field (Section 10.1). The return code of the response | |||
always notifies the client whether a method is currently allowed on a | always notifies the client whether a method is currently allowed on a | |||
resource, since the set of allowed methods can change dynamically. | resource, since the set of allowed methods can change dynamically. | |||
An origin server SHOULD return the status code 405 (Method Not | An origin server SHOULD return the status code 405 (Method Not | |||
Allowed) if the method is known by the origin server but not allowed | Allowed) if the method is known by the origin server but not allowed | |||
for the requested resource, and 501 (Not Implemented) if the method | for the requested resource, and 501 (Not Implemented) if the method | |||
is unrecognized or not implemented by the origin server. The methods | is unrecognized or not implemented by the origin server. The methods | |||
skipping to change at page 9, line 18 | skipping to change at page 9, line 25 | |||
4. Request Header Fields | 4. Request Header Fields | |||
The request-header fields allow the client to pass additional | The request-header fields allow the client to pass additional | |||
information about the request, and about the client itself, to the | information about the request, and about the client itself, to the | |||
server. These fields act as request modifiers, with semantics | server. These fields act as request modifiers, with semantics | |||
equivalent to the parameters on a programming language method | equivalent to the parameters on a programming language method | |||
invocation. | invocation. | |||
request-header = Accept ; [Part3], Section 6.1 | request-header = Accept ; [Part3], Section 6.1 | |||
| Accept-Charset ; [Part3], Section 6.2 | / Accept-Charset ; [Part3], Section 6.2 | |||
| Accept-Encoding ; [Part3], Section 6.3 | / Accept-Encoding ; [Part3], Section 6.3 | |||
| Accept-Language ; [Part3], Section 6.4 | / Accept-Language ; [Part3], Section 6.4 | |||
| Authorization ; [Part7], Section 4.1 | / Authorization ; [Part7], Section 4.1 | |||
| Expect ; Section 10.2 | / Expect ; Section 10.2 | |||
| From ; Section 10.3 | / From ; Section 10.3 | |||
| Host ; [Part1], Section 8.4 | / Host ; [Part1], Section 8.4 | |||
| If-Match ; [Part4], Section 7.2 | / If-Match ; [Part4], Section 7.2 | |||
| If-Modified-Since ; [Part4], Section 7.3 | / If-Modified-Since ; [Part4], Section 7.3 | |||
| If-None-Match ; [Part4], Section 7.4 | / If-None-Match ; [Part4], Section 7.4 | |||
| If-Range ; [Part5], Section 6.3 | / If-Range ; [Part5], Section 6.3 | |||
| If-Unmodified-Since ; [Part4], Section 7.5 | / If-Unmodified-Since ; [Part4], Section 7.5 | |||
| Max-Forwards ; Section 10.5 | / Max-Forwards ; Section 10.5 | |||
| Proxy-Authorization ; [Part7], Section 4.3 | / Proxy-Authorization ; [Part7], Section 4.3 | |||
| Range ; [Part5], Section 6.4 | / Range ; [Part5], Section 6.4 | |||
| Referer ; Section 10.6 | / Referer ; Section 10.6 | |||
| TE ; [Part1], Section 8.8 | / TE ; [Part1], Section 8.8 | |||
| User-Agent ; Section 10.9 | / User-Agent ; Section 10.9 | |||
Request-header field names can be extended reliably only in | Request-header field names can be extended reliably only in | |||
combination with a change in the protocol version. However, new or | combination with a change in the protocol version. However, new or | |||
experimental header fields MAY be given the semantics of request- | experimental header fields MAY be given the semantics of request- | |||
header fields if all parties in the communication recognize them to | header fields if all parties in the communication recognize them to | |||
be request-header fields. Unrecognized header fields are treated as | be request-header fields. Unrecognized header fields are treated as | |||
entity-header fields. | entity-header fields. | |||
5. Status Code and Reason Phrase | 5. Status Code and Reason Phrase | |||
skipping to change at page 11, line 7 | skipping to change at page 11, line 7 | |||
or display the Reason-Phrase. | or display the Reason-Phrase. | |||
The individual values of the numeric status codes defined for | The individual values of the numeric status codes defined for | |||
HTTP/1.1, and an example set of corresponding Reason-Phrase's, are | HTTP/1.1, and an example set of corresponding Reason-Phrase's, are | |||
presented below. The reason phrases listed here are only | presented below. The reason phrases listed here are only | |||
recommendations -- they MAY be replaced by local equivalents without | recommendations -- they MAY be replaced by local equivalents without | |||
affecting the protocol. | affecting the protocol. | |||
Status-Code = | Status-Code = | |||
"100" ; Section 9.1.1: Continue | "100" ; Section 9.1.1: Continue | |||
| "101" ; Section 9.1.2: Switching Protocols | / "101" ; Section 9.1.2: Switching Protocols | |||
| "200" ; Section 9.2.1: OK | / "200" ; Section 9.2.1: OK | |||
| "201" ; Section 9.2.2: Created | / "201" ; Section 9.2.2: Created | |||
| "202" ; Section 9.2.3: Accepted | / "202" ; Section 9.2.3: Accepted | |||
| "203" ; Section 9.2.4: Non-Authoritative Information | / "203" ; Section 9.2.4: Non-Authoritative Information | |||
| "204" ; Section 9.2.5: No Content | / "204" ; Section 9.2.5: No Content | |||
| "205" ; Section 9.2.6: Reset Content | / "205" ; Section 9.2.6: Reset Content | |||
| "206" ; Section 9.2.7: Partial Content | / "206" ; Section 9.2.7: Partial Content | |||
| "300" ; Section 9.3.1: Multiple Choices | / "300" ; Section 9.3.1: Multiple Choices | |||
| "301" ; Section 9.3.2: Moved Permanently | / "301" ; Section 9.3.2: Moved Permanently | |||
| "302" ; Section 9.3.3: Found | / "302" ; Section 9.3.3: Found | |||
| "303" ; Section 9.3.4: See Other | / "303" ; Section 9.3.4: See Other | |||
| "304" ; Section 9.3.5: Not Modified | / "304" ; Section 9.3.5: Not Modified | |||
| "305" ; Section 9.3.6: Use Proxy | / "305" ; Section 9.3.6: Use Proxy | |||
| "307" ; Section 9.3.8: Temporary Redirect | / "307" ; Section 9.3.8: Temporary Redirect | |||
| "400" ; Section 9.4.1: Bad Request | / "400" ; Section 9.4.1: Bad Request | |||
| "401" ; Section 9.4.2: Unauthorized | / "401" ; Section 9.4.2: Unauthorized | |||
| "402" ; Section 9.4.3: Payment Required | / "402" ; Section 9.4.3: Payment Required | |||
| "403" ; Section 9.4.4: Forbidden | / "403" ; Section 9.4.4: Forbidden | |||
| "404" ; Section 9.4.5: Not Found | / "404" ; Section 9.4.5: Not Found | |||
| "405" ; Section 9.4.6: Method Not Allowed | / "405" ; Section 9.4.6: Method Not Allowed | |||
| "406" ; Section 9.4.7: Not Acceptable | / "406" ; Section 9.4.7: Not Acceptable | |||
| "407" ; Section 9.4.8: Proxy Authentication Required | / "407" ; Section 9.4.8: Proxy Authentication Required | |||
| "408" ; Section 9.4.9: Request Time-out | / "408" ; Section 9.4.9: Request Time-out | |||
| "409" ; Section 9.4.10: Conflict | / "409" ; Section 9.4.10: Conflict | |||
| "410" ; Section 9.4.11: Gone | / "410" ; Section 9.4.11: Gone | |||
| "411" ; Section 9.4.12: Length Required | / "411" ; Section 9.4.12: Length Required | |||
| "412" ; Section 9.4.13: Precondition Failed | / "412" ; Section 9.4.13: Precondition Failed | |||
| "413" ; Section 9.4.14: Request Entity Too Large | / "413" ; Section 9.4.14: Request Entity Too Large | |||
| "414" ; Section 9.4.15: Request-URI Too Large | / "414" ; Section 9.4.15: Request-URI Too Large | |||
| "415" ; Section 9.4.16: Unsupported Media Type | / "415" ; Section 9.4.16: Unsupported Media Type | |||
| "416" ; Section 9.4.17: Requested range not satisfiable | / "416" ; Section 9.4.17: Requested range not satisfiable | |||
| "417" ; Section 9.4.18: Expectation Failed | / "417" ; Section 9.4.18: Expectation Failed | |||
| "500" ; Section 9.5.1: Internal Server Error | / "500" ; Section 9.5.1: Internal Server Error | |||
| "501" ; Section 9.5.2: Not Implemented | / "501" ; Section 9.5.2: Not Implemented | |||
| "502" ; Section 9.5.3: Bad Gateway | / "502" ; Section 9.5.3: Bad Gateway | |||
| "503" ; Section 9.5.4: Service Unavailable | / "503" ; Section 9.5.4: Service Unavailable | |||
| "504" ; Section 9.5.5: Gateway Time-out | / "504" ; Section 9.5.5: Gateway Time-out | |||
| "505" ; Section 9.5.6: HTTP Version not supported | / "505" ; Section 9.5.6: HTTP Version not supported | |||
| extension-code | / extension-code | |||
extension-code = 3DIGIT | extension-code = 3DIGIT | |||
Reason-Phrase = *<TEXT, excluding CR, LF> | Reason-Phrase = *<TEXT, excluding CR, LF> | |||
HTTP status codes are extensible. HTTP applications are not required | HTTP status codes are extensible. HTTP applications are not required | |||
to understand the meaning of all registered status codes, though such | to understand the meaning of all registered status codes, though such | |||
understanding is obviously desirable. However, applications MUST | understanding is obviously desirable. However, applications MUST | |||
understand the class of any status code, as indicated by the first | understand the class of any status code, as indicated by the first | |||
digit, and treat any unrecognized response as being equivalent to the | digit, and treat any unrecognized response as being equivalent to the | |||
x00 status code of that class, with the exception that an | x00 status code of that class, with the exception that an | |||
skipping to change at page 12, line 37 | skipping to change at page 12, line 37 | |||
<http://www.iana.org/assignments/http-status-codes>. | <http://www.iana.org/assignments/http-status-codes>. | |||
6. Response Header Fields | 6. Response Header Fields | |||
The response-header fields allow the server to pass additional | The response-header fields allow the server to pass additional | |||
information about the response which cannot be placed in the Status- | information about the response which cannot be placed in the Status- | |||
Line. These header fields give information about the server and | Line. These header fields give information about the server and | |||
about further access to the resource identified by the Request-URI. | about further access to the resource identified by the Request-URI. | |||
response-header = Accept-Ranges ; [Part5], Section 6.1 | response-header = Accept-Ranges ; [Part5], Section 6.1 | |||
| Age ; [Part6], Section 16.1 | / Age ; [Part6], Section 16.1 | |||
| Allow ; Section 10.1 | / Allow ; Section 10.1 | |||
| ETag ; [Part4], Section 7.1 | / ETag ; [Part4], Section 7.1 | |||
| Location ; Section 10.4 | / Location ; Section 10.4 | |||
| Proxy-Authenticate ; [Part7], Section 4.2 | / Proxy-Authenticate ; [Part7], Section 4.2 | |||
| Retry-After ; Section 10.7 | / Retry-After ; Section 10.7 | |||
| Server ; Section 10.8 | / Server ; Section 10.8 | |||
| Vary ; [Part6], Section 16.5 | / Vary ; [Part6], Section 16.5 | |||
| WWW-Authenticate ; [Part7], Section 4.4 | / WWW-Authenticate ; [Part7], Section 4.4 | |||
Response-header field names can be extended reliably only in | Response-header field names can be extended reliably only in | |||
combination with a change in the protocol version. However, new or | combination with a change in the protocol version. However, new or | |||
experimental header fields MAY be given the semantics of response- | experimental header fields MAY be given the semantics of response- | |||
header fields if all parties in the communication recognize them to | header fields if all parties in the communication recognize them to | |||
be response-header fields. Unrecognized header fields are treated as | be response-header fields. Unrecognized header fields are treated as | |||
entity-header fields. | entity-header fields. | |||
7. Entity | 7. Entity | |||
skipping to change at page 15, line 19 | skipping to change at page 15, line 19 | |||
this specification. The response body, if any, SHOULD also include | this specification. The response body, if any, SHOULD also include | |||
information about the communication options. The format for such a | information about the communication options. The format for such a | |||
body is not defined by this specification, but might be defined by | body is not defined by this specification, but might be defined by | |||
future extensions to HTTP. Content negotiation MAY be used to select | future extensions to HTTP. Content negotiation MAY be used to select | |||
the appropriate response format. If no response body is included, | the appropriate response format. If no response body is included, | |||
the response MUST include a Content-Length field with a field-value | the response MUST include a Content-Length field with a field-value | |||
of "0". | of "0". | |||
The Max-Forwards request-header field MAY be used to target a | The Max-Forwards request-header field MAY be used to target a | |||
specific proxy in the request chain. When a proxy receives an | specific proxy in the request chain. When a proxy receives an | |||
OPTIONS request on an absoluteURI for which request forwarding is | OPTIONS request on an absolute-URI for which request forwarding is | |||
permitted, the proxy MUST check for a Max-Forwards field. If the | permitted, the proxy MUST check for a Max-Forwards field. If the | |||
Max-Forwards field-value is zero ("0"), the proxy MUST NOT forward | Max-Forwards field-value is zero ("0"), the proxy MUST NOT forward | |||
the message; instead, the proxy SHOULD respond with its own | the message; instead, the proxy SHOULD respond with its own | |||
communication options. If the Max-Forwards field-value is an integer | communication options. If the Max-Forwards field-value is an integer | |||
greater than zero, the proxy MUST decrement the field-value when it | greater than zero, the proxy MUST decrement the field-value when it | |||
forwards the request. If no Max-Forwards field is present in the | forwards the request. If no Max-Forwards field is present in the | |||
request, then the forwarded request MUST NOT include a Max-Forwards | request, then the forwarded request MUST NOT include a Max-Forwards | |||
field. | field. | |||
8.3. GET | 8.3. GET | |||
skipping to change at page 17, line 32 | skipping to change at page 17, line 32 | |||
Request-URI does not point to an existing resource, and that URI is | Request-URI does not point to an existing resource, and that URI is | |||
capable of being defined as a new resource by the requesting user | capable of being defined as a new resource by the requesting user | |||
agent, the origin server can create the resource with that URI. If a | agent, the origin server can create the resource with that URI. If a | |||
new resource is created at the Request-URI, the origin server MUST | new resource is created at the Request-URI, the origin server MUST | |||
inform the user agent via the 201 (Created) response. If an existing | inform the user agent via the 201 (Created) response. If an existing | |||
resource is modified, either the 200 (OK) or 204 (No Content) | resource is modified, either the 200 (OK) or 204 (No Content) | |||
response codes SHOULD be sent to indicate successful completion of | response codes SHOULD be sent to indicate successful completion of | |||
the request. If the resource could not be created or modified with | the request. If the resource could not be created or modified with | |||
the Request-URI, an appropriate error response SHOULD be given that | the Request-URI, an appropriate error response SHOULD be given that | |||
reflects the nature of the problem. The recipient of the entity MUST | reflects the nature of the problem. The recipient of the entity MUST | |||
NOT ignore any Content-* (e.g. Content-Range) headers that it does | NOT ignore any Content-* headers (headers starting with the prefix | |||
not understand or implement and MUST return a 501 (Not Implemented) | 'Content-') that it does not understand or implement and MUST return | |||
response in such cases. | a 501 (Not Implemented) response in such cases. | |||
If the request passes through a cache and the Request-URI identifies | If the request passes through a cache and the Request-URI identifies | |||
one or more currently cached entities, those entries SHOULD be | one or more currently cached entities, those entries SHOULD be | |||
treated as stale. Responses to this method are not cacheable. | treated as stale. Responses to this method are not cacheable. | |||
The fundamental difference between the POST and PUT requests is | The fundamental difference between the POST and PUT requests is | |||
reflected in the different meaning of the Request-URI. The URI in a | reflected in the different meaning of the Request-URI. The URI in a | |||
POST request identifies the resource that will handle the enclosed | POST request identifies the resource that will handle the enclosed | |||
entity. That resource might be a data-accepting process, a gateway | entity. That resource might be a data-accepting process, a gateway | |||
to some other protocol, or a separate entity that accepts | to some other protocol, or a separate entity that accepts | |||
skipping to change at page 31, line 26 | skipping to change at page 31, line 26 | |||
This section defines the syntax and semantics of HTTP/1.1 header | This section defines the syntax and semantics of HTTP/1.1 header | |||
fields related to request and response semantics. | fields related to request and response semantics. | |||
For entity-header fields, both sender and recipient refer to either | For entity-header fields, both sender and recipient refer to either | |||
the client or the server, depending on who sends and who receives the | the client or the server, depending on who sends and who receives the | |||
entity. | entity. | |||
10.1. Allow | 10.1. Allow | |||
The Allow response-header field lists the set of methods advertised | The response-header field "Allow" lists the set of methods advertised | |||
as supported by the resource identified by the Request-URI. The | as supported by the resource identified by the Request-URI. The | |||
purpose of this field is strictly to inform the recipient of valid | purpose of this field is strictly to inform the recipient of valid | |||
methods associated with the resource. An Allow header field MUST be | methods associated with the resource. An Allow header field MUST be | |||
present in a 405 (Method Not Allowed) response. | present in a 405 (Method Not Allowed) response. | |||
Allow = "Allow" ":" #Method | Allow = "Allow" ":" OWS Allow-v | |||
Allow-v = #Method | ||||
Example of use: | Example of use: | |||
Allow: GET, HEAD, PUT | Allow: GET, HEAD, PUT | |||
The actual set of allowed methods is defined by the origin server at | The actual set of allowed methods is defined by the origin server at | |||
the time of each request. | the time of each request. | |||
A proxy MUST NOT modify the Allow header field even if it does not | A proxy MUST NOT modify the Allow header field even if it does not | |||
understand all the methods specified, since the user agent might have | understand all the methods specified, since the user agent might have | |||
other means of communicating with the origin server. | other means of communicating with the origin server. | |||
10.2. Expect | 10.2. Expect | |||
The Expect request-header field is used to indicate that particular | The request-header field "Expect" is used to indicate that particular | |||
server behaviors are required by the client. | server behaviors are required by the client. | |||
Expect = "Expect" ":" 1#expectation | Expect = "Expect" ":" OWS Expect-v | |||
Expect-v = 1#expectation | ||||
expectation = "100-continue" | expectation-extension | expectation = "100-continue" / expectation-extension | |||
expectation-extension = token [ "=" ( token | quoted-string ) | expectation-extension = token [ "=" ( token / quoted-string ) | |||
*expect-params ] | *expect-params ] | |||
expect-params = ";" token [ "=" ( token | quoted-string ) ] | expect-params = ";" token [ "=" ( token / quoted-string ) ] | |||
A server that does not understand or is unable to comply with any of | A server that does not understand or is unable to comply with any of | |||
the expectation values in the Expect field of a request MUST respond | the expectation values in the Expect field of a request MUST respond | |||
with appropriate error status. The server MUST respond with a 417 | with appropriate error status. The server MUST respond with a 417 | |||
(Expectation Failed) status if any of the expectations cannot be met | (Expectation Failed) status if any of the expectations cannot be met | |||
or, if there are other problems with the request, some other 4xx | or, if there are other problems with the request, some other 4xx | |||
status. | status. | |||
This header field is defined with extensible syntax to allow for | This header field is defined with extensible syntax to allow for | |||
future extensions. If a server receives a request containing an | future extensions. If a server receives a request containing an | |||
skipping to change at page 32, line 42 | skipping to change at page 32, line 43 | |||
request is forwarded. | request is forwarded. | |||
Many older HTTP/1.0 and HTTP/1.1 applications do not understand the | Many older HTTP/1.0 and HTTP/1.1 applications do not understand the | |||
Expect header. | Expect header. | |||
See Section 7.2.3 of [Part1] for the use of the 100 (Continue) | See Section 7.2.3 of [Part1] for the use of the 100 (Continue) | |||
status. | status. | |||
10.3. From | 10.3. From | |||
The From request-header field, if given, SHOULD contain an Internet | The request-header field "From", if given, SHOULD contain an Internet | |||
e-mail address for the human user who controls the requesting user | e-mail address for the human user who controls the requesting user | |||
agent. The address SHOULD be machine-usable, as defined by "mailbox" | agent. The address SHOULD be machine-usable, as defined by "mailbox" | |||
in Section 3.4 of [RFC2822]: | in Section 3.4 of [RFC5322]: | |||
From = "From" ":" mailbox | ||||
mailbox = <mailbox, defined in [RFC2822], Section 3.4> | From = "From" ":" OWS From-v | |||
From-v = mailbox | ||||
mailbox = <mailbox, defined in [RFC5322], Section 3.4> | ||||
An example is: | An example is: | |||
From: webmaster@example.org | From: webmaster@example.org | |||
This header field MAY be used for logging purposes and as a means for | This header field MAY be used for logging purposes and as a means for | |||
identifying the source of invalid or unwanted requests. It SHOULD | identifying the source of invalid or unwanted requests. It SHOULD | |||
NOT be used as an insecure form of access protection. The | NOT be used as an insecure form of access protection. The | |||
interpretation of this field is that the request is being performed | interpretation of this field is that the request is being performed | |||
on behalf of the person given, who accepts responsibility for the | on behalf of the person given, who accepts responsibility for the | |||
method performed. In particular, robot agents SHOULD include this | method performed. In particular, robot agents SHOULD include this | |||
skipping to change at page 33, line 29 | skipping to change at page 33, line 30 | |||
used. | used. | |||
The client SHOULD NOT send the From header field without the user's | The client SHOULD NOT send the From header field without the user's | |||
approval, as it might conflict with the user's privacy interests or | approval, as it might conflict with the user's privacy interests or | |||
their site's security policy. It is strongly recommended that the | their site's security policy. It is strongly recommended that the | |||
user be able to disable, enable, and modify the value of this field | user be able to disable, enable, and modify the value of this field | |||
at any time prior to a request. | at any time prior to a request. | |||
10.4. Location | 10.4. Location | |||
The Location response-header field is used for the identification of | The response-header field "Location" is used for the identification | |||
a new resource or to redirect the recipient to a location other than | of a new resource or to redirect the recipient to a location other | |||
the Request-URI for completion of the request. For 201 (Created) | than the Request-URI for completion of the request. For 201 | |||
responses, the Location is that of the new resource which was created | (Created) responses, the Location is that of the new resource which | |||
by the request. For 3xx responses, the location SHOULD indicate the | was created by the request. For 3xx responses, the location SHOULD | |||
server's preferred URI for automatic redirection to the resource. | indicate the server's preferred URI for automatic redirection to the | |||
The field value consists of a single absolute URI. | resource. The field value consists of a single absolute URI. | |||
Location = "Location" ":" absoluteURI [ "#" fragment ] | Location = "Location" ":" OWS Location-v | |||
Location-v = absolute-URI [ "#" fragment ] | ||||
An example is: | An example is: | |||
Location: http://www.example.org/pub/WWW/People.html | Location: http://www.example.org/pub/WWW/People.html | |||
Note: The Content-Location header field (Section 6.7 of [Part3]) | Note: The Content-Location header field (Section 6.7 of [Part3]) | |||
differs from Location in that the Content-Location identifies the | differs from Location in that the Content-Location identifies the | |||
original location of the entity enclosed in the response. It is | original location of the entity enclosed in the response. It is | |||
therefore possible for a response to contain header fields for | therefore possible for a response to contain header fields for | |||
both Location and Content-Location. | both Location and Content-Location. | |||
skipping to change at page 34, line 16 | skipping to change at page 34, line 17 | |||
header specifies the URL for the entire created resource. | header specifies the URL for the entire created resource. | |||
o With a 300 Multiple Choices, since the choice decision is intended | o With a 300 Multiple Choices, since the choice decision is intended | |||
to be made on resource characteristics and not fragment | to be made on resource characteristics and not fragment | |||
characteristics. | characteristics. | |||
o With 305 Use Proxy. | o With 305 Use Proxy. | |||
10.5. Max-Forwards | 10.5. Max-Forwards | |||
The Max-Forwards request-header field provides a mechanism with the | The request-header "Max-Forwards" field provides a mechanism with the | |||
TRACE (Section 8.8) and OPTIONS (Section 8.2) methods to limit the | TRACE (Section 8.8) and OPTIONS (Section 8.2) methods to limit the | |||
number of proxies or gateways that can forward the request to the | number of proxies or gateways that can forward the request to the | |||
next inbound server. This can be useful when the client is | next inbound server. This can be useful when the client is | |||
attempting to trace a request chain which appears to be failing or | attempting to trace a request chain which appears to be failing or | |||
looping in mid-chain. | looping in mid-chain. | |||
Max-Forwards = "Max-Forwards" ":" 1*DIGIT | Max-Forwards = "Max-Forwards" ":" OWS Max-Forwards-v | |||
Max-Forwards-v = 1*DIGIT | ||||
The Max-Forwards value is a decimal integer indicating the remaining | The Max-Forwards value is a decimal integer indicating the remaining | |||
number of times this request message may be forwarded. | number of times this request message may be forwarded. | |||
Each proxy or gateway recipient of a TRACE or OPTIONS request | Each proxy or gateway recipient of a TRACE or OPTIONS request | |||
containing a Max-Forwards header field MUST check and update its | containing a Max-Forwards header field MUST check and update its | |||
value prior to forwarding the request. If the received value is zero | value prior to forwarding the request. If the received value is zero | |||
(0), the recipient MUST NOT forward the request; instead, it MUST | (0), the recipient MUST NOT forward the request; instead, it MUST | |||
respond as the final recipient. If the received Max-Forwards value | respond as the final recipient. If the received Max-Forwards value | |||
is greater than zero, then the forwarded message MUST contain an | is greater than zero, then the forwarded message MUST contain an | |||
updated Max-Forwards field with a value decremented by one (1). | updated Max-Forwards field with a value decremented by one (1). | |||
The Max-Forwards header field MAY be ignored for all other methods | The Max-Forwards header field MAY be ignored for all other methods | |||
defined by this specification and for any extension methods for which | defined by this specification and for any extension methods for which | |||
it is not explicitly referred to as part of that method definition. | it is not explicitly referred to as part of that method definition. | |||
10.6. Referer | 10.6. Referer | |||
The Referer[sic] request-header field allows the client to specify, | The request-header field "Referer" [sic] allows the client to | |||
for the server's benefit, the address (URI) of the resource from | specify, for the server's benefit, the address (URI) of the resource | |||
which the Request-URI was obtained (the "referrer", although the | from which the Request-URI was obtained (the "referrer", although the | |||
header field is misspelled.) The Referer request-header allows a | header field is misspelled.) The Referer request-header allows a | |||
server to generate lists of back-links to resources for interest, | server to generate lists of back-links to resources for interest, | |||
logging, optimized caching, etc. It also allows obsolete or mistyped | logging, optimized caching, etc. It also allows obsolete or mistyped | |||
links to be traced for maintenance. The Referer field MUST NOT be | links to be traced for maintenance. The Referer field MUST NOT be | |||
sent if the Request-URI was obtained from a source that does not have | sent if the Request-URI was obtained from a source that does not have | |||
its own URI, such as input from the user keyboard. | its own URI, such as input from the user keyboard. | |||
Referer = "Referer" ":" ( absoluteURI | relativeURI ) | Referer = "Referer" ":" OWS Referer-v | |||
Referer-v = absolute-URI / relativeURI | ||||
Example: | Example: | |||
Referer: http://www.example.org/hypertext/Overview.html | Referer: http://www.example.org/hypertext/Overview.html | |||
If the field value is a relative URI, it SHOULD be interpreted | If the field value is a relative URI, it SHOULD be interpreted | |||
relative to the Request-URI. The URI MUST NOT include a fragment. | relative to the Request-URI. The URI MUST NOT include a fragment. | |||
See Section 12.2 for security considerations. | See Section 12.2 for security considerations. | |||
10.7. Retry-After | 10.7. Retry-After | |||
The Retry-After response-header field can be used with a 503 (Service | The response-header "Retry-After" field can be used with a 503 | |||
Unavailable) response to indicate how long the service is expected to | (Service Unavailable) response to indicate how long the service is | |||
be unavailable to the requesting client. This field MAY also be used | expected to be unavailable to the requesting client. This field MAY | |||
with any 3xx (Redirection) response to indicate the minimum time the | also be used with any 3xx (Redirection) response to indicate the | |||
user-agent is asked wait before issuing the redirected request. The | minimum time the user-agent is asked wait before issuing the | |||
value of this field can be either an HTTP-date or an integer number | redirected request. The value of this field can be either an HTTP- | |||
of seconds (in decimal) after the time of the response. | date or an integer number of seconds (in decimal) after the time of | |||
the response. | ||||
Retry-After = "Retry-After" ":" ( HTTP-date | delta-seconds ) | Retry-After = "Retry-After" ":" OWS Retry-After-v | |||
Retry-After-v = HTTP-date / delta-seconds | ||||
Time spans are non-negative decimal integers, representing time in | Time spans are non-negative decimal integers, representing time in | |||
seconds. | seconds. | |||
delta-seconds = 1*DIGIT | delta-seconds = 1*DIGIT | |||
Two examples of its use are | Two examples of its use are | |||
Retry-After: Fri, 31 Dec 1999 23:59:59 GMT | Retry-After: Fri, 31 Dec 1999 23:59:59 GMT | |||
Retry-After: 120 | Retry-After: 120 | |||
In the latter example, the delay is 2 minutes. | In the latter example, the delay is 2 minutes. | |||
10.8. Server | 10.8. Server | |||
The Server response-header field contains information about the | The response-header field "Server" contains information about the | |||
software used by the origin server to handle the request. The field | software used by the origin server to handle the request. The field | |||
can contain multiple product tokens (Section 3.5 of [Part1]) and | can contain multiple product tokens (Section 3.5 of [Part1]) and | |||
comments identifying the server and any significant subproducts. The | comments identifying the server and any significant subproducts. The | |||
product tokens are listed in order of their significance for | product tokens are listed in order of their significance for | |||
identifying the application. | identifying the application. | |||
Server = "Server" ":" 1*( product | comment ) | Server = "Server" ":" OWS Server-v | |||
Server-v = product | ||||
*( RWS ( product / comment ) ) | ||||
Example: | Example: | |||
Server: CERN/3.0 libwww/2.17 | Server: CERN/3.0 libwww/2.17 | |||
If the response is being forwarded through a proxy, the proxy | If the response is being forwarded through a proxy, the proxy | |||
application MUST NOT modify the Server response-header. Instead, it | application MUST NOT modify the Server response-header. Instead, it | |||
MUST include a Via field (as described in Section 8.9 of [Part1]). | MUST include a Via field (as described in Section 8.9 of [Part1]). | |||
Note: Revealing the specific software version of the server might | Note: Revealing the specific software version of the server might | |||
allow the server machine to become more vulnerable to attacks | allow the server machine to become more vulnerable to attacks | |||
against software that is known to contain security holes. Server | against software that is known to contain security holes. Server | |||
implementors are encouraged to make this field a configurable | implementors are encouraged to make this field a configurable | |||
option. | option. | |||
10.9. User-Agent | 10.9. User-Agent | |||
The User-Agent request-header field contains information about the | The request-header field "User-Agent" contains information about the | |||
user agent originating the request. This is for statistical | user agent originating the request. This is for statistical | |||
purposes, the tracing of protocol violations, and automated | purposes, the tracing of protocol violations, and automated | |||
recognition of user agents for the sake of tailoring responses to | recognition of user agents for the sake of tailoring responses to | |||
avoid particular user agent limitations. User agents SHOULD include | avoid particular user agent limitations. User agents SHOULD include | |||
this field with requests. The field can contain multiple product | this field with requests. The field can contain multiple product | |||
tokens (Section 3.5 of [Part1]) and comments identifying the agent | tokens (Section 3.5 of [Part1]) and comments identifying the agent | |||
and any subproducts which form a significant part of the user agent. | and any subproducts which form a significant part of the user agent. | |||
By convention, the product tokens are listed in order of their | By convention, the product tokens are listed in order of their | |||
significance for identifying the application. | significance for identifying the application. | |||
User-Agent = "User-Agent" ":" 1*( product | comment ) | User-Agent = "User-Agent" ":" OWS User-Agent-v | |||
User-Agent-v = product | ||||
*( RWS ( product / comment ) ) | ||||
Example: | Example: | |||
User-Agent: CERN-LineMode/2.15 libwww/2.17b3 | User-Agent: CERN-LineMode/2.15 libwww/2.17b3 | |||
11. IANA Considerations | 11. IANA Considerations | |||
11.1. Method Registry | 11.1. Method Registry | |||
The registration procedure for HTTP Methods is defined by Section 3.1 | The registration procedure for HTTP Methods is defined by Section 3.1 | |||
skipping to change at page 41, line 22 | skipping to change at page 41, line 22 | |||
13. Acknowledgments | 13. Acknowledgments | |||
14. References | 14. References | |||
14.1. Normative References | 14.1. Normative References | |||
[Part1] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H., | [Part1] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H., | |||
Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed., | Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed., | |||
and J. Reschke, Ed., "HTTP/1.1, part 1: URIs, Connections, | and J. Reschke, Ed., "HTTP/1.1, part 1: URIs, Connections, | |||
and Message Parsing", draft-ietf-httpbis-p1-messaging-04 | and Message Parsing", draft-ietf-httpbis-p1-messaging-05 | |||
(work in progress), August 2008. | (work in progress), November 2008. | |||
[Part3] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H., | [Part3] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H., | |||
Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed., | Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed., | |||
and J. Reschke, Ed., "HTTP/1.1, part 3: Message Payload | and J. Reschke, Ed., "HTTP/1.1, part 3: Message Payload | |||
and Content Negotiation", draft-ietf-httpbis-p3-payload-04 | and Content Negotiation", draft-ietf-httpbis-p3-payload-05 | |||
(work in progress), August 2008. | (work in progress), November 2008. | |||
[Part4] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H., | [Part4] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H., | |||
Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed., | Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed., | |||
and J. Reschke, Ed., "HTTP/1.1, part 4: Conditional | and J. Reschke, Ed., "HTTP/1.1, part 4: Conditional | |||
Requests", draft-ietf-httpbis-p4-conditional-04 (work in | Requests", draft-ietf-httpbis-p4-conditional-05 (work in | |||
progress), August 2008. | progress), November 2008. | |||
[Part5] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H., | [Part5] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H., | |||
Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed., | Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed., | |||
and J. Reschke, Ed., "HTTP/1.1, part 5: Range Requests and | and J. Reschke, Ed., "HTTP/1.1, part 5: Range Requests and | |||
Partial Responses", draft-ietf-httpbis-p5-range-04 (work | Partial Responses", draft-ietf-httpbis-p5-range-05 (work | |||
in progress), August 2008. | in progress), November 2008. | |||
[Part6] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H., | [Part6] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H., | |||
Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed., | Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., 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-04 (work in progress), | draft-ietf-httpbis-p6-cache-05 (work in progress), | |||
August 2008. | November 2008. | |||
[Part7] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H., | [Part7] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H., | |||
Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed., | Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed., | |||
and J. Reschke, Ed., "HTTP/1.1, part 7: Authentication", | and J. Reschke, Ed., "HTTP/1.1, part 7: Authentication", | |||
draft-ietf-httpbis-p7-auth-04 (work in progress), | draft-ietf-httpbis-p7-auth-05 (work in progress), | |||
August 2008. | November 2008. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
14.2. Informative References | 14.2. Informative References | |||
[RFC1945] Berners-Lee, T., Fielding, R., and H. Nielsen, "Hypertext | [RFC1945] Berners-Lee, T., Fielding, R., and H. Nielsen, "Hypertext | |||
Transfer Protocol -- HTTP/1.0", RFC 1945, May 1996. | Transfer Protocol -- HTTP/1.0", RFC 1945, May 1996. | |||
[RFC2068] Fielding, R., Gettys, J., Mogul, J., Nielsen, H., and T. | [RFC2068] Fielding, R., Gettys, J., Mogul, J., Nielsen, H., and T. | |||
Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", | Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", | |||
RFC 2068, January 1997. | RFC 2068, January 1997. | |||
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., | [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., | |||
Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext | Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext | |||
Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. | Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. | |||
[RFC2817] Khare, R. and S. Lawrence, "Upgrading to TLS Within | [RFC2817] Khare, R. and S. Lawrence, "Upgrading to TLS Within | |||
HTTP/1.1", RFC 2817, May 2000. | HTTP/1.1", RFC 2817, May 2000. | |||
[RFC2822] Resnick, P., "Internet Message Format", RFC 2822, | ||||
April 2001. | ||||
[RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration | [RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration | |||
Procedures for Message Header Fields", BCP 90, RFC 3864, | Procedures for Message Header Fields", BCP 90, RFC 3864, | |||
September 2004. | September 2004. | |||
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | |||
IANA Considerations Section in RFCs", BCP 26, RFC 5226, | IANA Considerations Section in RFCs", BCP 26, RFC 5226, | |||
May 2008. | May 2008. | |||
[RFC5322] Resnick, P., "Internet Message Format", RFC 5322, | ||||
October 2008. | ||||
Appendix A. Compatibility with Previous Versions | Appendix A. Compatibility with Previous Versions | |||
A.1. Changes from RFC 2068 | A.1. Changes from RFC 2068 | |||
Clarified which error code should be used for inbound server failures | Clarified which error code should be used for inbound server failures | |||
(e.g. DNS failures). (Section 9.5.5). | (e.g. DNS failures). (Section 9.5.5). | |||
201 (Created) had a race that required an Etag be sent when a | 201 (Created) had a race that required an Etag be sent when a | |||
resource is first created. (Section 9.2.2). | resource is first created. (Section 9.2.2). | |||
skipping to change at page 44, line 32 | skipping to change at page 44, line 32 | |||
Appendix B. Change Log (to be removed by RFC Editor before publication) | Appendix B. Change Log (to be removed by RFC Editor before publication) | |||
B.1. Since RFC2616 | B.1. Since RFC2616 | |||
Extracted relevant partitions from [RFC2616]. | Extracted relevant partitions from [RFC2616]. | |||
B.2. Since draft-ietf-httpbis-p2-semantics-00 | B.2. Since draft-ietf-httpbis-p2-semantics-00 | |||
Closed issues: | Closed issues: | |||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/5>: "Via is a | o <http://tools.ietf.org/wg/httpbis/trac/ticket/5>: "Via is a MUST" | |||
MUST" (<http://purl.org/NET/http-errata#via-must>) | (<http://purl.org/NET/http-errata#via-must>) | |||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/6>: "Fragments | o <http://tools.ietf.org/wg/httpbis/trac/ticket/6>: "Fragments | |||
allowed in Location" | allowed in Location" | |||
(<http://purl.org/NET/http-errata#location-fragments>) | (<http://purl.org/NET/http-errata#location-fragments>) | |||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/10>: "Safe | o <http://tools.ietf.org/wg/httpbis/trac/ticket/10>: "Safe Methods | |||
Methods vs Redirection" | vs Redirection" (<http://purl.org/NET/http-errata#saferedirect>) | |||
(<http://purl.org/NET/http-errata#saferedirect>) | ||||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/17>: "Revise | o <http://tools.ietf.org/wg/httpbis/trac/ticket/17>: "Revise | |||
description of the POST method" | description of the POST method" | |||
(<http://purl.org/NET/http-errata#post>) | (<http://purl.org/NET/http-errata#post>) | |||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/35>: "Normative | o <http://tools.ietf.org/wg/httpbis/trac/ticket/35>: "Normative and | |||
and Informative references" | Informative references" | |||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/42>: "RFC2606 | ||||
Compliance" | ||||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/65>: | o <http://tools.ietf.org/wg/httpbis/trac/ticket/42>: "RFC2606 | |||
"Informative references" | Compliance" | |||
o <http://tools.ietf.org/wg/httpbis/trac/ticket/65>: "Informative | ||||
references" | ||||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/84>: "Redundant | o <http://tools.ietf.org/wg/httpbis/trac/ticket/84>: "Redundant | |||
cross-references" | cross-references" | |||
Other changes: | Other changes: | |||
o Move definitions of 304 and 412 condition codes to [Part4] | o Move definitions of 304 and 412 condition codes to [Part4] | |||
B.3. Since draft-ietf-httpbis-p2-semantics-01 | B.3. Since draft-ietf-httpbis-p2-semantics-01 | |||
Closed issues: | Closed issues: | |||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/21>: "PUT side | o <http://tools.ietf.org/wg/httpbis/trac/ticket/21>: "PUT side | |||
effects" | effects" | |||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/91>: "Duplicate | o <http://tools.ietf.org/wg/httpbis/trac/ticket/91>: "Duplicate Host | |||
Host header requirements" | header requirements" | |||
Ongoing work on ABNF conversion | Ongoing work on ABNF conversion | |||
(<http://www3.tools.ietf.org/wg/httpbis/trac/ticket/36>): | (<http://tools.ietf.org/wg/httpbis/trac/ticket/36>): | |||
o Move "Product Tokens" section (back) into Part 1, as "token" is | o Move "Product Tokens" section (back) into Part 1, as "token" is | |||
used in the definition of the Upgrade header. | used in the definition of the Upgrade header. | |||
o Add explicit references to BNF syntax and rules imported from | o Add explicit references to BNF syntax and rules imported from | |||
other parts of the specification. | other parts of the specification. | |||
o Copy definition of delta-seconds from Part6 instead of referencing | o Copy definition of delta-seconds from Part6 instead of referencing | |||
it. | it. | |||
B.4. Since draft-ietf-httpbis-p2-semantics-02 | B.4. Since draft-ietf-httpbis-p2-semantics-02 | |||
Closed issues: | Closed issues: | |||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/24>: "Requiring | o <http://tools.ietf.org/wg/httpbis/trac/ticket/24>: "Requiring | |||
Allow in 405 responses" | Allow in 405 responses" | |||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/59>: "Status | o <http://tools.ietf.org/wg/httpbis/trac/ticket/59>: "Status Code | |||
Code Registry" | Registry" | |||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/61>: | o <http://tools.ietf.org/wg/httpbis/trac/ticket/61>: "Redirection | |||
"Redirection vs. Location" | vs. Location" | |||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/70>: | ||||
"Cacheability of 303 response" | ||||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/76>: "305 Use | o <http://tools.ietf.org/wg/httpbis/trac/ticket/70>: "Cacheability | |||
Proxy" | of 303 response" | |||
o <http://tools.ietf.org/wg/httpbis/trac/ticket/76>: "305 Use Proxy" | ||||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/105>: | o <http://tools.ietf.org/wg/httpbis/trac/ticket/105>: | |||
"Classification for Allow header" | "Classification for Allow header" | |||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/112>: "PUT - | o <http://tools.ietf.org/wg/httpbis/trac/ticket/112>: "PUT - 'store | |||
'store under' vs 'store at'" | under' vs 'store at'" | |||
Ongoing work on IANA Message Header Registration | Ongoing work on IANA Message Header Registration | |||
(<http://www3.tools.ietf.org/wg/httpbis/trac/ticket/40>): | (<http://tools.ietf.org/wg/httpbis/trac/ticket/40>): | |||
o Reference RFC 3984, and update header registrations for headers | o Reference RFC 3984, and update header registrations for headers | |||
defined in this document. | defined in this document. | |||
Ongoing work on ABNF conversion | Ongoing work on ABNF conversion | |||
(<http://www3.tools.ietf.org/wg/httpbis/trac/ticket/36>): | (<http://tools.ietf.org/wg/httpbis/trac/ticket/36>): | |||
o Replace string literals when the string really is case-sensitive | o Replace string literals when the string really is case-sensitive | |||
(method). | (method). | |||
B.5. Since draft-ietf-httpbis-p2-semantics-03 | B.5. Since draft-ietf-httpbis-p2-semantics-03 | |||
Closed issues: | Closed issues: | |||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/98>: "OPTIONS | o <http://tools.ietf.org/wg/httpbis/trac/ticket/98>: "OPTIONS | |||
request bodies" | request bodies" | |||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/119>: | o <http://tools.ietf.org/wg/httpbis/trac/ticket/119>: "Description | |||
"Description of CONNECT should refer to RFC2817" | of CONNECT should refer to RFC2817" | |||
o <http://www3.tools.ietf.org/wg/httpbis/trac/ticket/125>: "Location | o <http://tools.ietf.org/wg/httpbis/trac/ticket/125>: "Location | |||
Content-Location reference request/response mixup" | Content-Location reference request/response mixup" | |||
Ongoing work on Method Registry | Ongoing work on Method Registry | |||
(<http://www3.tools.ietf.org/wg/httpbis/trac/ticket/72>): | (<http://tools.ietf.org/wg/httpbis/trac/ticket/72>): | |||
o Added initial proposal for registration process, plus initial | o Added initial proposal for registration process, plus initial | |||
content (non-HTTP/1.1 methods to be added by a separate | content (non-HTTP/1.1 methods to be added by a separate | |||
specification). | specification). | |||
B.6. Since draft-ietf-httpbis-p2-semantics-04 | ||||
Closed issues: | ||||
o <http://tools.ietf.org/wg/httpbis/trac/ticket/103>: "Content-*" | ||||
o <http://tools.ietf.org/wg/httpbis/trac/ticket/132>: "RFC 2822 is | ||||
updated by RFC 5322" | ||||
Ongoing work on ABNF conversion | ||||
(<http://tools.ietf.org/wg/httpbis/trac/ticket/36>): | ||||
o Use "/" instead of "|" for alternatives. | ||||
o Introduce new ABNF rules for "bad" whitespace ("BWS"), optional | ||||
whitespace ("OWS") and required whitespace ("RWS"). | ||||
o Rewrite ABNFs to spell out whitespace rules, factor out header | ||||
value format definitions. | ||||
Index | Index | |||
1 | 1 | |||
100 Continue (status code) 19 | 100 Continue (status code) 19 | |||
101 Switching Protocols (status code) 20 | 101 Switching Protocols (status code) 20 | |||
2 | 2 | |||
200 OK (status code) 20 | 200 OK (status code) 20 | |||
201 Created (status code) 20 | 201 Created (status code) 20 | |||
202 Accepted (status code) 21 | 202 Accepted (status code) 21 | |||
skipping to change at page 48, line 25 | skipping to change at page 48, line 40 | |||
E | E | |||
Expect header 31 | Expect header 31 | |||
F | F | |||
From header 32 | From header 32 | |||
G | G | |||
GET method 15 | GET method 15 | |||
Grammar | Grammar | |||
Allow 31 | Allow 31 | |||
Allow-v 31 | ||||
delta-seconds 35 | delta-seconds 35 | |||
Expect 32 | Expect 32 | |||
expect-params 32 | expect-params 32 | |||
Expect-v 32 | ||||
expectation 32 | expectation 32 | |||
expectation-extension 32 | expectation-extension 32 | |||
extension-code 11 | extension-code 11 | |||
extension-method 8 | extension-method 8 | |||
From 32 | From 32 | |||
From-v 32 | ||||
Location 33 | Location 33 | |||
Location-v 33 | ||||
Max-Forwards 34 | Max-Forwards 34 | |||
Max-Forwards-v 34 | ||||
Method 8 | Method 8 | |||
Reason-Phrase 11 | Reason-Phrase 11 | |||
Referer 34 | Referer 35 | |||
Referer-v 35 | ||||
request-header 9 | request-header 9 | |||
response-header 12 | response-header 12 | |||
Retry-After 35 | Retry-After 35 | |||
Server 35 | Retry-After-v 35 | |||
Server 36 | ||||
Server-v 36 | ||||
Status-Code 11 | Status-Code 11 | |||
User-Agent 36 | User-Agent 36 | |||
User-Agent-v 36 | ||||
H | H | |||
HEAD method 16 | HEAD method 16 | |||
Headers | Headers | |||
Allow 31 | Allow 31 | |||
Expect 31 | Expect 31 | |||
From 32 | From 32 | |||
Location 33 | Location 33 | |||
Max-Forwards 34 | Max-Forwards 34 | |||
Referer 34 | Referer 34 | |||
End of changes. 80 change blocks. | ||||
187 lines changed or deleted | 226 lines changed or added | |||
This html diff was produced by rfcdiff 1.34. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |