draft-ietf-httpbis-p4-conditional-11.txt   draft-ietf-httpbis-p4-conditional-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
Intended status: Standards Track Alcatel-Lucent Intended status: Standards Track Alcatel-Lucent
Expires: February 5, 2011 J. Mogul Expires: March 6, 2011 J. Mogul
HP 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 4, 2010 September 2, 2010
HTTP/1.1, part 4: Conditional Requests HTTP/1.1, part 4: Conditional Requests
draft-ietf-httpbis-p4-conditional-11 draft-ietf-httpbis-p4-conditional-latest
Abstract Abstract
The Hypertext Transfer Protocol (HTTP) is an application-level The Hypertext Transfer Protocol (HTTP) is an application-level
protocol for distributed, collaborative, 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 4 of the information initiative since 1990. This document is Part 4 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 4 defines "HTTP/1.1" and, taken together, obsoletes RFC 2616. Part 4 defines
request header fields for indicating conditional requests and the request header fields for indicating conditional requests and the
rules for constructing responses to those requests. rules for constructing responses to those requests.
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://tools.ietf.org/wg/httpbis/trac/report/3> and related at <http://tools.ietf.org/wg/httpbis/trac/report/3> and related
documents (including fancy diffs) can be found at documents (including fancy diffs) can be found at
<http://tools.ietf.org/wg/httpbis/>. <http://tools.ietf.org/wg/httpbis/>.
The changes in this draft are summarized in Appendix C.12. The changes in this draft are summarized in Appendix C.13.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on February 5, 2011. This Internet-Draft will expire on March 6, 2011.
Copyright Notice Copyright Notice
Copyright (c) 2010 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 Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 3, line 7 skipping to change at page 3, line 7
modifications of such material outside the IETF Standards Process. modifications of such material outside the IETF Standards Process.
Without obtaining an adequate license from the person(s) controlling Without obtaining an adequate license from the person(s) controlling
the copyright in such materials, this document may not be modified the copyright in such materials, this document may not be modified
outside the IETF Standards Process, and derivative works of it may outside the IETF Standards Process, and derivative works of it may
not be created outside the IETF Standards Process, except to format not be created outside the IETF Standards Process, except to format
it for publication as an RFC or to translate it into languages other it for publication as an RFC or to translate it into languages other
than English. than English.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1. Requirements . . . . . . . . . . . . . . . . . . . . . . . 4 1.1. Requirements . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Syntax Notation . . . . . . . . . . . . . . . . . . . . . 4 1.2. Syntax Notation . . . . . . . . . . . . . . . . . . . . . 5
1.2.1. Core Rules . . . . . . . . . . . . . . . . . . . . . . 5 1.2.1. Core Rules . . . . . . . . . . . . . . . . . . . . . . 6
1.2.2. ABNF Rules defined in other Parts of the 1.2.2. ABNF Rules defined in other Parts of the
Specification . . . . . . . . . . . . . . . . . . . . 5 Specification . . . . . . . . . . . . . . . . . . . . 6
2. Entity-Tags . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Entity-Tags . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1. Example: Entity-tags varying on Content-Negotiated 2.1. Example: Entity-tags varying on Content-Negotiated
Resources . . . . . . . . . . . . . . . . . . . . . . . . 6 Resources . . . . . . . . . . . . . . . . . . . . . . . . 7
3. Status Code Definitions . . . . . . . . . . . . . . . . . . . 7 3. Status Code Definitions . . . . . . . . . . . . . . . . . . . 8
3.1. 304 Not Modified . . . . . . . . . . . . . . . . . . . . . 7 3.1. 304 Not Modified . . . . . . . . . . . . . . . . . . . . . 8
3.2. 412 Precondition Failed . . . . . . . . . . . . . . . . . 7 3.2. 412 Precondition Failed . . . . . . . . . . . . . . . . . 8
4. Weak and Strong Validators . . . . . . . . . . . . . . . . . . 8 4. Weak and Strong Validators . . . . . . . . . . . . . . . . . . 9
5. Rules for When to Use Entity-tags and Last-Modified Dates . . 10 5. Rules for When to Use Entity-tags and Last-Modified Dates . . 11
6. Header Field Definitions . . . . . . . . . . . . . . . . . . . 12 6. Header Field Definitions . . . . . . . . . . . . . . . . . . . 13
6.1. ETag . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 6.1. ETag . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.2. If-Match . . . . . . . . . . . . . . . . . . . . . . . . . 13 6.2. If-Match . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.3. If-Modified-Since . . . . . . . . . . . . . . . . . . . . 14 6.3. If-Modified-Since . . . . . . . . . . . . . . . . . . . . 15
6.4. If-None-Match . . . . . . . . . . . . . . . . . . . . . . 16 6.4. If-None-Match . . . . . . . . . . . . . . . . . . . . . . 17
6.5. If-Unmodified-Since . . . . . . . . . . . . . . . . . . . 17 6.5. If-Unmodified-Since . . . . . . . . . . . . . . . . . . . 18
6.6. Last-Modified . . . . . . . . . . . . . . . . . . . . . . 18 6.6. Last-Modified . . . . . . . . . . . . . . . . . . . . . . 19
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19
7.1. Status Code Registration . . . . . . . . . . . . . . . . . 19 7.1. Status Code Registration . . . . . . . . . . . . . . . . . 20
7.2. Header Field Registration . . . . . . . . . . . . . . . . 19 7.2. Header Field Registration . . . . . . . . . . . . . . . . 20
8. Security Considerations . . . . . . . . . . . . . . . . . . . 19 8. Security Considerations . . . . . . . . . . . . . . . . . . . 20
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 19 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 20
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 19 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 20
10.1. Normative References . . . . . . . . . . . . . . . . . . . 19 10.1. Normative References . . . . . . . . . . . . . . . . . . . 20
10.2. Informative References . . . . . . . . . . . . . . . . . . 20 10.2. Informative References . . . . . . . . . . . . . . . . . . 21
Appendix A. Changes from RFC 2616 . . . . . . . . . . . . . . . . 20 Appendix A. Changes from RFC 2616 . . . . . . . . . . . . . . . . 21
Appendix B. Collected ABNF . . . . . . . . . . . . . . . . . . . 21 Appendix B. Collected ABNF . . . . . . . . . . . . . . . . . . . 22
Appendix C. Change Log (to be removed by RFC Editor before Appendix C. Change Log (to be removed by RFC Editor before
publication) . . . . . . . . . . . . . . . . . . . . 21 publication) . . . . . . . . . . . . . . . . . . . . 22
C.1. Since RFC2616 . . . . . . . . . . . . . . . . . . . . . . 21 C.1. Since RFC2616 . . . . . . . . . . . . . . . . . . . . . . 22
C.2. Since draft-ietf-httpbis-p4-conditional-00 . . . . . . . . 22 C.2. Since draft-ietf-httpbis-p4-conditional-00 . . . . . . . . 23
C.3. Since draft-ietf-httpbis-p4-conditional-01 . . . . . . . . 22 C.3. Since draft-ietf-httpbis-p4-conditional-01 . . . . . . . . 23
C.4. Since draft-ietf-httpbis-p4-conditional-02 . . . . . . . . 22 C.4. Since draft-ietf-httpbis-p4-conditional-02 . . . . . . . . 23
C.5. Since draft-ietf-httpbis-p4-conditional-03 . . . . . . . . 22 C.5. Since draft-ietf-httpbis-p4-conditional-03 . . . . . . . . 23
C.6. Since draft-ietf-httpbis-p4-conditional-04 . . . . . . . . 23 C.6. Since draft-ietf-httpbis-p4-conditional-04 . . . . . . . . 24
C.7. Since draft-ietf-httpbis-p4-conditional-05 . . . . . . . . 23 C.7. Since draft-ietf-httpbis-p4-conditional-05 . . . . . . . . 24
C.8. Since draft-ietf-httpbis-p4-conditional-06 . . . . . . . . 23 C.8. Since draft-ietf-httpbis-p4-conditional-06 . . . . . . . . 24
C.9. Since draft-ietf-httpbis-p4-conditional-07 . . . . . . . . 23 C.9. Since draft-ietf-httpbis-p4-conditional-07 . . . . . . . . 24
C.10. Since draft-ietf-httpbis-p4-conditional-08 . . . . . . . . 23 C.10. Since draft-ietf-httpbis-p4-conditional-08 . . . . . . . . 24
C.11. Since draft-ietf-httpbis-p4-conditional-09 . . . . . . . . 23 C.11. Since draft-ietf-httpbis-p4-conditional-09 . . . . . . . . 24
C.12. Since draft-ietf-httpbis-p4-conditional-10 . . . . . . . . 24 C.12. Since draft-ietf-httpbis-p4-conditional-10 . . . . . . . . 25
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 C.13. Since draft-ietf-httpbis-p4-conditional-11 . . . . . . . . 25
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1. Introduction 1. Introduction
This document defines HTTP/1.1 response metadata for indicating This document defines HTTP/1.1 response metadata for indicating
potential changes to payload content, including modification time potential changes to payload content, including modification time
stamps and opaque entity-tags, and the HTTP conditional request stamps and opaque entity-tags, and the HTTP conditional request
mechanisms that allow preconditions to be placed on a request method. mechanisms that allow preconditions to be placed on a request method.
Conditional GET requests allow for efficient cache updates. Other Conditional GET requests allow for efficient cache updates. Other
conditional request methods are used to protect against overwriting conditional request methods are used to protect against overwriting
or misunderstanding the state of a resource that has been changed or misunderstanding the state of a resource that has been changed
unbeknownst to the requesting client. unbeknownst to the requesting client.
This document is currently disorganized in order to minimize the This document is currently disorganized in order to minimize the
changes between drafts and enable reviewers to see the smaller errata changes between drafts and enable reviewers to see the smaller errata
changes. The next draft will reorganize the sections to better changes. A future draft will reorganize the sections to better
reflect the content. In particular, the sections on resource reflect the content. In particular, the sections on resource
metadata will be discussed first and then followed by each metadata will be discussed first and then followed by each
conditional request-header, concluding with a definition of conditional request-header, concluding with a definition of
precedence and the expectation of ordering strong validator checks precedence and the expectation of ordering strong validator checks
before weak validator checks. It is likely that more content from before weak validator checks. It is likely that more content from
[Part6] will migrate to this part, where appropriate. The current [Part6] will migrate to this part, where appropriate. The current
mess reflects how widely dispersed these topics and associated mess reflects how widely dispersed these topics and associated
requirements had become in [RFC2616]. requirements had become in [RFC2616].
1.1. Requirements 1.1. Requirements
skipping to change at page 19, line 51 skipping to change at page 20, line 51
9. Acknowledgments 9. Acknowledgments
10. References 10. References
10.1. Normative References 10.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-11 and Message Parsing",
(work in progress), August 2010. draft-ietf-httpbis-p1-messaging-latest (work in progress),
September 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-11 and Content Negotiation",
(work in progress), August 2010. draft-ietf-httpbis-p3-payload-latest (work in progress),
September 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-11 (work Partial Responses", draft-ietf-httpbis-p5-range-latest
in progress), August 2010. (work in progress), September 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-11 (work in 6: Caching", draft-ietf-httpbis-p6-cache-latest (work in
progress), August 2010. progress), September 2010.
[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.
[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", STD 68, RFC 5234, January 2008. Specifications: ABNF", STD 68, RFC 5234, January 2008.
10.2. Informative References 10.2. Informative References
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
skipping to change at page 24, line 18 skipping to change at page 25, line 18
o <http://tools.ietf.org/wg/httpbis/trac/ticket/69>: "Clarify o <http://tools.ietf.org/wg/httpbis/trac/ticket/69>: "Clarify
'Requested Variant'" 'Requested Variant'"
o <http://tools.ietf.org/wg/httpbis/trac/ticket/109>: "Clarify o <http://tools.ietf.org/wg/httpbis/trac/ticket/109>: "Clarify
entity / representation / variant terminology" entity / representation / variant terminology"
o <http://tools.ietf.org/wg/httpbis/trac/ticket/220>: "consider o <http://tools.ietf.org/wg/httpbis/trac/ticket/220>: "consider
removing the 'changes from 2068' sections" removing the 'changes from 2068' sections"
C.13. Since draft-ietf-httpbis-p4-conditional-11
None yet.
Index Index
3 3
304 Not Modified (status code) 7 304 Not Modified (status code) 8
4 4
412 Precondition Failed (status code) 7 412 Precondition Failed (status code) 8
E E
ETag header 12 ETag header 13
G G
Grammar Grammar
entity-tag 5 entity-tag 6
ETag 12 ETag 13
ETag-v 12 ETag-v 13
If-Match 13 If-Match 14
If-Match-v 13 If-Match-v 14
If-Modified-Since 14 If-Modified-Since 15
If-Modified-Since-v 14 If-Modified-Since-v 15
If-None-Match 16 If-None-Match 17
If-None-Match-v 16 If-None-Match-v 17
If-Unmodified-Since 17 If-Unmodified-Since 18
If-Unmodified-Since-v 17 If-Unmodified-Since-v 18
Last-Modified 18 Last-Modified 19
Last-Modified-v 18 Last-Modified-v 19
opaque-tag 5 opaque-tag 6
weak 5 weak 6
H H
Headers Headers
ETag 12 ETag 13
If-Match 13 If-Match 14
If-Modified-Since 14 If-Modified-Since 15
If-None-Match 16 If-None-Match 17
If-Unmodified-Since 17 If-Unmodified-Since 18
Last-Modified 18 Last-Modified 19
I I
If-Match header 13 If-Match header 14
If-Modified-Since header 14 If-Modified-Since header 15
If-None-Match header 16 If-None-Match header 17
If-Unmodified-Since header 17 If-Unmodified-Since header 18
L L
Last-Modified header 18 Last-Modified header 19
S S
Status Codes Status Codes
304 Not Modified 7 304 Not Modified 8
412 Precondition Failed 7 412 Precondition Failed 8
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
USA USA
Phone: +1-949-706-5300 Phone: +1-949-706-5300
 End of changes. 23 change blocks. 
88 lines changed or deleted 96 lines changed or added

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