| < 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/ | ||||