< draft-nottingham-linked-cache-inv-02.txt   draft-nottingham-linked-cache-inv-03.txt >
Network Working Group M. Nottingham Network Working Group M. Nottingham
Internet-Draft M. Kelly Internet-Draft M. Kelly
Intended status: Informational June 1, 2012 Intended status: Informational June 27, 2012
Expires: December 3, 2012 Expires: December 29, 2012
Linked Cache Invalidation Linked Cache Invalidation
draft-nottingham-linked-cache-inv-02 draft-nottingham-linked-cache-inv-03
Abstract Abstract
This memo defines two new link types that indicate relationships This memo defines two new link types that indicate relationships
between resources in terms of cache invalidation, along with a HTTP between resources in terms of cache invalidation, along with a HTTP
cache-control extension that takes advantage of those relationships cache-control extension that takes advantage of those relationships
to use them to extend response freshness. Collectively, this is to use them to extend response freshness. Collectively, this is
referred to as Linked Cache Invalidation (LCI). referred to as Linked Cache Invalidation (LCI).
Status of this Memo Status of this Memo
skipping to change at page 1, line 34 skipping to change at page 1, line 34
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 December 3, 2012. This Internet-Draft will expire on December 29, 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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. to this document.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Example . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Example . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Notational Conventions . . . . . . . . . . . . . . . . . . . . 5 2. Notational Conventions . . . . . . . . . . . . . . . . . . . . 5
3. The 'invalidates' link relation type . . . . . . . . . . . . . 5 3. The 'invalidates' Link Relation Type . . . . . . . . . . . . . 5
4. The 'inv-by' link relation type . . . . . . . . . . . . . . . . 5 4. The 'inv-by' Link Relation Type . . . . . . . . . . . . . . . . 5
5. The 'inv-maxage' response cache-control extension . . . . . . . 6 5. The 'inv-maxage' Response Cache-Control Extension . . . . . . . 6
5.1. inv-maxage Syntax . . . . . . . . . . . . . . . . . . . . . 6
5.2. inv-maxage Semantics . . . . . . . . . . . . . . . . . . . 6
6. Security Considerations . . . . . . . . . . . . . . . . . . . . 7 6. Security Considerations . . . . . . . . . . . . . . . . . . . . 7
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 7 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 8
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8
8.1. Normative References . . . . . . . . . . . . . . . . . . . 8 8.1. Normative References . . . . . . . . . . . . . . . . . . . 8
8.2. Informative References . . . . . . . . . . . . . . . . . . 8 8.2. Informative References . . . . . . . . . . . . . . . . . . 8
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . . 8 Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . . 8
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 8 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 8
1. Introduction 1. Introduction
In normal operation, a HTTP [RFC2616] cache will invalidate a stored In normal operation, a HTTP [RFC2616] cache will invalidate a stored
response if an unsafe request (e.g., POST, PUT or DELETE) is made to response if an unsafe request (e.g., POST, PUT or DELETE) is made to
skipping to change at page 5, line 31 skipping to change at page 5, line 31
2. Notational Conventions 2. Notational Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
This document uses the Augmented Backus-Naur Form (ABNF) notation of This document uses the Augmented Backus-Naur Form (ABNF) notation of
[RFC2616], and explicitly includes the following rules from it: [RFC2616], and explicitly includes the following rules from it:
delta-seconds. delta-seconds.
3. The 'invalidates' link relation type 3. The 'invalidates' Link Relation Type
The 'invalidates' link relation type allows a response that signifies The 'invalidates' link relation type allows a response that signifies
a state change on the server to indicate one or more associated URIs a state change on the server to indicate one or more associated URIs
whose states have also changed. whose states have also changed.
o Relation name: invalidates o Relation name: invalidates
o Description: Indicates that when the link context changes, the o Description: Indicates that when the link context changes, the
link target also has changed. link target also has changed.
o Reference: [this document] o Reference: [this document]
o Notes: o Notes:
4. The 'inv-by' link relation type 4. The 'inv-by' Link Relation Type
The 'inv-by' link relation type allows a response to nominate one or The 'inv-by' link relation type allows a response to nominate one or
more other resources that affect the state of the resource it's more other resources that affect the state of the resource it's
associated with. That is, when one of the nominated resources associated with. That is, when one of the nominated resources
changes, it also changes the state of this response's resource. changes, it also changes the state of this response's resource.
o Relation name: inv-by o Relation name: inv-by
o Description: Indicates that when the link target changes, the o Description: Indicates that when the link target changes, the
link's context has also changed. link's context has also changed.
o Reference: [this document] o Reference: [this document]
o Notes: o Notes:
5. The 'inv-maxage' response cache-control extension 5. The 'inv-maxage' Response Cache-Control Extension
When present, the 'inv-maxage' cache-control extension indicates the When present, the 'inv-maxage' cache-control extension indicates the
number of seconds that caches who implement Linked Cache invalidation number of seconds that caches who implement Linked Cache invalidation
can consider responses fresh for, provided they are not invalidated. can consider responses fresh for, provided they are not invalidated.
"inv-maxage" "=" delta-seconds 5.1. inv-maxage Syntax
The inv-maxage cache-control extension is parameterised with a
numeric argument:
"inv-maxage" "=" ( delta-seconds | ( <"> delta-seconds <"> ) )
Note that the argument MAY occur in either token or quoted-string
form.
If the argument is missing or otherwise does not conform to the BNF
rule, it is invalid and MUST be ignored by caches.
If the directive appears more than once in a response, each instance
is invalid and MUST be ignored by caches.
5.2. inv-maxage Semantics
HTTP caches MAY, if they fully implement this specification, HTTP caches MAY, if they fully implement this specification,
disregard the HTTP response cache-control directives 'no-cache', disregard the HTTP response cache-control directives 'no-cache',
'max-age' and 's-maxage' and use the value of inv-maxage as a 'max-age' and 's-maxage' when a valid 'inv-maxage' cache-control
replacement for max-age. directive is present in a response, using its value as a replacement
for max-age.
HTTP caches using inv-maxage to calculate freshness MUST invalidate HTTP caches using inv-maxage to calculate freshness MUST invalidate
all stored responses whose request-URIs (after normalisation) are the all stored responses whose request-URIs (after normalisation) are the
target of a 'invalidates' link relation contained in a successful target of a 'invalidates' link relation contained in a successful
response to a state-changing request, provided that they are allowed. response to a state-changing request, provided that they are allowed.
HTTP caches using inv-maxage to calculate freshness MUST invalidate HTTP caches using inv-maxage to calculate freshness MUST invalidate
all stored responses containing a 'inv-by' link relation whose target all stored responses containing a 'inv-by' link relation whose target
is the current request-URI (after normalisation) upon receipt of a is the current request-URI (after normalisation) upon receipt of a
successful response to a state-changing request. successful response to a state-changing request.
skipping to change at page 7, line 45 skipping to change at page 8, line 14
attacks through invalidation, cache efficiency may still be impaired attacks through invalidation, cache efficiency may still be impaired
under certain circumstances (e.g., arranging for one request to under certain circumstances (e.g., arranging for one request to
invalidate a large number of responses), leading to a reduction in invalidate a large number of responses), leading to a reduction in
service quality. service quality.
7. IANA Considerations 7. IANA Considerations
This document registers two entries in the Link Relation Type This document registers two entries in the Link Relation Type
Registry; see Section 3 and Section 4. Registry; see Section 3 and Section 4.
It also registers a HTTP Cache Directive, "inv-maxage"; see
Section 5.
8. References 8. References
8.1. Normative References 8.1. Normative References
[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.
[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.
[RFC5988] Nottingham, M., "Web Linking", RFC 5988, October 2010. [RFC5988] Nottingham, M., "Web Linking", RFC 5988, October 2010.
 End of changes. 12 change blocks. 
14 lines changed or deleted 37 lines changed or added

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