draft-ietf-httpbis-p4-conditional-06.txt   draft-ietf-httpbis-p4-conditional-07.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 One Laptop per Child Intended status: Standards Track One Laptop per Child
Expires: September 10, 2009 J. Mogul Expires: January 14, 2010 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
March 9, 2009 July 13, 2009
HTTP/1.1, part 4: Conditional Requests HTTP/1.1, part 4: Conditional Requests
draft-ietf-httpbis-p4-conditional-06 draft-ietf-httpbis-p4-conditional-07
Status of this Memo 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. This document may contain material
from IETF Documents or IETF Contributions published or made publicly from IETF Documents or IETF Contributions published or made publicly
available before November 10, 2008. The person(s) controlling the available before November 10, 2008. The person(s) controlling the
copyright in some of this material may not have granted the IETF copyright in some of this material may not have granted the IETF
Trust the right to allow modifications of such material outside the Trust the right to allow modifications of such material outside the
IETF Standards Process. Without obtaining an adequate license from IETF Standards Process. Without obtaining an adequate license from
skipping to change at page 2, line 10 skipping to change at page 2, line 10
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 September 10, 2009. This Internet-Draft will expire on January 14, 2010.
Copyright Notice Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the Copyright (c) 2009 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 in effect on the date of
publication of this document (http://trustee.ietf.org/license-info). publication of this document (http://trustee.ietf.org/license-info).
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 2, line 42 skipping to change at page 2, line 42
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/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://tools.ietf.org/wg/httpbis/>. <http://tools.ietf.org/wg/httpbis/>.
The changes in this draft are summarized in Appendix C.7. The changes in this draft are summarized in Appendix C.8.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. Requirements . . . . . . . . . . . . . . . . . . . . . . . 4 1.1. Requirements . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Syntax Notation . . . . . . . . . . . . . . . . . . . . . 4 1.2. Syntax Notation . . . . . . . . . . . . . . . . . . . . . 4
1.2.1. Core Rules . . . . . . . . . . . . . . . . . . . . . . 5 1.2.1. Core Rules . . . . . . . . . . . . . . . . . . . . . . 5
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 . . . . . . . . . . . . . . . . . . . . 5
2. Entity Tags . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Entity Tags . . . . . . . . . . . . . . . . . . . . . . . . . 5
skipping to change at page 3, line 38 skipping to change at page 3, line 38
8. Security Considerations . . . . . . . . . . . . . . . . . . . 18 8. Security Considerations . . . . . . . . . . . . . . . . . . . 18
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 18 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 18
10.1. Normative References . . . . . . . . . . . . . . . . . . . 18 10.1. Normative References . . . . . . . . . . . . . . . . . . . 18
10.2. Informative References . . . . . . . . . . . . . . . . . . 19 10.2. Informative References . . . . . . . . . . . . . . . . . . 19
Appendix A. Compatibility with Previous Versions . . . . . . . . 19 Appendix A. Compatibility with Previous Versions . . . . . . . . 19
A.1. Changes from RFC 2616 . . . . . . . . . . . . . . . . . . 19 A.1. Changes from RFC 2616 . . . . . . . . . . . . . . . . . . 19
Appendix B. Collected ABNF . . . . . . . . . . . . . . . . . . . 20 Appendix B. Collected ABNF . . . . . . . . . . . . . . . . . . . 20
Appendix C. Change Log (to be removed by RFC Editor before Appendix C. Change Log (to be removed by RFC Editor before
publication) . . . . . . . . . . . . . . . . . . . . 20 publication) . . . . . . . . . . . . . . . . . . . . 20
C.1. Since RFC2616 . . . . . . . . . . . . . . . . . . . . . . 21 C.1. Since RFC2616 . . . . . . . . . . . . . . . . . . . . . . 20
C.2. Since draft-ietf-httpbis-p4-conditional-00 . . . . . . . . 21 C.2. Since draft-ietf-httpbis-p4-conditional-00 . . . . . . . . 21
C.3. Since draft-ietf-httpbis-p4-conditional-01 . . . . . . . . 21 C.3. Since draft-ietf-httpbis-p4-conditional-01 . . . . . . . . 21
C.4. Since draft-ietf-httpbis-p4-conditional-02 . . . . . . . . 21 C.4. Since draft-ietf-httpbis-p4-conditional-02 . . . . . . . . 21
C.5. Since draft-ietf-httpbis-p4-conditional-03 . . . . . . . . 21 C.5. Since draft-ietf-httpbis-p4-conditional-03 . . . . . . . . 21
C.6. Since draft-ietf-httpbis-p4-conditional-04 . . . . . . . . 22 C.6. Since draft-ietf-httpbis-p4-conditional-04 . . . . . . . . 22
C.7. Since draft-ietf-httpbis-p4-conditional-05 . . . . . . . . 22 C.7. Since draft-ietf-httpbis-p4-conditional-05 . . . . . . . . 22
C.8. Since draft-ietf-httpbis-p4-conditional-06 . . . . . . . . 22
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 23 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 23
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
skipping to change at page 5, line 19 skipping to change at page 5, line 19
The core rules below are defined in Section 1.2.2 of [Part1]: The core rules below are defined in Section 1.2.2 of [Part1]:
quoted-string = <quoted-string, defined in [Part1], Section 1.2.2> quoted-string = <quoted-string, defined in [Part1], Section 1.2.2>
OWS = <OWS, defined in [Part1], Section 1.2.2> OWS = <OWS, defined in [Part1], Section 1.2.2>
1.2.2. ABNF Rules defined in other Parts of the Specification 1.2.2. ABNF Rules defined in other Parts of the Specification
The ABNF rules below are defined in other parts: The ABNF rules below are defined in other parts:
HTTP-date = <HTTP-date, defined in [Part1], Section 3.2.1> HTTP-date = <HTTP-date, defined in [Part1], Section 3.2>
2. Entity Tags 2. Entity Tags
Entity tags are used for comparing two or more entities from the same Entity tags are used for comparing two or more entities from the same
requested resource. HTTP/1.1 uses entity tags in the ETag requested resource. HTTP/1.1 uses entity tags in the ETag
(Section 6.1), If-Match (Section 6.2), If-None-Match (Section 6.4), (Section 6.1), If-Match (Section 6.2), If-None-Match (Section 6.4),
and If-Range (Section 5.3 of [Part5]) header fields. The definition and If-Range (Section 5.3 of [Part5]) header fields. The definition
of how they are used and compared as cache validators is in of how they are used and compared as cache validators is in
Section 4. An entity tag consists of an opaque quoted string, Section 4. An entity tag consists of an opaque quoted string,
possibly prefixed by a weakness indicator. possibly prefixed by a weakness indicator.
entity-tag = [ weak ] opaque-tag entity-tag = [ weak ] opaque-tag
weak = "W/" weak = %x57.2F ; "W/", case-sensitive
opaque-tag = quoted-string opaque-tag = quoted-string
A "strong entity tag" MAY be shared by two entities of a resource A "strong entity tag" MAY be shared by two entities of a resource
only if they are equivalent by octet equality. only if they are equivalent by octet equality.
A "weak entity tag," indicated by the "W/" prefix, MAY be shared by A "weak entity tag," indicated by the "W/" prefix, MAY be shared by
two entities of a resource only if the entities are equivalent and two entities of a resource only if the entities are equivalent and
could be substituted for each other with no significant change in could be substituted for each other with no significant change in
semantics. A weak entity tag can only be used for weak comparison. semantics. A weak entity tag can only be used for weak comparison.
skipping to change at page 18, line 33 skipping to change at page 18, line 33
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-06 and Message Parsing", draft-ietf-httpbis-p1-messaging-07
(work in progress), March 2009. (work in progress), July 2009.
[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-06 (work Partial Responses", draft-ietf-httpbis-p5-range-07 (work
in progress), March 2009. in progress), July 2009.
[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", Nottingham, M., Ed., and J. Reschke, Ed., "HTTP/1.1, part
draft-ietf-httpbis-p6-cache-06 (work in progress), 6: Caching", draft-ietf-httpbis-p6-cache-07 (work in
March 2009. progress), July 2009.
[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 20, line 10 skipping to change at page 20, line 10
A.1. Changes from RFC 2616 A.1. Changes from RFC 2616
Allow weak entity tags in all requests except range requests Allow weak entity tags in all requests except range requests
(Sections 4 and 6.4). (Sections 4 and 6.4).
Appendix B. Collected ABNF Appendix B. Collected ABNF
ETag = "ETag:" OWS ETag-v ETag = "ETag:" OWS ETag-v
ETag-v = entity-tag ETag-v = entity-tag
HTTP-date = <HTTP-date, defined in [Part1], Section 3.2.1> HTTP-date = <HTTP-date, defined in [Part1], Section 3.2>
If-Match = "If-Match:" OWS If-Match-v If-Match = "If-Match:" OWS If-Match-v
If-Match-v = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS If-Match-v = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS
entity-tag ] ) ) entity-tag ] ) )
If-Modified-Since = "If-Modified-Since:" OWS If-Modified-Since-v If-Modified-Since = "If-Modified-Since:" OWS If-Modified-Since-v
If-Modified-Since-v = HTTP-date If-Modified-Since-v = HTTP-date
If-None-Match = "If-None-Match:" OWS If-None-Match-v If-None-Match = "If-None-Match:" OWS If-None-Match-v
If-None-Match-v = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS If-None-Match-v = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS
entity-tag ] ) ) entity-tag ] ) )
If-Unmodified-Since = "If-Unmodified-Since:" OWS If-Unmodified-Since = "If-Unmodified-Since:" OWS
skipping to change at page 20, line 35 skipping to change at page 20, line 35
Last-Modified-v = HTTP-date Last-Modified-v = HTTP-date
OWS = <OWS, defined in [Part1], Section 1.2.2> OWS = <OWS, defined in [Part1], Section 1.2.2>
entity-tag = [ weak ] opaque-tag entity-tag = [ weak ] opaque-tag
opaque-tag = quoted-string opaque-tag = quoted-string
quoted-string = <quoted-string, defined in [Part1], Section 1.2.2> quoted-string = <quoted-string, defined in [Part1], Section 1.2.2>
weak = "W/" weak = %x57.2F ; W/
ABNF diagnostics: ABNF diagnostics:
; ETag defined but not used ; ETag defined but not used
; If-Match defined but not used ; If-Match defined but not used
; If-Modified-Since defined but not used ; If-Modified-Since defined but not used
; If-None-Match defined but not used ; If-None-Match defined but not used
; If-Unmodified-Since defined but not used ; If-Unmodified-Since defined but not used
; Last-Modified defined but not used ; Last-Modified defined but not used
skipping to change at page 22, line 26 skipping to change at page 22, line 26
value format definitions. value format definitions.
C.7. Since draft-ietf-httpbis-p4-conditional-05 C.7. Since draft-ietf-httpbis-p4-conditional-05
Final work on ABNF conversion Final work on ABNF conversion
(<http://tools.ietf.org/wg/httpbis/trac/ticket/36>): (<http://tools.ietf.org/wg/httpbis/trac/ticket/36>):
o Add appendix containing collected and expanded ABNF, reorganize o Add appendix containing collected and expanded ABNF, reorganize
ABNF introduction. ABNF introduction.
C.8. Since draft-ietf-httpbis-p4-conditional-06
Closed issues:
o <http://tools.ietf.org/wg/httpbis/trac/ticket/153>: "case-
sensitivity of etag weakness indicator"
Index Index
3 3
304 Not Modified (status code) 6 304 Not Modified (status code) 6
4 4
412 Precondition Failed (status code) 6 412 Precondition Failed (status code) 6
E E
ETag header 11 ETag header 11
 End of changes. 15 change blocks. 
17 lines changed or deleted 25 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/