draft-ietf-httpbis-p1-messaging-08.txt   draft-ietf-httpbis-p1-messaging-latest.txt 
HTTPbis Working Group R. Fielding, Ed. HTTPbis 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: April 29, 2010 HP Expires: August 6, 2010 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
October 26, 2009 February 2, 2010
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-08 draft-ietf-httpbis-p1-messaging-latest
Status of this Memo Abstract
The Hypertext Transfer Protocol (HTTP) is an application-level
protocol for distributed, collaborative, hypertext information
systems. HTTP has been in use by the World Wide Web global
information initiative since 1990. This document is Part 1 of the
seven-part specification that defines the protocol referred to as
"HTTP/1.1" and, taken together, obsoletes RFC 2616. Part 1 provides
an overview of HTTP and its associated terminology, defines the
"http" and "https" Uniform Resource Identifier (URI) schemes, defines
the generic message syntax and parsing requirements for HTTP message
frames, and describes general security concerns for implementations.
Editorial Note (To be removed by RFC Editor)
Discussion of this draft should take place on the HTTPBIS working
group mailing list (ietf-http-wg@w3.org). The current issues list is
at <http://tools.ietf.org/wg/httpbis/trac/report/11> and related
documents (including fancy diffs) can be found at
<http://tools.ietf.org/wg/httpbis/>.
The changes in this draft are summarized in Appendix D.10.
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79. This document may contain material provisions of BCP 78 and BCP 79.
from IETF Documents or IETF Contributions published or made publicly
available before November 10, 2008. The person(s) controlling the
copyright in some of this material may not have granted the IETF
Trust the right to allow modifications of such material outside the
IETF Standards Process. Without obtaining an adequate license from
the person(s) controlling the copyright in such materials, this
document may not be modified outside the IETF Standards Process, and
derivative works of it may not be created outside the IETF Standards
Process, except to format it for publication as an RFC or to
translate it into languages other than English.
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
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
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."
skipping to change at page 2, line 4 skipping to change at page 2, line 16
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
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
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."
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 April 29, 2010. This Internet-Draft will expire on August 6, 2010.
Copyright Notice Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the Copyright (c) 2010 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 in effect on the date of Provisions Relating to IETF Documents
publication of this document (http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
Abstract include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
The Hypertext Transfer Protocol (HTTP) is an application-level described in the BSD License.
protocol for distributed, collaborative, hypertext information
systems. HTTP has been in use by the World Wide Web global
information initiative since 1990. This document is Part 1 of the
seven-part specification that defines the protocol referred to as
"HTTP/1.1" and, taken together, obsoletes RFC 2616. Part 1 provides
an overview of HTTP and its associated terminology, defines the
"http" and "https" Uniform Resource Identifier (URI) schemes, defines
the generic message syntax and parsing requirements for HTTP message
frames, and describes general security concerns for implementations.
Editorial Note (To be removed by RFC Editor)
Discussion of this draft should take place on the HTTPBIS working
group mailing list (ietf-http-wg@w3.org). The current issues list is
at <http://tools.ietf.org/wg/httpbis/trac/report/11> and related
documents (including fancy diffs) can be found at
<http://tools.ietf.org/wg/httpbis/>.
The changes in this draft are summarized in Appendix D.9. This document may contain material from IETF Documents or IETF
Contributions published or made publicly available before November
10, 2008. The person(s) controlling the copyright in some of this
material may not have granted the IETF Trust the right to allow
modifications of such material outside the IETF Standards Process.
Without obtaining an adequate license from the person(s) controlling
the copyright in such materials, this document may not be modified
outside the IETF Standards Process, and derivative works of it may
not be created outside the IETF Standards Process, except to format
it for publication as an RFC or to translate it into languages other
than English.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 6 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1. Requirements . . . . . . . . . . . . . . . . . . . . . . . 7 1.1. Requirements . . . . . . . . . . . . . . . . . . . . . . . 7
1.2. Syntax Notation . . . . . . . . . . . . . . . . . . . . . 7 1.2. Syntax Notation . . . . . . . . . . . . . . . . . . . . . 7
1.2.1. ABNF Extension: #rule . . . . . . . . . . . . . . . . 7 1.2.1. ABNF Extension: #rule . . . . . . . . . . . . . . . . 7
1.2.2. Basic Rules . . . . . . . . . . . . . . . . . . . . . 8 1.2.2. Basic Rules . . . . . . . . . . . . . . . . . . . . . 8
1.2.3. ABNF Rules defined in other Parts of the 1.2.3. ABNF Rules defined in other Parts of the
Specification . . . . . . . . . . . . . . . . . . . . 9 Specification . . . . . . . . . . . . . . . . . . . . 10
2. HTTP architecture . . . . . . . . . . . . . . . . . . . . . . 10 2. HTTP architecture . . . . . . . . . . . . . . . . . . . . . . 10
2.1. Client/Server Operation . . . . . . . . . . . . . . . . . 10 2.1. Client/Server Operation . . . . . . . . . . . . . . . . . 10
2.2. Intermediaries . . . . . . . . . . . . . . . . . . . . . . 11 2.2. Intermediaries . . . . . . . . . . . . . . . . . . . . . . 12
2.3. Caches . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3. Caches . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4. Transport Independence . . . . . . . . . . . . . . . . . . 13 2.4. Transport Independence . . . . . . . . . . . . . . . . . . 14
2.5. HTTP Version . . . . . . . . . . . . . . . . . . . . . . . 14 2.5. HTTP Version . . . . . . . . . . . . . . . . . . . . . . . 14
2.6. Uniform Resource Identifiers . . . . . . . . . . . . . . . 15 2.6. Uniform Resource Identifiers . . . . . . . . . . . . . . . 16
2.6.1. http URI scheme . . . . . . . . . . . . . . . . . . . 16 2.6.1. http URI scheme . . . . . . . . . . . . . . . . . . . 16
2.6.2. https URI scheme . . . . . . . . . . . . . . . . . . . 17 2.6.2. https URI scheme . . . . . . . . . . . . . . . . . . . 17
2.6.3. http and https URI Normalization and Comparison . . . 17 2.6.3. http and https URI Normalization and Comparison . . . 18
3. HTTP Message . . . . . . . . . . . . . . . . . . . . . . . . . 18 3. HTTP Message . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1. Message Parsing Robustness . . . . . . . . . . . . . . . . 19 3.1. Message Parsing Robustness . . . . . . . . . . . . . . . . 19
3.2. Header Fields . . . . . . . . . . . . . . . . . . . . . . 19 3.2. Header Fields . . . . . . . . . . . . . . . . . . . . . . 20
3.3. Message Body . . . . . . . . . . . . . . . . . . . . . . . 21 3.3. Message Body . . . . . . . . . . . . . . . . . . . . . . . 22
3.4. Message Length . . . . . . . . . . . . . . . . . . . . . . 22 3.4. Message Length . . . . . . . . . . . . . . . . . . . . . . 23
3.5. General Header Fields . . . . . . . . . . . . . . . . . . 23 3.5. General Header Fields . . . . . . . . . . . . . . . . . . 24
4. Request . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4. Request . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1. Request-Line . . . . . . . . . . . . . . . . . . . . . . . 24 4.1. Request-Line . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.1. Method . . . . . . . . . . . . . . . . . . . . . . . . 24 4.1.1. Method . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.2. request-target . . . . . . . . . . . . . . . . . . . . 24 4.1.2. request-target . . . . . . . . . . . . . . . . . . . . 25
4.2. The Resource Identified by a Request . . . . . . . . . . . 26 4.2. The Resource Identified by a Request . . . . . . . . . . . 27
5. Response . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5. Response . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.1. Status-Line . . . . . . . . . . . . . . . . . . . . . . . 27 5.1. Status-Line . . . . . . . . . . . . . . . . . . . . . . . 28
5.1.1. Status Code and Reason Phrase . . . . . . . . . . . . 28 5.1.1. Status Code and Reason Phrase . . . . . . . . . . . . 28
6. Protocol Parameters . . . . . . . . . . . . . . . . . . . . . 28 6. Protocol Parameters . . . . . . . . . . . . . . . . . . . . . 29
6.1. Date/Time Formats: Full Date . . . . . . . . . . . . . . . 28 6.1. Date/Time Formats: Full Date . . . . . . . . . . . . . . . 29
6.2. Transfer Codings . . . . . . . . . . . . . . . . . . . . . 31 6.2. Transfer Codings . . . . . . . . . . . . . . . . . . . . . 31
6.2.1. Chunked Transfer Coding . . . . . . . . . . . . . . . 32 6.2.1. Chunked Transfer Coding . . . . . . . . . . . . . . . 32
6.2.2. Compression Codings . . . . . . . . . . . . . . . . . 34 6.2.2. Compression Codings . . . . . . . . . . . . . . . . . 34
6.2.3. Transfer Coding Registry . . . . . . . . . . . . . . . 35 6.2.3. Transfer Coding Registry . . . . . . . . . . . . . . . 35
6.3. Product Tokens . . . . . . . . . . . . . . . . . . . . . . 35 6.3. Product Tokens . . . . . . . . . . . . . . . . . . . . . . 35
6.4. Quality Values . . . . . . . . . . . . . . . . . . . . . . 36 6.4. Quality Values . . . . . . . . . . . . . . . . . . . . . . 36
7. Connections . . . . . . . . . . . . . . . . . . . . . . . . . 36 7. Connections . . . . . . . . . . . . . . . . . . . . . . . . . 36
7.1. Persistent Connections . . . . . . . . . . . . . . . . . . 36 7.1. Persistent Connections . . . . . . . . . . . . . . . . . . 36
7.1.1. Purpose . . . . . . . . . . . . . . . . . . . . . . . 36 7.1.1. Purpose . . . . . . . . . . . . . . . . . . . . . . . 36
7.1.2. Overall Operation . . . . . . . . . . . . . . . . . . 37 7.1.2. Overall Operation . . . . . . . . . . . . . . . . . . 37
skipping to change at page 4, line 23 skipping to change at page 4, line 23
8.4. Use of HTTP by other protocols . . . . . . . . . . . . . . 44 8.4. Use of HTTP by other protocols . . . . . . . . . . . . . . 44
8.5. Use of HTTP by media type specification . . . . . . . . . 44 8.5. Use of HTTP by media type specification . . . . . . . . . 44
9. Header Field Definitions . . . . . . . . . . . . . . . . . . . 44 9. Header Field Definitions . . . . . . . . . . . . . . . . . . . 44
9.1. Connection . . . . . . . . . . . . . . . . . . . . . . . . 44 9.1. Connection . . . . . . . . . . . . . . . . . . . . . . . . 44
9.2. Content-Length . . . . . . . . . . . . . . . . . . . . . . 45 9.2. Content-Length . . . . . . . . . . . . . . . . . . . . . . 45
9.3. Date . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 9.3. Date . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
9.3.1. Clockless Origin Server Operation . . . . . . . . . . 47 9.3.1. Clockless Origin Server Operation . . . . . . . . . . 47
9.4. Host . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 9.4. Host . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
9.5. TE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 9.5. TE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
9.6. Trailer . . . . . . . . . . . . . . . . . . . . . . . . . 49 9.6. Trailer . . . . . . . . . . . . . . . . . . . . . . . . . 49
9.7. Transfer-Encoding . . . . . . . . . . . . . . . . . . . . 49 9.7. Transfer-Encoding . . . . . . . . . . . . . . . . . . . . 50
9.8. Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . 50 9.8. Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . 50
9.8.1. Upgrade Token Registry . . . . . . . . . . . . . . . . 51 9.8.1. Upgrade Token Registry . . . . . . . . . . . . . . . . 51
9.9. Via . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 9.9. Via . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 53 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 54
10.1. Message Header Registration . . . . . . . . . . . . . . . 53 10.1. Message Header Registration . . . . . . . . . . . . . . . 54
10.2. URI Scheme Registration . . . . . . . . . . . . . . . . . 54 10.2. URI Scheme Registration . . . . . . . . . . . . . . . . . 54
10.3. Internet Media Type Registrations . . . . . . . . . . . . 54 10.3. Internet Media Type Registrations . . . . . . . . . . . . 54
10.3.1. Internet Media Type message/http . . . . . . . . . . . 54 10.3.1. Internet Media Type message/http . . . . . . . . . . . 54
10.3.2. Internet Media Type application/http . . . . . . . . . 55 10.3.2. Internet Media Type application/http . . . . . . . . . 56
10.4. Transfer Coding Registry . . . . . . . . . . . . . . . . . 56 10.4. Transfer Coding Registry . . . . . . . . . . . . . . . . . 57
10.5. Upgrade Token Registration . . . . . . . . . . . . . . . . 57 10.5. Upgrade Token Registration . . . . . . . . . . . . . . . . 57
11. Security Considerations . . . . . . . . . . . . . . . . . . . 57 11. Security Considerations . . . . . . . . . . . . . . . . . . . 57
11.1. Personal Information . . . . . . . . . . . . . . . . . . . 57 11.1. Personal Information . . . . . . . . . . . . . . . . . . . 58
11.2. Abuse of Server Log Information . . . . . . . . . . . . . 58 11.2. Abuse of Server Log Information . . . . . . . . . . . . . 58
11.3. Attacks Based On File and Path Names . . . . . . . . . . . 58 11.3. Attacks Based On File and Path Names . . . . . . . . . . . 58
11.4. DNS Spoofing . . . . . . . . . . . . . . . . . . . . . . . 58 11.4. DNS Spoofing . . . . . . . . . . . . . . . . . . . . . . . 58
11.5. Proxies and Caching . . . . . . . . . . . . . . . . . . . 59 11.5. Proxies and Caching . . . . . . . . . . . . . . . . . . . 59
11.6. Denial of Service Attacks on Proxies . . . . . . . . . . . 60 11.6. Denial of Service Attacks on Proxies . . . . . . . . . . . 60
12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 60 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 60
13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 61 13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 61
13.1. Normative References . . . . . . . . . . . . . . . . . . . 61 13.1. Normative References . . . . . . . . . . . . . . . . . . . 61
13.2. Informative References . . . . . . . . . . . . . . . . . . 62 13.2. Informative References . . . . . . . . . . . . . . . . . . 63
Appendix A. Tolerant Applications . . . . . . . . . . . . . . . . 64 Appendix A. Tolerant Applications . . . . . . . . . . . . . . . . 65
Appendix B. Compatibility with Previous Versions . . . . . . . . 65 Appendix B. Compatibility with Previous Versions . . . . . . . . 65
B.1. Changes from HTTP/1.0 . . . . . . . . . . . . . . . . . . 66 B.1. Changes from HTTP/1.0 . . . . . . . . . . . . . . . . . . 66
B.1.1. Changes to Simplify Multi-homed Web Servers and B.1.1. Changes to Simplify Multi-homed Web Servers and
Conserve IP Addresses . . . . . . . . . . . . . . . . 66 Conserve IP Addresses . . . . . . . . . . . . . . . . 66
B.2. Compatibility with HTTP/1.0 Persistent Connections . . . . 67 B.2. Compatibility with HTTP/1.0 Persistent Connections . . . . 67
B.3. Changes from RFC 2068 . . . . . . . . . . . . . . . . . . 67 B.3. Changes from RFC 2068 . . . . . . . . . . . . . . . . . . 68
B.4. Changes from RFC 2616 . . . . . . . . . . . . . . . . . . 68 B.4. Changes from RFC 2616 . . . . . . . . . . . . . . . . . . 68
Appendix C. Collected ABNF . . . . . . . . . . . . . . . . . . . 69 Appendix C. Collected ABNF . . . . . . . . . . . . . . . . . . . 69
Appendix D. Change Log (to be removed by RFC Editor before Appendix D. Change Log (to be removed by RFC Editor before
publication) . . . . . . . . . . . . . . . . . . . . 73 publication) . . . . . . . . . . . . . . . . . . . . 73
D.1. Since RFC2616 . . . . . . . . . . . . . . . . . . . . . . 73 D.1. Since RFC2616 . . . . . . . . . . . . . . . . . . . . . . 74
D.2. Since draft-ietf-httpbis-p1-messaging-00 . . . . . . . . . 73 D.2. Since draft-ietf-httpbis-p1-messaging-00 . . . . . . . . . 74
D.3. Since draft-ietf-httpbis-p1-messaging-01 . . . . . . . . . 75 D.3. Since draft-ietf-httpbis-p1-messaging-01 . . . . . . . . . 75
D.4. Since draft-ietf-httpbis-p1-messaging-02 . . . . . . . . . 76 D.4. Since draft-ietf-httpbis-p1-messaging-02 . . . . . . . . . 76
D.5. Since draft-ietf-httpbis-p1-messaging-03 . . . . . . . . . 76 D.5. Since draft-ietf-httpbis-p1-messaging-03 . . . . . . . . . 77
D.6. Since draft-ietf-httpbis-p1-messaging-04 . . . . . . . . . 77 D.6. Since draft-ietf-httpbis-p1-messaging-04 . . . . . . . . . 77
D.7. Since draft-ietf-httpbis-p1-messaging-05 . . . . . . . . . 77 D.7. Since draft-ietf-httpbis-p1-messaging-05 . . . . . . . . . 78
D.8. Since draft-ietf-httpbis-p1-messaging-06 . . . . . . . . . 78 D.8. Since draft-ietf-httpbis-p1-messaging-06 . . . . . . . . . 79
D.9. Since draft-ietf-httpbis-p1-messaging-07 . . . . . . . . . 79 D.9. Since draft-ietf-httpbis-p1-messaging-07 . . . . . . . . . 79
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 D.10. Since draft-ietf-httpbis-p1-messaging-08 . . . . . . . . . 80
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 84 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 84
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 request targets and Identifier (URI) standard [RFC3986] to indicate request targets and
relationships between resources. Messages are passed in a format relationships between resources. Messages are passed in a format
skipping to change at page 7, line 33 skipping to change at page 7, line 33
This specification uses the Augmented Backus-Naur Form (ABNF) This specification uses the Augmented Backus-Naur Form (ABNF)
notation of [RFC5234]. notation of [RFC5234].
The following core rules are included by reference, as defined in The following core rules are included by reference, as defined in
[RFC5234], Appendix B.1: ALPHA (letters), CR (carriage return), CRLF [RFC5234], Appendix B.1: ALPHA (letters), CR (carriage return), CRLF
(CR LF), CTL (controls), DIGIT (decimal 0-9), DQUOTE (double quote), (CR LF), CTL (controls), DIGIT (decimal 0-9), DQUOTE (double quote),
HEXDIG (hexadecimal 0-9/A-F/a-f), LF (line feed), OCTET (any 8-bit HEXDIG (hexadecimal 0-9/A-F/a-f), LF (line feed), OCTET (any 8-bit
sequence of data), SP (space), VCHAR (any visible [USASCII] sequence of data), SP (space), VCHAR (any visible [USASCII]
character), and WSP (whitespace). character), and WSP (whitespace).
As a syntactical convention, ABNF rule names prefixed with "obs-"
denote "obsolete" grammar rules that appear for historical reasons.
1.2.1. ABNF Extension: #rule 1.2.1. ABNF Extension: #rule
One extension to the ABNF rules of [RFC5234] is used to improve The #rule extension to the ABNF rules of [RFC5234] is used to improve
readability. readability.
A construct "#" is defined, similar to "*", for defining lists of A construct "#" is defined, similar to "*", for defining comma-
elements. The full form is "<n>#<m>element" indicating at least <n> delimited lists of elements. The full form is "<n>#<m>element"
and at most <m> elements, each separated by a single comma (",") and indicating at least <n> and at most <m> elements, each separated by a
optional whitespace (OWS). single comma (",") and optional whitespace (OWS, Section 1.2.2).
Thus, Thus,
1#element => element *( OWS "," OWS element ) 1#element => element *( OWS "," OWS element )
and: and:
#element => [ 1#element ] #element => [ 1#element ]
and for n >= 1 and m > 1: and for n >= 1 and m > 1:
<n>#<m>element => element <n-1>*<m-1>( OWS "," OWS element ) <n>#<m>element => element <n-1>*<m-1>( OWS "," OWS element )
For compatibility with legacy list rules, recipients SHOULD accept For compatibility with legacy list rules, recipients SHOULD accept
empty list elements. In other words, consumers would follow the list empty list elements. In other words, consumers would follow the list
productions: productions:
#element => [ ( "," / element ) *( OWS "," [ OWS element ] ) ] #element => [ ( "," / element ) *( OWS "," [ OWS element ] ) ]
skipping to change at page 8, line 16 skipping to change at page 8, line 20
<n>#<m>element => element <n-1>*<m-1>( OWS "," OWS element ) <n>#<m>element => element <n-1>*<m-1>( OWS "," OWS element )
For compatibility with legacy list rules, recipients SHOULD accept For compatibility with legacy list rules, recipients SHOULD accept
empty list elements. In other words, consumers would follow the list empty list elements. In other words, consumers would follow the list
productions: productions:
#element => [ ( "," / element ) *( OWS "," [ OWS element ] ) ] #element => [ ( "," / element ) *( OWS "," [ OWS element ] ) ]
1#element => *( "," OWS ) element *( OWS "," [ OWS element ] ) 1#element => *( "," OWS ) element *( OWS "," [ OWS element ] )
Note that empty elements do not contribute to the count of elements
present, though.
For example, given these ABNF productions:
example-list = 1#example-list-elmt
example-list-elmt = token ; see Section 1.2.2
Then these are valid values for example-list (not including the
double quotes, which are present for delimitation only):
"foo,bar"
" foo ,bar,"
" foo , ,bar,charlie "
"foo ,bar, charlie "
But these values would be invalid, as at least one non-empty element
is required:
""
","
", ,"
Appendix C shows the collected ABNF, with the list rules expanded as Appendix C shows the collected ABNF, with the list rules expanded as
explained above. explained above.
1.2.2. Basic Rules 1.2.2. Basic Rules
HTTP/1.1 defines the sequence CR LF as the end-of-line marker for all HTTP/1.1 defines the sequence CR LF as the end-of-line marker for all
protocol elements except the entity-body (see Appendix A for tolerant protocol elements except the entity-body (see Appendix A for tolerant
applications). The end-of-line marker within an entity-body is applications). The end-of-line marker within an entity-body is
defined by its associated media type, as described in Section 2.3 of defined by its associated media type, as described in Section 2.3 of
[Part3]. [Part3].
skipping to change at page 9, line 14 skipping to change at page 9, line 37
OWS = *( [ obs-fold ] WSP ) OWS = *( [ obs-fold ] WSP )
; "optional" whitespace ; "optional" whitespace
RWS = 1*( [ obs-fold ] WSP ) RWS = 1*( [ obs-fold ] WSP )
; "required" whitespace ; "required" whitespace
BWS = OWS BWS = OWS
; "bad" whitespace ; "bad" whitespace
obs-fold = CRLF obs-fold = CRLF
; see Section 3.2 ; see Section 3.2
Many HTTP/1.1 header field values consist of words separated by Many HTTP/1.1 header field values consist of words (token or quoted-
whitespace or special characters. These special characters MUST be string) separated by whitespace or special characters. These special
in a quoted string to be used within a parameter value (as defined in characters MUST be in a quoted string to be used within a parameter
Section 6.2). value (as defined in Section 6.2).
token = 1*tchar
tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*"
/ "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~"
/ DIGIT / ALPHA / DIGIT / ALPHA
; any VCHAR, except special
token = 1*tchar special = "(" / ")" / "<" / ">" / "@" / ","
/ ";" / ":" / "\" / DQUOTE / "/" / "["
/ "]" / "?" / "=" / "{" / "}"
A string of text is parsed as a single word if it is quoted using A string of text is parsed as a single word if it is quoted using
double-quote marks. double-quote marks.
quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE
qdtext = OWS / %x21 / %x23-5B / %x5D-7E / obs-text qdtext = OWS / %x21 / %x23-5B / %x5D-7E / obs-text
; OWS / <VCHAR except DQUOTE and "\"> / obs-text ; OWS / <VCHAR except DQUOTE and "\"> / obs-text
obs-text = %x80-FF obs-text = %x80-FF
The backslash character ("\") can be used as a single-character The backslash character ("\") can be used as a single-character
skipping to change at page 20, line 4 skipping to change at page 20, line 40
No whitespace is allowed between the header field name and colon. No whitespace is allowed between the header field name and colon.
For security reasons, any request message received containing such For security reasons, any request message received containing such
whitespace MUST be rejected with a response code of 400 (Bad whitespace MUST be rejected with a response code of 400 (Bad
Request). A proxy MUST remove any such whitespace from a response Request). A proxy MUST remove any such whitespace from a response
message before forwarding the message downstream. message before forwarding the message downstream.
A field value MAY be preceded by optional whitespace (OWS); a single A field value MAY be preceded by optional whitespace (OWS); a single
SP is preferred. The field value does not include any leading or SP is preferred. The field value does not include any leading or
trailing white space: OWS occurring before the first non-whitespace trailing white space: OWS occurring before the first non-whitespace
character of the field value or after the last non-whitespace character of the field value or after the last non-whitespace
character of the field value is ignored and SHOULD be removed without character of the field value is ignored and SHOULD be removed before
changing the meaning of the header field. further processing (as this does not change the meaning of the header
field).
The order in which header fields with differing field names are The order in which header fields with differing field names are
received is not significant. However, it is "good practice" to send received is not significant. However, it is "good practice" to send
header fields that contain control data first, such as Host on header fields that contain control data first, such as Host on
requests and Date on responses, so that implementations can decide requests and Date on responses, so that implementations can decide
when not to handle a message as early as possible. A server MUST when not to handle a message as early as possible. A server MUST
wait until the entire header section is received before interpreting wait until the entire header section is received before interpreting
a request message, since later header fields might include a request message, since later header fields might include
conditionals, authentication credentials, or deliberately misleading conditionals, authentication credentials, or deliberately misleading
duplicate header fields that would impact request processing. duplicate header fields that would impact request processing.
skipping to change at page 20, line 28 skipping to change at page 21, line 17
message unless the entire field value for that header field is message unless the entire field value for that header field is
defined as a comma-separated list [i.e., #(values)]. Multiple header defined as a comma-separated list [i.e., #(values)]. Multiple header
fields with the same field name can be combined into one "field-name: fields with the same field name can be combined into one "field-name:
field-value" pair, without changing the semantics of the message, by field-value" pair, without changing the semantics of the message, by
appending each subsequent field value to the combined field value in appending each subsequent field value to the combined field value in
order, separated by a comma. The order in which header fields with order, separated by a comma. The order in which header fields with
the same field name are received is therefore significant to the the same field name are received is therefore significant to the
interpretation of the combined field value; a proxy MUST NOT change interpretation of the combined field value; a proxy MUST NOT change
the order of these field values when forwarding a message. the order of these field values when forwarding a message.
Note: the "Set-Cookie" header as implemented in practice (as Note: The "Set-Cookie" header as implemented in practice (as
opposed to how it is specified in [RFC2109]) can occur multiple opposed to how it is specified in [RFC2109]) can occur multiple
times, but does not use the list syntax, and thus cannot be times, but does not use the list syntax, and thus cannot be
combined into a single line. (See Appendix A.2.3 of [Kri2001] for combined into a single line. (See Appendix A.2.3 of [Kri2001] for
details.) Also note that the Set-Cookie2 header specified in details.) Also note that the Set-Cookie2 header specified in
[RFC2965] does not share this problem. [RFC2965] does not share this problem.
Historically, HTTP header field values could be extended over Historically, HTTP header field values could be extended over
multiple lines by preceding each extra line with at least one space multiple lines by preceding each extra line with at least one space
or horizontal tab character (line folding). This specification or horizontal tab character (line folding). This specification
deprecates such line folding except within the message/http media deprecates such line folding except within the message/http media
skipping to change at page 22, line 12 skipping to change at page 22, line 49
either ignore the message-body or respond with an appropriate error either ignore the message-body or respond with an appropriate error
message (e.g., 413). A proxy or gateway, when presented the same message (e.g., 413). A proxy or gateway, when presented the same
request, SHOULD either forward the request inbound with the message- request, SHOULD either forward the request inbound with the message-
body or ignore the message-body when determining a response. body or ignore the message-body when determining a response.
For response messages, whether or not a message-body is included with For response messages, whether or not a message-body is included with
a message is dependent on both the request method and the response a message is dependent on both the request method and the response
status code (Section 5.1.1). All responses to the HEAD request status code (Section 5.1.1). All responses to the HEAD request
method MUST NOT include a message-body, even though the presence of method MUST NOT include a message-body, even though the presence of
entity-header fields might lead one to believe they do. All 1xx entity-header fields might lead one to believe they do. All 1xx
(informational), 204 (No Content), and 304 (Not Modified) responses (Informational), 204 (No Content), and 304 (Not Modified) responses
MUST NOT include a message-body. All other responses do include a MUST NOT include a message-body. All other responses do include a
message-body, although it MAY be of zero length. message-body, although it MAY be of zero length.
3.4. Message Length 3.4. Message Length
The transfer-length of a message is the length of the message-body as The transfer-length of a message is the length of the message-body as
it appears in the message; that is, after any transfer-codings have it appears in the message; that is, after any transfer-codings have
been applied. When a message-body is included with a message, the been applied. When a message-body is included with a message, the
transfer-length of that body is determined by one of the following transfer-length of that body is determined by one of the following
(in order of precedence): (in order of precedence):
skipping to change at page 36, line 19 skipping to change at page 36, line 19
version portion of the product value). version portion of the product value).
6.4. Quality Values 6.4. Quality Values
Both transfer codings (TE request header, Section 9.5) and content Both transfer codings (TE request header, Section 9.5) and content
negotiation (Section 4 of [Part3]) use short "floating point" numbers negotiation (Section 4 of [Part3]) use short "floating point" numbers
to indicate the relative importance ("weight") of various negotiable to indicate the relative importance ("weight") of various negotiable
parameters. A weight is normalized to a real number in the range 0 parameters. A weight is normalized to a real number in the range 0
through 1, where 0 is the minimum and 1 the maximum value. If a through 1, where 0 is the minimum and 1 the maximum value. If a
parameter has a quality value of 0, then content with this parameter parameter has a quality value of 0, then content with this parameter
is `not acceptable' for the client. HTTP/1.1 applications MUST NOT is "not acceptable" for the client. HTTP/1.1 applications MUST NOT
generate more than three digits after the decimal point. User generate more than three digits after the decimal point. User
configuration of these values SHOULD also be limited in this fashion. configuration of these values SHOULD also be limited in this fashion.
qvalue = ( "0" [ "." 0*3DIGIT ] ) qvalue = ( "0" [ "." 0*3DIGIT ] )
/ ( "1" [ "." 0*3("0") ] ) / ( "1" [ "." 0*3("0") ] )
Note: "Quality values" is a misnomer, since these values merely Note: "Quality values" is a misnomer, since these values merely
represent relative degradation in desired quality. represent relative degradation in desired quality.
7. Connections 7. Connections
skipping to change at page 45, line 7 skipping to change at page 45, line 7
Message headers listed in the Connection header MUST NOT include end- Message headers listed in the Connection header MUST NOT include end-
to-end headers, such as Cache-Control. to-end headers, such as Cache-Control.
HTTP/1.1 defines the "close" connection option for the sender to HTTP/1.1 defines the "close" connection option for the sender to
signal that the connection will be closed after completion of the signal that the connection will be closed after completion of the
response. For example, response. For example,
Connection: close Connection: close
in either the request or the response header fields indicates that in either the request or the response header fields indicates that
the connection SHOULD NOT be considered `persistent' (Section 7.1) the connection SHOULD NOT be considered "persistent" (Section 7.1)
after the current request/response is complete. after the current request/response is complete.
An HTTP/1.1 client that does not support persistent connections MUST An HTTP/1.1 client that does not support persistent connections MUST
include the "close" connection option in every request message. include the "close" connection option in every request message.
An HTTP/1.1 server that does not support persistent connections MUST An HTTP/1.1 server that does not support persistent connections MUST
include the "close" connection option in every response message that include the "close" connection option in every response message that
does not have a 1xx (informational) status code. does not have a 1xx (Informational) status code.
A system receiving an HTTP/1.0 (or lower-version) message that A system receiving an HTTP/1.0 (or lower-version) message that
includes a Connection header MUST, for each connection-token in this includes a Connection header MUST, for each connection-token in this
field, remove and ignore any header field(s) from the message with field, remove and ignore any header field(s) from the message with
the same name as the connection-token. This protects against the same name as the connection-token. This protects against
mistaken forwarding of such header fields by pre-HTTP/1.1 proxies. mistaken forwarding of such header fields by pre-HTTP/1.1 proxies.
See Appendix B.2. See Appendix B.2.
9.2. Content-Length 9.2. Content-Length
skipping to change at page 46, line 8 skipping to change at page 46, line 8
Note that the meaning of this field is significantly different from Note that the meaning of this field is significantly different from
the corresponding definition in MIME, where it is an optional field the corresponding definition in MIME, where it is an optional field
used within the "message/external-body" content-type. In HTTP, it used within the "message/external-body" content-type. In HTTP, it
SHOULD be sent whenever the message's length can be determined prior SHOULD be sent whenever the message's length can be determined prior
to being transferred, unless this is prohibited by the rules in to being transferred, unless this is prohibited by the rules in
Section 3.4. Section 3.4.
9.3. Date 9.3. Date
The "Date" general-header field represents the date and time at which The "Date" general-header field represents the date and time at which
the message was originated, having the same semantics as orig-date in the message was originated, having the same semantics as the
Section 3.6.1 of [RFC5322]. The field value is an HTTP-date, as Origination Date Field (orig-date) defined in Section 3.6.1 of
described in Section 6.1; it MUST be sent in rfc1123-date format. [RFC5322]. The field value is an HTTP-date, as described in
Section 6.1; it MUST be sent in rfc1123-date format.
Date = "Date" ":" OWS Date-v Date = "Date" ":" OWS Date-v
Date-v = HTTP-date Date-v = HTTP-date
An example is An example is
Date: Tue, 15 Nov 1994 08:12:31 GMT Date: Tue, 15 Nov 1994 08:12:31 GMT
Origin servers MUST include a Date header field in all responses, Origin servers MUST include a Date header field in all responses,
except in these cases: except in these cases:
skipping to change at page 61, line 27 skipping to change at page 61, line 37
[ISO-8859-1] [ISO-8859-1]
International Organization for Standardization, International Organization for Standardization,
"Information technology -- 8-bit single-byte coded graphic "Information technology -- 8-bit single-byte coded graphic
character sets -- Part 1: Latin alphabet No. 1", ISO/ character sets -- Part 1: Latin alphabet No. 1", ISO/
IEC 8859-1:1998, 1998. IEC 8859-1:1998, 1998.
[Part2] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H., [Part2] 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 2: Message and J. Reschke, Ed., "HTTP/1.1, part 2: Message
Semantics", draft-ietf-httpbis-p2-semantics-08 (work in Semantics", draft-ietf-httpbis-p2-semantics-latest (work
progress), October 2009. in progress), February 2010.
[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-08 and Content Negotiation",
(work in progress), October 2009. draft-ietf-httpbis-p3-payload-latest (work in progress),
February 2010.
[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-08 (work Partial Responses", draft-ietf-httpbis-p5-range-latest
in progress), October 2009. (work in progress), February 2010.
[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.,
Nottingham, M., Ed., and J. Reschke, Ed., "HTTP/1.1, part Nottingham, M., Ed., and J. Reschke, Ed., "HTTP/1.1, part
6: Caching", draft-ietf-httpbis-p6-cache-08 (work in 6: Caching", draft-ietf-httpbis-p6-cache-latest (work in
progress), October 2009. progress), February 2010.
[RFC1950] Deutsch, L. and J-L. Gailly, "ZLIB Compressed Data Format [RFC1950] Deutsch, L. and J-L. Gailly, "ZLIB Compressed Data Format
Specification version 3.3", RFC 1950, May 1996. Specification version 3.3", RFC 1950, May 1996.
RFC 1950 is an Informational RFC, thus it may be less RFC 1950 is an Informational RFC, thus it may be less
stable than this specification. On the other hand, this stable than this specification. On the other hand, this
downward reference was present since the publication of downward reference was present since the publication of
RFC 2068 in 1997 ([RFC2068]), therefore it is unlikely to RFC 2068 in 1997 ([RFC2068]), therefore it is unlikely to
cause problems in practice. See also [BCP97]. cause problems in practice. See also [BCP97].
skipping to change at page 72, line 42 skipping to change at page 73, line 8
received-protocol = [ protocol-name "/" ] protocol-version received-protocol = [ protocol-name "/" ] protocol-version
relative-part = <relative-part, defined in [RFC3986], Section 4.2> relative-part = <relative-part, defined in [RFC3986], Section 4.2>
request-header = <request-header, defined in [Part2], Section 3> request-header = <request-header, defined in [Part2], Section 3>
request-target = "*" / absolute-URI / ( path-absolute [ "?" query ] ) request-target = "*" / absolute-URI / ( path-absolute [ "?" query ] )
/ authority / authority
response-header = <response-header, defined in [Part2], Section 5> response-header = <response-header, defined in [Part2], Section 5>
rfc1123-date = day-name "," SP date1 SP time-of-day SP GMT rfc1123-date = day-name "," SP date1 SP time-of-day SP GMT
rfc850-date = day-name-l "," SP date2 SP time-of-day SP GMT rfc850-date = day-name-l "," SP date2 SP time-of-day SP GMT
second = 2DIGIT second = 2DIGIT
special = "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / "\" /
DQUOTE / "/" / "[" / "]" / "?" / "=" / "{" / "}"
start-line = Request-Line / Status-Line start-line = Request-Line / Status-Line
t-codings = "trailers" / ( transfer-extension [ te-params ] ) t-codings = "trailers" / ( transfer-extension [ te-params ] )
tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." /
"^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA
te-ext = OWS ";" OWS token [ "=" ( token / quoted-string ) ] te-ext = OWS ";" OWS token [ "=" ( token / quoted-string ) ]
te-params = OWS ";" OWS "q=" qvalue *te-ext te-params = OWS ";" OWS "q=" qvalue *te-ext
time-of-day = hour ":" minute ":" second time-of-day = hour ":" minute ":" second
token = 1*tchar token = 1*tchar
trailer-part = *( entity-header CRLF ) trailer-part = *( entity-header CRLF )
skipping to change at page 73, line 29 skipping to change at page 73, line 45
; HTTP-message defined but not used ; HTTP-message defined but not used
; Host defined but not used ; Host defined but not used
; Request defined but not used ; Request defined but not used
; Response defined but not used ; Response defined but not used
; TE defined but not used ; TE defined but not used
; URI defined but not used ; URI defined but not used
; URI-reference defined but not used ; URI-reference defined but not used
; http-URI defined but not used ; http-URI defined but not used
; https-URI defined but not used ; https-URI defined but not used
; partial-URI defined but not used ; partial-URI defined but not used
; special defined but not used
Appendix D. Change Log (to be removed by RFC Editor before publication) Appendix D. Change Log (to be removed by RFC Editor before publication)
D.1. Since RFC2616 D.1. Since RFC2616
Extracted relevant partitions from [RFC2616]. Extracted relevant partitions from [RFC2616].
D.2. Since draft-ietf-httpbis-p1-messaging-00 D.2. Since draft-ietf-httpbis-p1-messaging-00
Closed issues: Closed issues:
skipping to change at page 79, line 44 skipping to change at page 80, line 16
o <http://tools.ietf.org/wg/httpbis/trac/ticket/194>: "disallow o <http://tools.ietf.org/wg/httpbis/trac/ticket/194>: "disallow
control characters in quoted-pair" control characters in quoted-pair"
Partly resolved issues: Partly resolved issues:
o <http://tools.ietf.org/wg/httpbis/trac/ticket/148>: "update IANA o <http://tools.ietf.org/wg/httpbis/trac/ticket/148>: "update IANA
requirements wrt Transfer-Coding values" (add the IANA requirements wrt Transfer-Coding values" (add the IANA
Considerations subsection) Considerations subsection)
D.10. Since draft-ietf-httpbis-p1-messaging-08
Closed issues:
o <http://tools.ietf.org/wg/httpbis/trac/ticket/201>: "header
parsing, treatment of leading and trailing OWS"
Partly resolved issues:
o <http://tools.ietf.org/wg/httpbis/trac/ticket/200>: "use of term
"word" when talking about header structure"
Index Index
A A
application/http Media Type 55 application/http Media Type 56
C C
cache 12 cache 13
cacheable 13 cacheable 14
chunked (Coding Format) 32 chunked (Coding Format) 32
client 10 client 10
Coding Format Coding Format
chunked 32 chunked 32
compress 34 compress 34
deflate 35 deflate 35
gzip 35 gzip 35
compress (Coding Format) 34 compress (Coding Format) 34
connection 10 connection 10
Connection header 44 Connection header 44
Content-Length header 45 Content-Length header 45
D D
Date header 46 Date header 46
deflate (Coding Format) 35 deflate (Coding Format) 35
downstream 12 downstream 12
G G
gateway 12 gateway 13
Grammar Grammar
absolute-URI 15 absolute-URI 16
ALPHA 7 ALPHA 7
asctime-date 31 asctime-date 31
attribute 31 attribute 32
authority 15 authority 16
BWS 9 BWS 9
chunk 33 chunk 33
chunk-data 33 chunk-data 33
chunk-ext 33 chunk-ext 33
chunk-ext-name 33 chunk-ext-name 33
chunk-ext-val 33 chunk-ext-val 33
chunk-size 33 chunk-size 33
Chunked-Body 33 Chunked-Body 33
comment 21 comment 21
Connection 44 Connection 44
skipping to change at page 80, line 51 skipping to change at page 81, line 35
Connection-v 44 Connection-v 44
Content-Length 45 Content-Length 45
Content-Length-v 45 Content-Length-v 45
CR 7 CR 7
CRLF 7 CRLF 7
ctext 21 ctext 21
CTL 7 CTL 7
Date 46 Date 46
Date-v 46 Date-v 46
date1 30 date1 30
date2 31 date2 32
date3 31 date3 32
day 30 day 30
day-name 30 day-name 30
day-name-l 30 day-name-l 30
DIGIT 7 DIGIT 7
DQUOTE 7 DQUOTE 7
extension-code 28 extension-code 29
extension-method 24 extension-method 25
field-content 19 field-content 20
field-name 19 field-name 20
field-value 19 field-value 20
general-header 23 general-header 24
GMT 30 GMT 30
header-field 19 header-field 20
HEXDIG 7 HEXDIG 7
Host 47 Host 47
Host-v 47 Host-v 47
hour 30 hour 30
HTTP-date 29 HTTP-date 30
HTTP-message 18 HTTP-message 19
HTTP-Prot-Name 14 HTTP-Prot-Name 15
http-URI 16 http-URI 16
HTTP-Version 14 HTTP-Version 15
https-URI 17 https-URI 18
last-chunk 33 last-chunk 33
LF 7 LF 7
message-body 21 message-body 22
Method 24 Method 25
minute 30 minute 30
month 30 month 30
obs-date 30 obs-date 31
obs-text 9 obs-text 10
OCTET 7 OCTET 7
OWS 9 OWS 9
path-absolute 15 path-absolute 16
port 15 port 16
product 35 product 35
product-version 35 product-version 35
protocol-name 52 protocol-name 52
protocol-version 52 protocol-version 52
pseudonym 52 pseudonym 52
qdtext 9 qdtext 10
qdtext-nf 33 qdtext-nf 33
query 15 query 16
quoted-cpair 21 quoted-cpair 22
quoted-pair 9 quoted-pair 10
quoted-str-nf 33 quoted-str-nf 33
quoted-string 9 quoted-string 10
qvalue 36 qvalue 36
Reason-Phrase 28 Reason-Phrase 29
received-by 52 received-by 52
received-protocol 52 received-protocol 52
Request 24 Request 25
Request-Line 24 Request-Line 25
request-target 24 request-target 25
Response 27 Response 28
rfc850-date 31 rfc850-date 31
rfc1123-date 30 rfc1123-date 30
RWS 9 RWS 9
second 30 second 30
SP 7 SP 7
Status-Code 28 special 9
Status-Line 27 Status-Code 29
Status-Line 28
t-codings 48 t-codings 48
tchar 9 tchar 9
TE 48 TE 48
te-ext 48 te-ext 48
te-params 48 te-params 48
TE-v 48 TE-v 48
time-of-day 30 time-of-day 30
token 9 token 9
Trailer 49 Trailer 49
trailer-part 33 trailer-part 33
Trailer-v 49 Trailer-v 49
transfer-coding 31 transfer-coding 31
Transfer-Encoding 50 Transfer-Encoding 50
Transfer-Encoding-v 50 Transfer-Encoding-v 50
transfer-extension 31 transfer-extension 31
transfer-parameter 31 transfer-parameter 32
Upgrade 50 Upgrade 50
Upgrade-v 50 Upgrade-v 50
uri-host 15 uri-host 16
URI-reference 15 URI-reference 16
value 31 value 32
VCHAR 7 VCHAR 7
Via 52 Via 52
Via-v 52 Via-v 52
WSP 7 WSP 7
year 30 year 30
gzip (Coding Format) 35 gzip (Coding Format) 35
H H
header field 18 header field 19
header section 18 header section 19
Headers Headers
Connection 44 Connection 44
Content-Length 45 Content-Length 45
Date 46 Date 46
Host 47 Host 47
TE 48 TE 48
Trailer 49 Trailer 49
Transfer-Encoding 49 Transfer-Encoding 50
Upgrade 50 Upgrade 50
Via 52 Via 52
headers 18 headers 19
Host header 47 Host header 47
http URI scheme 16 http URI scheme 16
https URI scheme 17 https URI scheme 17
I I
inbound 12 inbound 12
M M
Media Type Media Type
application/http 55 application/http 56
message/http 54 message/http 54
message 10 message 11
message/http Media Type 54 message/http Media Type 54
O O
origin server 10 origin server 11
outbound 12 outbound 12
P P
proxy 12 proxy 12
R R
request 10 request 11
resource 15 resource 16
response 10 response 11
reverse proxy 12 reverse proxy 13
S S
server 10 server 10
T T
TE header 48 TE header 48
Trailer header 49 Trailer header 49
Transfer-Encoding header 49 Transfer-Encoding header 50
tunnel 12 tunnel 13
U U
Upgrade header 50 Upgrade header 50
upstream 12 upstream 12
URI scheme URI scheme
http 16 http 16
https 17 https 17
user agent 10 user agent 11
V V
Via header 52 Via header 52
Authors' Addresses Authors' Addresses
Roy T. Fielding (editor) Roy T. Fielding (editor)
Day Software Day Software
23 Corporate Plaza DR, Suite 280 23 Corporate Plaza DR, Suite 280
Newport Beach, CA 92660 Newport Beach, CA 92660
 End of changes. 81 change blocks. 
165 lines changed or deleted 221 lines changed or added

This html diff was produced by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/