draft-ietf-httpbis-p6-cache-18.txt   draft-ietf-httpbis-p6-cache-latest.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: July 7, 2012 J. Mogul Expires: August 6, 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
M. Nottingham, Ed. M. Nottingham, Ed.
Rackspace Rackspace
J. Reschke, Ed. J. Reschke, Ed.
greenbytes greenbytes
January 4, 2012 February 3, 2012
HTTP/1.1, part 6: Caching HTTP/1.1, part 6: Caching
draft-ietf-httpbis-p6-cache-18 draft-ietf-httpbis-p6-cache-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, 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 6 of the information initiative since 1990. This document is Part 6 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 2, line 6 skipping to change at page 2, line 6
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.19. The changes in this draft are summarized in Appendix C.20.
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 July 7, 2012. This Internet-Draft will expire on August 6, 2012.
Copyright Notice Copyright Notice
Copyright (c) 2012 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
skipping to change at page 3, line 47 skipping to change at page 3, line 47
3.5. Vary . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.5. Vary . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.6. Warning . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.6. Warning . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.6.1. 110 Response is Stale . . . . . . . . . . . . . . . . 31 3.6.1. 110 Response is Stale . . . . . . . . . . . . . . . . 31
3.6.2. 111 Revalidation Failed . . . . . . . . . . . . . . . 31 3.6.2. 111 Revalidation Failed . . . . . . . . . . . . . . . 31
3.6.3. 112 Disconnected Operation . . . . . . . . . . . . . . 31 3.6.3. 112 Disconnected Operation . . . . . . . . . . . . . . 31
3.6.4. 113 Heuristic Expiration . . . . . . . . . . . . . . . 31 3.6.4. 113 Heuristic Expiration . . . . . . . . . . . . . . . 31
3.6.5. 199 Miscellaneous Warning . . . . . . . . . . . . . . 31 3.6.5. 199 Miscellaneous Warning . . . . . . . . . . . . . . 31
3.6.6. 214 Transformation Applied . . . . . . . . . . . . . . 31 3.6.6. 214 Transformation Applied . . . . . . . . . . . . . . 31
3.6.7. 299 Miscellaneous Persistent Warning . . . . . . . . . 31 3.6.7. 299 Miscellaneous Persistent Warning . . . . . . . . . 31
3.6.8. Warn Code Extensions . . . . . . . . . . . . . . . . . 32 3.6.8. Warn Code Extensions . . . . . . . . . . . . . . . . . 32
3.7. History Lists . . . . . . . . . . . . . . . . . . . . . . 32 4. History Lists . . . . . . . . . . . . . . . . . . . . . . . . 32
3.8. IANA Considerations . . . . . . . . . . . . . . . . . . . 32 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32
3.8.1. Cache Directive Registry . . . . . . . . . . . . . . . 32 5.1. Cache Directive Registry . . . . . . . . . . . . . . . . . 32
3.8.2. Warn Code Registry . . . . . . . . . . . . . . . . . . 33 5.2. Warn Code Registry . . . . . . . . . . . . . . . . . . . . 33
3.9. Header Field Registration . . . . . . . . . . . . . . . . 33 5.3. Header Field Registration . . . . . . . . . . . . . . . . 33
4. Security Considerations . . . . . . . . . . . . . . . . . . . 34 6. Security Considerations . . . . . . . . . . . . . . . . . . . 34
5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 34 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 34
6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 34 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.1. Normative References . . . . . . . . . . . . . . . . . . . 34 8.1. Normative References . . . . . . . . . . . . . . . . . . . 34
6.2. Informative References . . . . . . . . . . . . . . . . . . 35 8.2. Informative References . . . . . . . . . . . . . . . . . . 35
Appendix A. Changes from RFC 2616 . . . . . . . . . . . . . . . . 35 Appendix A. Changes from RFC 2616 . . . . . . . . . . . . . . . . 35
Appendix B. Collected ABNF . . . . . . . . . . . . . . . . . . . 36 Appendix B. Collected ABNF . . . . . . . . . . . . . . . . . . . 36
Appendix C. Change Log (to be removed by RFC Editor before Appendix C. Change Log (to be removed by RFC Editor before
publication) . . . . . . . . . . . . . . . . . . . . 37 publication) . . . . . . . . . . . . . . . . . . . . 37
C.1. Since RFC 2616 . . . . . . . . . . . . . . . . . . . . . . 37 C.1. Since RFC 2616 . . . . . . . . . . . . . . . . . . . . . . 37
C.2. Since draft-ietf-httpbis-p6-cache-00 . . . . . . . . . . . 37 C.2. Since draft-ietf-httpbis-p6-cache-00 . . . . . . . . . . . 37
C.3. Since draft-ietf-httpbis-p6-cache-01 . . . . . . . . . . . 38 C.3. Since draft-ietf-httpbis-p6-cache-01 . . . . . . . . . . . 38
C.4. Since draft-ietf-httpbis-p6-cache-02 . . . . . . . . . . . 38 C.4. Since draft-ietf-httpbis-p6-cache-02 . . . . . . . . . . . 38
C.5. Since draft-ietf-httpbis-p6-cache-03 . . . . . . . . . . . 39 C.5. Since draft-ietf-httpbis-p6-cache-03 . . . . . . . . . . . 39
C.6. Since draft-ietf-httpbis-p6-cache-04 . . . . . . . . . . . 39 C.6. Since draft-ietf-httpbis-p6-cache-04 . . . . . . . . . . . 39
skipping to change at page 4, line 31 skipping to change at page 4, line 31
C.10. Since draft-ietf-httpbis-p6-cache-08 . . . . . . . . . . . 40 C.10. Since draft-ietf-httpbis-p6-cache-08 . . . . . . . . . . . 40
C.11. Since draft-ietf-httpbis-p6-cache-09 . . . . . . . . . . . 41 C.11. Since draft-ietf-httpbis-p6-cache-09 . . . . . . . . . . . 41
C.12. Since draft-ietf-httpbis-p6-cache-10 . . . . . . . . . . . 41 C.12. Since draft-ietf-httpbis-p6-cache-10 . . . . . . . . . . . 41
C.13. Since draft-ietf-httpbis-p6-cache-11 . . . . . . . . . . . 41 C.13. Since draft-ietf-httpbis-p6-cache-11 . . . . . . . . . . . 41
C.14. Since draft-ietf-httpbis-p6-cache-12 . . . . . . . . . . . 42 C.14. Since draft-ietf-httpbis-p6-cache-12 . . . . . . . . . . . 42
C.15. Since draft-ietf-httpbis-p6-cache-13 . . . . . . . . . . . 42 C.15. Since draft-ietf-httpbis-p6-cache-13 . . . . . . . . . . . 42
C.16. Since draft-ietf-httpbis-p6-cache-14 . . . . . . . . . . . 42 C.16. Since draft-ietf-httpbis-p6-cache-14 . . . . . . . . . . . 42
C.17. Since draft-ietf-httpbis-p6-cache-15 . . . . . . . . . . . 42 C.17. Since draft-ietf-httpbis-p6-cache-15 . . . . . . . . . . . 42
C.18. Since draft-ietf-httpbis-p6-cache-16 . . . . . . . . . . . 43 C.18. Since draft-ietf-httpbis-p6-cache-16 . . . . . . . . . . . 43
C.19. Since draft-ietf-httpbis-p6-cache-17 . . . . . . . . . . . 43 C.19. Since draft-ietf-httpbis-p6-cache-17 . . . . . . . . . . . 43
C.20. Since draft-ietf-httpbis-p6-cache-18 . . . . . . . . . . . 43
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1. Introduction 1. Introduction
HTTP is typically used for distributed information systems, where HTTP is typically used for distributed information systems, where
performance can be improved by the use of response caches. This performance can be improved by the use of response caches. This
document defines aspects of HTTP/1.1 related to caching and reusing document defines aspects of HTTP/1.1 related to caching and reusing
response messages. response messages.
1.1. Purpose 1.1. Purpose
skipping to change at page 7, line 45 skipping to change at page 7, line 45
define specific error handling mechanisms, except in cases where it define specific error handling mechanisms, except in cases where it
has direct impact on security. This is because different uses of the has direct impact on security. This is because different uses of the
protocol require different error handling strategies; for example, a protocol require different error handling strategies; for example, a
Web browser may wish to transparently recover from a response where Web browser may wish to transparently recover from a response where
the Location header field doesn't parse according to the ABNF, the Location header field doesn't parse according to the ABNF,
whereby in a systems control protocol using HTTP, this type of error whereby in a systems control protocol using HTTP, this type of error
recovery could lead to dangerous consequences. recovery could lead to dangerous consequences.
1.4. Syntax Notation 1.4. Syntax Notation
This specification uses the ABNF syntax defined in Section 1.2 of This specification uses the Augmented Backus-Naur Form (ABNF)
[Part1] (which extends the syntax defined in [RFC5234] with a list notation of [RFC5234] with the list rule extension defined in Section
rule). Appendix B shows the collected ABNF, with the list rule 1.2 of [Part1]. Appendix B shows the collected ABNF with the list
expanded. rule expanded.
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).
1.4.1. Core Rules 1.4.1. Core Rules
The core rules below are defined in [Part1]: The core rules below are defined in [Part1]:
OWS = <OWS, defined in [Part1], Section 1.2.2> OWS = <OWS, defined in [Part1], Section 3.2.1>
quoted-string = <quoted-string, defined in [Part1], Section 3.2.3> quoted-string = <quoted-string, defined in [Part1], Section 3.2.4>
token = <token, defined in [Part1], Section 3.2.3> token = <token, defined in [Part1], Section 3.2.4>
1.4.2. ABNF Rules defined in other Parts of the Specification 1.4.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:
field-name = <field-name, defined in [Part1], Section 3.2> field-name = <field-name, defined in [Part1], Section 3.2>
HTTP-date = <HTTP-date, defined in [Part2], Section 8> HTTP-date = <HTTP-date, defined in [Part2], Section 8>
port = <port, defined in [Part1], Section 2.7> port = <port, defined in [Part1], Section 2.7>
pseudonym = <pseudonym, defined in [Part1], Section 8.8> pseudonym = <pseudonym, defined in [Part1], Section 8.8>
uri-host = <uri-host, defined in [Part1], Section 2.7> uri-host = <uri-host, defined in [Part1], Section 2.7>
skipping to change at page 9, line 35 skipping to change at page 9, line 35
A cache MUST NOT store a response to any request, unless: A cache MUST NOT store a response to any request, unless:
o The request method is understood by the cache and defined as being o The request method is understood by the cache and defined as being
cacheable, and cacheable, and
o the response status code is understood by the cache, and o the response status code is understood by the cache, and
o the "no-store" cache directive (see Section 3.2) does not appear o the "no-store" cache directive (see Section 3.2) does not appear
in request or response header fields, and in request or response header fields, and
o the "private" cache response directive (see Section 3.2.2 does not o the "private" cache response directive (see Section 3.2.2) does
appear in the response, if the cache is shared, and not appear in the response, if the cache is shared, and
o the "Authorization" header field (see Section 4.1 of [Part7]) does o the "Authorization" header field (see Section 4.1 of [Part7]) does
not appear in the request, if the cache is shared, unless the not appear in the request, if the cache is shared, unless the
response explicitly allows it (see Section 2.6), and response explicitly allows it (see Section 2.6), and
o the response either: o the response either:
* contains an Expires header field (see Section 3.3), or * contains an Expires header field (see Section 3.3), or
* contains a max-age response cache directive (see * contains a max-age response cache directive (see
skipping to change at page 12, line 46 skipping to change at page 12, line 46
The freshness_lifetime is defined in Section 2.3.1; the current_age The freshness_lifetime is defined in Section 2.3.1; the current_age
is defined in Section 2.3.2. is defined in Section 2.3.2.
Additionally, clients can influence freshness calculation -- either Additionally, clients can influence freshness calculation -- either
constraining it relaxing it -- by using the max-age and min-fresh constraining it relaxing it -- by using the max-age and min-fresh
request cache directives. See Section 3.2.1 for details. request cache directives. See Section 3.2.1 for details.
Note that freshness applies only to cache operation; it cannot be Note that freshness applies only to cache operation; it cannot be
used to force a user agent to refresh its display or reload a used to force a user agent to refresh its display or reload a
resource. See Section 3.7 for an explanation of the difference resource. See Section 4 for an explanation of the difference between
between caches and history mechanisms. caches and history mechanisms.
2.3.1. Calculating Freshness Lifetime 2.3.1. Calculating Freshness Lifetime
A cache can calculate the freshness lifetime (denoted as A cache can calculate the freshness lifetime (denoted as
freshness_lifetime) of a response by using the first match of: freshness_lifetime) of a response by using the first match of:
o If the cache is shared and the s-maxage response cache directive o If the cache is shared and the s-maxage response cache directive
(Section 3.2.2) is present, use its value, or (Section 3.2.2) is present, use its value, or
o If the max-age response cache directive (Section 3.2.2) is o If the max-age response cache directive (Section 3.2.2) is
skipping to change at page 32, line 23 skipping to change at page 32, line 23
o Short Description o Short Description
o Pointer to specification text o Pointer to specification text
Values to be added to this name space are subject to IETF review Values to be added to this name space are subject to IETF review
([RFC5226], Section 4.1). ([RFC5226], Section 4.1).
The registry itself is maintained at The registry itself is maintained at
<http://www.iana.org/assignments/http-warn-codes>. <http://www.iana.org/assignments/http-warn-codes>.
3.7. History Lists 4. History Lists
User agents often have history mechanisms, such as "Back" buttons and User agents often have history mechanisms, such as "Back" buttons and
history lists, that can be used to redisplay a representation history lists, that can be used to redisplay a representation
retrieved earlier in a session. retrieved earlier in a session.
The freshness model (Section 2.3) does not necessarily apply to The freshness model (Section 2.3) does not necessarily apply to
history mechanisms. I.e., a history mechanism can display a previous history mechanisms. I.e., a history mechanism can display a previous
representation even if it has expired. representation even if it has expired.
This does not prohibit the history mechanism from telling the user This does not prohibit the history mechanism from telling the user
that a view might be stale, or from honoring cache directives (e.g., that a view might be stale, or from honoring cache directives (e.g.,
Cache-Control: no-store). Cache-Control: no-store).
3.8. IANA Considerations 5. IANA Considerations
3.8.1. Cache Directive Registry 5.1. Cache Directive Registry
The registration procedure for HTTP Cache Directives is defined by The registration procedure for HTTP Cache Directives is defined by
Section 3.2.3 of this document. Section 3.2.3 of this document.
The HTTP Cache Directive Registry shall be created at The HTTP Cache Directive Registry shall be created at
<http://www.iana.org/assignments/http-cache-directives> and be <http://www.iana.org/assignments/http-cache-directives> and be
populated with the registrations below: populated with the registrations below:
+------------------------+------------------------------+ +------------------------+------------------------------+
| Cache Directive | Reference | | Cache Directive | Reference |
skipping to change at page 33, line 24 skipping to change at page 33, line 24
| no-transform | Section 3.2.1, Section 3.2.2 | | no-transform | Section 3.2.1, Section 3.2.2 |
| only-if-cached | Section 3.2.1 | | only-if-cached | Section 3.2.1 |
| private | Section 3.2.2 | | private | Section 3.2.2 |
| proxy-revalidate | Section 3.2.2 | | proxy-revalidate | Section 3.2.2 |
| public | Section 3.2.2 | | public | Section 3.2.2 |
| s-maxage | Section 3.2.2 | | s-maxage | Section 3.2.2 |
| stale-if-error | [RFC5861], Section 4 | | stale-if-error | [RFC5861], Section 4 |
| stale-while-revalidate | [RFC5861], Section 3 | | stale-while-revalidate | [RFC5861], Section 3 |
+------------------------+------------------------------+ +------------------------+------------------------------+
3.8.2. Warn Code Registry 5.2. Warn Code Registry
The registration procedure for HTTP Warn Codes is defined by The registration procedure for HTTP Warn Codes is defined by
Section 3.6.8 of this document. Section 3.6.8 of this document.
The HTTP Warn Code Registry shall be created at The HTTP Warn Code Registry shall be created at
<http://www.iana.org/assignments/http-cache-directives> and be <http://www.iana.org/assignments/http-cache-directives> and be
populated with the registrations below: populated with the registrations below:
+-----------+----------------------------------+---------------+ +-----------+----------------------------------+---------------+
| Warn Code | Short Description | Reference | | Warn Code | Short Description | Reference |
+-----------+----------------------------------+---------------+ +-----------+----------------------------------+---------------+
| 110 | Response is Stale | Section 3.6.1 | | 110 | Response is Stale | Section 3.6.1 |
| 111 | Revalidation Failed | Section 3.6.2 | | 111 | Revalidation Failed | Section 3.6.2 |
| 112 | Disconnected Operation | Section 3.6.3 | | 112 | Disconnected Operation | Section 3.6.3 |
| 113 | Heuristic Expiration | Section 3.6.4 | | 113 | Heuristic Expiration | Section 3.6.4 |
| 199 | Miscellaneous Warning | Section 3.6.5 | | 199 | Miscellaneous Warning | Section 3.6.5 |
| 214 | Transformation Applied | Section 3.6.6 | | 214 | Transformation Applied | Section 3.6.6 |
| 299 | Miscellaneous Persistent Warning | Section 3.6.7 | | 299 | Miscellaneous Persistent Warning | Section 3.6.7 |
+-----------+----------------------------------+---------------+ +-----------+----------------------------------+---------------+
3.9. Header Field Registration 5.3. Header Field Registration
The Message Header Field Registry located at <http://www.iana.org/ The Message Header Field Registry located at <http://www.iana.org/
assignments/message-headers/message-header-index.html> shall be assignments/message-headers/message-header-index.html> shall be
updated with the permanent registrations below (see [RFC3864]): updated with the permanent registrations below (see [RFC3864]):
+-------------------+----------+----------+-------------+ +-------------------+----------+----------+-------------+
| Header Field Name | Protocol | Status | Reference | | Header Field Name | Protocol | Status | Reference |
+-------------------+----------+----------+-------------+ +-------------------+----------+----------+-------------+
| Age | http | standard | Section 3.1 | | Age | http | standard | Section 3.1 |
| Cache-Control | http | standard | Section 3.2 | | Cache-Control | http | standard | Section 3.2 |
| Expires | http | standard | Section 3.3 | | Expires | http | standard | Section 3.3 |
| Pragma | http | standard | Section 3.4 | | Pragma | http | standard | Section 3.4 |
| Vary | http | standard | Section 3.5 | | Vary | http | standard | Section 3.5 |
| Warning | http | standard | Section 3.6 | | Warning | http | standard | Section 3.6 |
+-------------------+----------+----------+-------------+ +-------------------+----------+----------+-------------+
The change controller is: "IETF (iesg@ietf.org) - Internet The change controller is: "IETF (iesg@ietf.org) - Internet
Engineering Task Force". Engineering Task Force".
4. Security Considerations 6. Security Considerations
Caches expose additional potential vulnerabilities, since the Caches expose additional potential vulnerabilities, since the
contents of the cache represent an attractive target for malicious contents of the cache represent an attractive target for malicious
exploitation. Because cache contents persist after an HTTP request exploitation. Because cache contents persist after an HTTP request
is complete, an attack on the cache can reveal information long after is complete, an attack on the cache can reveal information long after
a user believes that the information has been removed from the a user believes that the information has been removed from the
network. Therefore, cache contents need to be protected as sensitive network. Therefore, cache contents need to be protected as sensitive
information. information.
5. Acknowledgments 7. Acknowledgments
See Section 11 of [Part1]. See Section 11 of [Part1].
6. References 8. References
6.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-18 and Message Parsing",
(work in progress), January 2012. draft-ietf-httpbis-p1-messaging-latest (work in progress),
February 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-18 (work in Semantics", draft-ietf-httpbis-p2-semantics-latest (work
progress), January 2012. in progress), February 2012.
[Part4] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H., [Part4] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,
Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed., Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed.,
and J. Reschke, Ed., "HTTP/1.1, part 4: Conditional and J. Reschke, Ed., "HTTP/1.1, part 4: Conditional
Requests", draft-ietf-httpbis-p4-conditional-18 (work in Requests", draft-ietf-httpbis-p4-conditional-latest (work
progress), January 2012. in progress), February 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-18 (work Partial Responses", draft-ietf-httpbis-p5-range-latest
in progress), January 2012. (work in progress), February 2012.
[Part7] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H., [Part7] Fielding, R., Ed., Gettys, J., Mogul, J., Frystyk, H.,
Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed., Masinter, L., Leach, P., Berners-Lee, T., Lafon, Y., Ed.,
and J. Reschke, Ed., "HTTP/1.1, part 7: Authentication", and J. Reschke, Ed., "HTTP/1.1, part 7: Authentication",
draft-ietf-httpbis-p7-auth-18 (work in progress), draft-ietf-httpbis-p7-auth-latest (work in progress),
January 2012. February 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.
6.2. Informative References 8.2. Informative References
[RFC1305] Mills, D., "Network Time Protocol (Version 3) [RFC1305] Mills, D., "Network Time Protocol (Version 3)
Specification, Implementation", RFC 1305, March 1992. Specification, Implementation", RFC 1305, March 1992.
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
[RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration [RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration
Procedures for Message Header Fields", BCP 90, RFC 3864, Procedures for Message Header Fields", BCP 90, RFC 3864,
skipping to change at page 36, line 25 skipping to change at page 36, line 28
Age = delta-seconds Age = delta-seconds
Cache-Control = *( "," OWS ) cache-directive *( OWS "," [ OWS Cache-Control = *( "," OWS ) cache-directive *( OWS "," [ OWS
cache-directive ] ) cache-directive ] )
Expires = HTTP-date Expires = HTTP-date
HTTP-date = <HTTP-date, defined in [Part2], Section 8> HTTP-date = <HTTP-date, defined in [Part2], Section 8>
OWS = <OWS, defined in [Part1], Section 1.2.2> OWS = <OWS, defined in [Part1], Section 3.2.1>
Pragma = *( "," OWS ) pragma-directive *( OWS "," [ OWS Pragma = *( "," OWS ) pragma-directive *( OWS "," [ OWS
pragma-directive ] ) pragma-directive ] )
Vary = "*" / ( *( "," OWS ) field-name *( OWS "," [ OWS field-name ] Vary = "*" / ( *( "," OWS ) field-name *( OWS "," [ OWS field-name ]
) ) ) )
Warning = *( "," OWS ) warning-value *( OWS "," [ OWS warning-value ] Warning = *( "," OWS ) warning-value *( OWS "," [ OWS warning-value ]
) )
skipping to change at page 36, line 50 skipping to change at page 37, line 4
"min-fresh=" delta-seconds ) / "no-transform" / "only-if-cached" / "min-fresh=" delta-seconds ) / "no-transform" / "only-if-cached" /
cache-extension cache-extension
cache-response-directive = "public" / ( "private" [ "=" DQUOTE *( "," cache-response-directive = "public" / ( "private" [ "=" DQUOTE *( ","
OWS ) field-name *( OWS "," [ OWS field-name ] ) DQUOTE ] ) / ( OWS ) field-name *( OWS "," [ OWS field-name ] ) DQUOTE ] ) / (
"no-cache" [ "=" DQUOTE *( "," OWS ) field-name *( OWS "," [ OWS "no-cache" [ "=" DQUOTE *( "," OWS ) field-name *( OWS "," [ OWS
field-name ] ) DQUOTE ] ) / "no-store" / "no-transform" / field-name ] ) DQUOTE ] ) / "no-store" / "no-transform" /
"must-revalidate" / "proxy-revalidate" / ( "max-age=" delta-seconds "must-revalidate" / "proxy-revalidate" / ( "max-age=" delta-seconds
) / ( "s-maxage=" delta-seconds ) / cache-extension ) / ( "s-maxage=" delta-seconds ) / cache-extension
delta-seconds = 1*DIGIT delta-seconds = 1*DIGIT
extension-pragma = token [ "=" ( token / quoted-string ) ] extension-pragma = token [ "=" ( token / quoted-string ) ]
field-name = <field-name, defined in [Part1], Section 3.2> field-name = <field-name, defined in [Part1], Section 3.2>
port = <port, defined in [Part1], Section 2.7> port = <port, defined in [Part1], Section 2.7>
pragma-directive = "no-cache" / extension-pragma pragma-directive = "no-cache" / extension-pragma
pseudonym = <pseudonym, defined in [Part1], Section 8.8> pseudonym = <pseudonym, defined in [Part1], Section 8.8>
quoted-string = <quoted-string, defined in [Part1], Section 3.2.3> quoted-string = <quoted-string, defined in [Part1], Section 3.2.4>
token = <token, defined in [Part1], Section 3.2.3> token = <token, defined in [Part1], Section 3.2.4>
uri-host = <uri-host, defined in [Part1], Section 2.7> uri-host = <uri-host, defined in [Part1], Section 2.7>
warn-agent = ( uri-host [ ":" port ] ) / pseudonym warn-agent = ( uri-host [ ":" port ] ) / pseudonym
warn-code = 3DIGIT warn-code = 3DIGIT
warn-date = DQUOTE HTTP-date DQUOTE warn-date = DQUOTE HTTP-date DQUOTE
warn-text = quoted-string warn-text = quoted-string
warning-value = warn-code SP warn-agent SP warn-text [ SP warn-date warning-value = warn-code SP warn-agent SP warn-text [ SP warn-date
] ]
skipping to change at page 43, line 28 skipping to change at page 43, line 28
o <http://tools.ietf.org/wg/httpbis/trac/ticket/293>: "Interaction o <http://tools.ietf.org/wg/httpbis/trac/ticket/293>: "Interaction
of request and response Cache-Control" of request and response Cache-Control"
o <http://tools.ietf.org/wg/httpbis/trac/ticket/212>: "Refining age o <http://tools.ietf.org/wg/httpbis/trac/ticket/212>: "Refining age
for 1.1 proxy chains" for 1.1 proxy chains"
o <http://tools.ietf.org/wg/httpbis/trac/ticket/274>: "warn-code o <http://tools.ietf.org/wg/httpbis/trac/ticket/274>: "warn-code
registry" registry"
C.20. Since draft-ietf-httpbis-p6-cache-18
None yet.
Index Index
1 1
110 Response is Stale (warn code) 31 110 Response is Stale (warn code) 31
111 Revalidation Failed (warn code) 31 111 Revalidation Failed (warn code) 31
112 Disconnected Operation (warn code) 31 112 Disconnected Operation (warn code) 31
113 Heuristic Expiration (warn code) 31 113 Heuristic Expiration (warn code) 31
199 Miscellaneous Warning (warn code) 31 199 Miscellaneous Warning (warn code) 31
2 2
 End of changes. 32 change blocks. 
50 lines changed or deleted 56 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/