draft-ietf-httpbis-p4-conditional-17.txt   draft-ietf-httpbis-p4-conditional-18.txt 
HTTPbis Working Group R. Fielding, Ed. HTTPbis Working Group R. Fielding, Ed.
Internet-Draft Adobe Internet-Draft Adobe
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: May 3, 2012 J. Mogul Expires: July 7, 2012 J. Mogul
HP HP
H. Frystyk H. Frystyk
Microsoft Microsoft
L. Masinter L. Masinter
Adobe Adobe
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 31, 2011 January 4, 2012
HTTP/1.1, part 4: Conditional Requests HTTP/1.1, part 4: Conditional Requests
draft-ietf-httpbis-p4-conditional-17 draft-ietf-httpbis-p4-conditional-18
Abstract Abstract
The Hypertext Transfer Protocol (HTTP) is an application-level The Hypertext Transfer Protocol (HTTP) is an application-level
protocol for distributed, collaborative, hypertext information protocol for distributed, collaborative, hypertext information
systems. HTTP has been in use by the World Wide Web global systems. HTTP has been in use by the World Wide Web global
information initiative since 1990. This document is Part 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. "HTTP/1.1" and, taken together, obsoletes RFC 2616.
skipping to change at page 1, line 49 skipping to change at page 1, line 49
Discussion of this draft should take place on the HTTPBIS working Discussion of this draft should take place on the HTTPBIS working
group mailing list (ietf-http-wg@w3.org), which is archived at group mailing list (ietf-http-wg@w3.org), which is archived at
<http://lists.w3.org/Archives/Public/ietf-http-wg/>. <http://lists.w3.org/Archives/Public/ietf-http-wg/>.
The current issues list is at The current issues list is at
<http://tools.ietf.org/wg/httpbis/trac/report/3> and related <http://tools.ietf.org/wg/httpbis/trac/report/3> and related
documents (including fancy diffs) can be found at documents (including fancy diffs) can be found at
<http://tools.ietf.org/wg/httpbis/>. <http://tools.ietf.org/wg/httpbis/>.
The changes in this draft are summarized in Appendix C.18. The changes in this draft are summarized in Appendix C.19.
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 May 3, 2012. This Internet-Draft will expire on July 7, 2012.
Copyright Notice Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at page 3, line 12 skipping to change at page 3, line 12
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1. Conformance and Error Handling . . . . . . . . . . . . . . 5 1.1. Conformance and Error Handling . . . . . . . . . . . . . . 5
1.2. Syntax Notation . . . . . . . . . . . . . . . . . . . . . 6 1.2. Syntax Notation . . . . . . . . . . . . . . . . . . . . . 6
2. Validators . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2. Validators . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1. Weak versus Strong . . . . . . . . . . . . . . . . . . . . 6 2.1. Weak versus Strong . . . . . . . . . . . . . . . . . . . . 6
2.2. Last-Modified . . . . . . . . . . . . . . . . . . . . . . 8 2.2. Last-Modified . . . . . . . . . . . . . . . . . . . . . . 8
2.2.1. Generation . . . . . . . . . . . . . . . . . . . . . . 8 2.2.1. Generation . . . . . . . . . . . . . . . . . . . . . . 8
2.2.2. Comparison . . . . . . . . . . . . . . . . . . . . . . 9 2.2.2. Comparison . . . . . . . . . . . . . . . . . . . . . . 9
2.3. ETag . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3. ETag . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.1. Generation . . . . . . . . . . . . . . . . . . . . . . 11 2.3.1. Generation . . . . . . . . . . . . . . . . . . . . . . 11
2.3.2. Comparison . . . . . . . . . . . . . . . . . . . . . . 11 2.3.2. Comparison . . . . . . . . . . . . . . . . . . . . . . 12
2.3.3. Example: Entity-tags varying on Content-Negotiated 2.3.3. Example: Entity-tags varying on Content-Negotiated
Resources . . . . . . . . . . . . . . . . . . . . . . 12 Resources . . . . . . . . . . . . . . . . . . . . . . 12
2.4. Rules for When to Use Entity-tags and Last-Modified 2.4. Rules for When to Use Entity-tags and Last-Modified
Dates . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Dates . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3. Precondition Header Fields . . . . . . . . . . . . . . . . . . 14 3. Precondition Header Fields . . . . . . . . . . . . . . . . . . 15
3.1. If-Match . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.1. If-Match . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2. If-None-Match . . . . . . . . . . . . . . . . . . . . . . 15 3.2. If-None-Match . . . . . . . . . . . . . . . . . . . . . . 16
3.3. If-Modified-Since . . . . . . . . . . . . . . . . . . . . 17 3.3. If-Modified-Since . . . . . . . . . . . . . . . . . . . . 17
3.4. If-Unmodified-Since . . . . . . . . . . . . . . . . . . . 18 3.4. If-Unmodified-Since . . . . . . . . . . . . . . . . . . . 18
3.5. If-Range . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.5. If-Range . . . . . . . . . . . . . . . . . . . . . . . . . 19
4. Status Code Definitions . . . . . . . . . . . . . . . . . . . 19 4. Status Code Definitions . . . . . . . . . . . . . . . . . . . 19
4.1. 304 Not Modified . . . . . . . . . . . . . . . . . . . . . 19 4.1. 304 Not Modified . . . . . . . . . . . . . . . . . . . . . 19
4.2. 412 Precondition Failed . . . . . . . . . . . . . . . . . 20 4.2. 412 Precondition Failed . . . . . . . . . . . . . . . . . 20
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20
5.1. Status Code Registration . . . . . . . . . . . . . . . . . 20 5.1. Status Code Registration . . . . . . . . . . . . . . . . . 20
5.2. Header Field Registration . . . . . . . . . . . . . . . . 20 5.2. Header Field Registration . . . . . . . . . . . . . . . . 20
6. Security Considerations . . . . . . . . . . . . . . . . . . . 20 6. Security Considerations . . . . . . . . . . . . . . . . . . . 21
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 21 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 21
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 21 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 21
8.1. Normative References . . . . . . . . . . . . . . . . . . . 21 8.1. Normative References . . . . . . . . . . . . . . . . . . . 21
8.2. Informative References . . . . . . . . . . . . . . . . . . 21 8.2. Informative References . . . . . . . . . . . . . . . . . . 22
Appendix A. Changes from RFC 2616 . . . . . . . . . . . . . . . . 22 Appendix A. Changes from RFC 2616 . . . . . . . . . . . . . . . . 22
Appendix B. Collected ABNF . . . . . . . . . . . . . . . . . . . 22 Appendix B. Collected ABNF . . . . . . . . . . . . . . . . . . . 23
Appendix C. Change Log (to be removed by RFC Editor before Appendix C. Change Log (to be removed by RFC Editor before
publication) . . . . . . . . . . . . . . . . . . . . 23 publication) . . . . . . . . . . . . . . . . . . . . 23
C.1. Since RFC 2616 . . . . . . . . . . . . . . . . . . . . . . 23 C.1. Since RFC 2616 . . . . . . . . . . . . . . . . . . . . . . 23
C.2. Since draft-ietf-httpbis-p4-conditional-00 . . . . . . . . 23 C.2. Since draft-ietf-httpbis-p4-conditional-00 . . . . . . . . 23
C.3. Since draft-ietf-httpbis-p4-conditional-01 . . . . . . . . 23 C.3. Since draft-ietf-httpbis-p4-conditional-01 . . . . . . . . 24
C.4. Since draft-ietf-httpbis-p4-conditional-02 . . . . . . . . 23 C.4. Since draft-ietf-httpbis-p4-conditional-02 . . . . . . . . 24
C.5. Since draft-ietf-httpbis-p4-conditional-03 . . . . . . . . 24 C.5. Since draft-ietf-httpbis-p4-conditional-03 . . . . . . . . 24
C.6. Since draft-ietf-httpbis-p4-conditional-04 . . . . . . . . 24 C.6. Since draft-ietf-httpbis-p4-conditional-04 . . . . . . . . 24
C.7. Since draft-ietf-httpbis-p4-conditional-05 . . . . . . . . 24 C.7. Since draft-ietf-httpbis-p4-conditional-05 . . . . . . . . 25
C.8. Since draft-ietf-httpbis-p4-conditional-06 . . . . . . . . 24 C.8. Since draft-ietf-httpbis-p4-conditional-06 . . . . . . . . 25
C.9. Since draft-ietf-httpbis-p4-conditional-07 . . . . . . . . 24 C.9. Since draft-ietf-httpbis-p4-conditional-07 . . . . . . . . 25
C.10. Since draft-ietf-httpbis-p4-conditional-08 . . . . . . . . 25 C.10. Since draft-ietf-httpbis-p4-conditional-08 . . . . . . . . 25
C.11. Since draft-ietf-httpbis-p4-conditional-09 . . . . . . . . 25 C.11. Since draft-ietf-httpbis-p4-conditional-09 . . . . . . . . 25
C.12. Since draft-ietf-httpbis-p4-conditional-10 . . . . . . . . 25 C.12. Since draft-ietf-httpbis-p4-conditional-10 . . . . . . . . 25
C.13. Since draft-ietf-httpbis-p4-conditional-11 . . . . . . . . 25 C.13. Since draft-ietf-httpbis-p4-conditional-11 . . . . . . . . 26
C.14. Since draft-ietf-httpbis-p4-conditional-12 . . . . . . . . 25 C.14. Since draft-ietf-httpbis-p4-conditional-12 . . . . . . . . 26
C.15. Since draft-ietf-httpbis-p4-conditional-13 . . . . . . . . 25 C.15. Since draft-ietf-httpbis-p4-conditional-13 . . . . . . . . 26
C.16. Since draft-ietf-httpbis-p4-conditional-14 . . . . . . . . 26 C.16. Since draft-ietf-httpbis-p4-conditional-14 . . . . . . . . 26
C.17. Since draft-ietf-httpbis-p4-conditional-15 . . . . . . . . 26 C.17. Since draft-ietf-httpbis-p4-conditional-15 . . . . . . . . 26
C.18. Since draft-ietf-httpbis-p4-conditional-16 . . . . . . . . 26 C.18. Since draft-ietf-httpbis-p4-conditional-16 . . . . . . . . 26
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 C.19. Since draft-ietf-httpbis-p4-conditional-17 . . . . . . . . 27
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1. Introduction 1. Introduction
This document defines the HTTP/1.1 conditional request mechanisms, This document defines the HTTP/1.1 conditional request mechanisms,
including both metadata for indicating/observing changes in resource including both metadata for indicating/observing changes in resource
representations and request header fields that specify preconditions representations and request header fields that specify preconditions
on that metadata be checked before performing the request method. on that metadata be checked before performing the request method.
Conditional GET requests are the most efficient mechanism for HTTP Conditional GET requests are the most efficient mechanism for HTTP
cache updates [Part6]. Conditionals can also be applied to state- cache updates [Part6]. Conditionals can also be applied to state-
changing methods, such as PUT and DELETE, to prevent the "lost changing methods, such as PUT and DELETE, to prevent the "lost
skipping to change at page 6, line 34 skipping to change at page 6, line 34
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), and VCHAR (any visible US-ASCII sequence of data), SP (space), and VCHAR (any visible US-ASCII
character). character).
The ABNF rules below are defined in [Part1] and [Part2]: The ABNF rules below are defined in [Part1] and [Part2]:
OWS = <OWS, defined in [Part1], Section 1.2.2> OWS = <OWS, defined in [Part1], Section 1.2.2>
quoted-string = <quoted-string, defined in [Part1], Section 3.2.3> obs-text = <obs-text, defined in [Part1], Section 3.2.3>
HTTP-date = <HTTP-date, defined in [Part2], Section 8> HTTP-date = <HTTP-date, defined in [Part2], Section 8>
2. Validators 2. Validators
This specification defines two forms of metadata that are commonly This specification defines two forms of metadata that are commonly
used to observe resource state and test for preconditions: used to observe resource state and test for preconditions:
modification dates and opaque entity tags. Additional metadata that modification dates and opaque entity tags. Additional metadata that
reflects resource state has been defined by various extensions of reflects resource state has been defined by various extensions of
HTTP, such as WebDAV [RFC4918], that are beyond the scope of this HTTP, such as WebDAV [RFC4918], that are beyond the scope of this
specification. A resource metadata value is referred to as a specification. A resource metadata value is referred to as a
skipping to change at page 10, line 47 skipping to change at page 10, line 47
resource, regardless of whether those multiple representations are resource, regardless of whether those multiple representations are
due to resource state changes over time, content negotiation due to resource state changes over time, content negotiation
resulting in multiple representations being valid at the same time, resulting in multiple representations being valid at the same time,
or both. An entity-tag consists of an opaque quoted string, possibly or both. An entity-tag consists of an opaque quoted string, possibly
prefixed by a weakness indicator. prefixed by a weakness indicator.
ETag = entity-tag ETag = entity-tag
entity-tag = [ weak ] opaque-tag entity-tag = [ weak ] opaque-tag
weak = %x57.2F ; "W/", case-sensitive weak = %x57.2F ; "W/", case-sensitive
opaque-tag = quoted-string opaque-tag = DQUOTE *etagc DQUOTE
etagc = %x21 / %x23-7E / obs-text
; VCHAR except double quotes, plus obs-text
Note: Previously, opaque-tag was defined to be a quoted-string
([RFC2616], Section 3.11), thus some recipients might perform
backslash unescaping. Servers therefore ought to avoid backslash
characters in entity tags.
An entity-tag can be more reliable for validation than a modification An entity-tag can be more reliable for validation than a modification
date in situations where it is inconvenient to store modification date in situations where it is inconvenient to store modification
dates, where the one-second resolution of HTTP date values is not dates, where the one-second resolution of HTTP date values is not
sufficient, or where modification dates are not consistently sufficient, or where modification dates are not consistently
maintained. maintained.
Examples: Examples:
ETag: "xyzzy" ETag: "xyzzy"
skipping to change at page 21, line 16 skipping to change at page 21, line 35
See Section 11 of [Part1]. See Section 11 of [Part1].
8. References 8. References
8.1. Normative References 8.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-17 and Message Parsing", draft-ietf-httpbis-p1-messaging-18
(work in progress), October 2011. (work in progress), January 2012.
[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-17 (work in Semantics", draft-ietf-httpbis-p2-semantics-18 (work in
progress), October 2011. progress), January 2012.
[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-17 and Content Negotiation", draft-ietf-httpbis-p3-payload-18
(work in progress), October 2011. (work in progress), January 2012.
[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-17 (work Partial Responses", draft-ietf-httpbis-p5-range-18 (work
in progress), October 2011. in progress), January 2012.
[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-17 (work in 6: Caching", draft-ietf-httpbis-p6-cache-18 (work in
progress), October 2011. progress), January 2012.
[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.
8.2. Informative References 8.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 22, line 18 skipping to change at page 22, line 37
September 2004. September 2004.
[RFC4918] Dusseault, L., Ed., "HTTP Extensions for Web Distributed [RFC4918] Dusseault, L., Ed., "HTTP Extensions for Web Distributed
Authoring and Versioning (WebDAV)", RFC 4918, June 2007. Authoring and Versioning (WebDAV)", RFC 4918, June 2007.
Appendix A. Changes from RFC 2616 Appendix A. 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 2.1 and 3.2). (Sections 2.1 and 3.2).
Change ETag header field ABNF not to use quoted-string, thus avoiding
escaping issues. (Section 2.3)
Change ABNF productions for header fields to only define the field Change ABNF productions for header fields to only define the field
value. (Section 3) value. (Section 3)
Appendix B. Collected ABNF Appendix B. Collected ABNF
ETag = entity-tag ETag = entity-tag
HTTP-date = <HTTP-date, defined in [Part2], Section 8> HTTP-date = <HTTP-date, defined in [Part2], Section 8>
If-Match = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS If-Match = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS
skipping to change at page 22, line 39 skipping to change at page 23, line 23
If-Modified-Since = HTTP-date If-Modified-Since = HTTP-date
If-None-Match = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS If-None-Match = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS
entity-tag ] ) ) entity-tag ] ) )
If-Unmodified-Since = HTTP-date If-Unmodified-Since = HTTP-date
Last-Modified = HTTP-date Last-Modified = 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
etagc = "!" / %x23-7E ; '#'-'~'
/ obs-text
opaque-tag = quoted-string obs-text = <obs-text, defined in [Part1], Section 3.2.3>
opaque-tag = DQUOTE *etagc DQUOTE
quoted-string = <quoted-string, defined in [Part1], Section 3.2.3>
weak = %x57.2F ; 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
Appendix C. Change Log (to be removed by RFC Editor before publication) Appendix C. Change Log (to be removed by RFC Editor before publication)
skipping to change at page 26, line 27 skipping to change at page 27, line 5
should be listed when dicussing contexts where L-M can be should be listed when dicussing contexts where L-M can be
considered strong" considered strong"
C.18. Since draft-ietf-httpbis-p4-conditional-16 C.18. Since draft-ietf-httpbis-p4-conditional-16
Closed issues: Closed issues:
o <http://tools.ietf.org/wg/httpbis/trac/ticket/186>: "Document o <http://tools.ietf.org/wg/httpbis/trac/ticket/186>: "Document
HTTP's error-handling philosophy" HTTP's error-handling philosophy"
C.19. Since draft-ietf-httpbis-p4-conditional-17
Closed issues:
o <http://tools.ietf.org/wg/httpbis/trac/ticket/306>: "does etag
value really use quoted-string"
Index Index
3 3
304 Not Modified (status code) 19 304 Not Modified (status code) 19
4 4
412 Precondition Failed (status code) 20 412 Precondition Failed (status code) 20
E E
ETag header field 10 ETag header field 10
G G
Grammar Grammar
entity-tag 10 entity-tag 10
ETag 10 ETag 10
etagc 10
If-Match 15 If-Match 15
If-Modified-Since 17 If-Modified-Since 17
If-None-Match 16 If-None-Match 16
If-Unmodified-Since 18 If-Unmodified-Since 18
Last-Modified 8 Last-Modified 8
opaque-tag 10 opaque-tag 10
weak 10 weak 10
H H
Header Fields Header Fields
ETag 10 ETag 10
If-Match 15 If-Match 15
If-Modified-Since 17 If-Modified-Since 17
If-None-Match 15 If-None-Match 16
If-Unmodified-Since 18 If-Unmodified-Since 18
Last-Modified 8 Last-Modified 8
I I
If-Match header field 15 If-Match header field 15
If-Modified-Since header field 17 If-Modified-Since header field 17
If-None-Match header field 15 If-None-Match header field 16
If-Unmodified-Since header field 18 If-Unmodified-Since header field 18
L L
Last-Modified header field 8 Last-Modified header field 8
M M
metadata 6 metadata 6
S S
selected representation 5 selected representation 5
 End of changes. 31 change blocks. 
38 lines changed or deleted 59 lines changed or added

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