From f3fb531ef2960b02c9ee109bbe071b7fc006178e Mon Sep 17 00:00:00 2001 From: Mark Nottingham Date: Fri, 3 Feb 2017 13:06:49 +1100 Subject: [PATCH 1/3] Introduction --- draft-ietf-httpbis-immutable.md | 74 ++++++++++++++++----------------- 1 file changed, 36 insertions(+), 38 deletions(-) diff --git a/draft-ietf-httpbis-immutable.md b/draft-ietf-httpbis-immutable.md index c56e8263b..747dc1d26 100644 --- a/draft-ietf-httpbis-immutable.md +++ b/draft-ietf-httpbis-immutable.md @@ -43,48 +43,46 @@ for this draft can be found at Date: Fri, 3 Feb 2017 13:08:36 +1100 Subject: [PATCH 2/3] cc: extesion section --- draft-ietf-httpbis-immutable.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/draft-ietf-httpbis-immutable.md b/draft-ietf-httpbis-immutable.md index 747dc1d26..ff24c5b91 100644 --- a/draft-ietf-httpbis-immutable.md +++ b/draft-ietf-httpbis-immutable.md @@ -86,16 +86,16 @@ can be safely skipped without worrying that it has been updated. # The immutable Cache-Control extension -When present in an HTTP response, the immutable Cache-Control -extension indicates that the origin server MUST NOT update the representation -of that resource during the freshness lifetime of the response. +When present in an HTTP response, the `immutable` Cache-Control extension +indicates that the origin server MUST NOT update the representation of that +resource during the freshness lifetime of the response. -The immutable extension only applies during the freshness lifetime of -the response. Stale responses SHOULD be revalidated as they normally -would be in the absence of immutable. +The immutable extension only applies during the freshness lifetime of the +stored response. Stale responses SHOULD be revalidated as they normally would +be in the absence of immutable. -The immutable extension takes no arguments and if any arguments are -present they have no meaning. Multiple instances of the immutable +The immutable extension takes no arguments. If any arguments are present, they +have no meaning, and MUST be ignored. Multiple instances of the immutable extension are equivalent to one instance. The presence of an immutable Cache-Control extension in a request has no effect. From 4923ad83f38d0b278a1823b40d7000073db1a679 Mon Sep 17 00:00:00 2001 From: Mark Nottingham Date: Fri, 3 Feb 2017 13:11:59 +1100 Subject: [PATCH 3/3] should -> SHOULD, light tweaking --- draft-ietf-httpbis-immutable.md | 63 ++++++++++++++++----------------- 1 file changed, 31 insertions(+), 32 deletions(-) diff --git a/draft-ietf-httpbis-immutable.md b/draft-ietf-httpbis-immutable.md index ff24c5b91..c4f2748a4 100644 --- a/draft-ietf-httpbis-immutable.md +++ b/draft-ietf-httpbis-immutable.md @@ -26,18 +26,19 @@ informative: --- abstract -The immutable HTTP response Cache-Control extension allows servers to -identify resources that will not be updated during their freshness -lifetime. This assures that a client never needs to revalidate a -cached fresh resource to be certain it has not been modified. +The immutable HTTP response Cache-Control extension allows servers to identify +resources that will not be updated during their freshness lifetime. This +assures that a client never needs to revalidate a cached fresh resource to be +certain it has not been modified. --- note_Note_to_Readers Discussion of this draft takes place on the HTTP working group mailing list (ietf-http-wg@w3.org), which is archived at . -Working Group information can be found at ; source code and issues list -for this draft can be found at . +Working Group information can be found at ; source +code and issues list for this draft can be found at +. --- middle @@ -101,12 +102,11 @@ Cache-Control extension in a request has no effect. ## About Intermediaries -An immutable response has the same semantic meaning for proxy clients -as it does for User-Agent based clients and they therefore MAY also -presume a conditional revalidation for a response marked immutable -would return 304. A proxy client who uses immutable to anticipate a -304 response may choose whether to reply with a 304 or 200 to its -requesting client. +An immutable response has the same semantic meaning for proxy clients as it +does for User-Agent based clients and they therefore MAY also presume a +conditional revalidation for a response marked immutable would return 304. A +proxy client who uses immutable to anticipate a 304 response may choose whether +to reply with a 304 or 200 to its requesting client. ## Example @@ -116,35 +116,34 @@ Cache-Control: max-age=31536000, immutable # Security Considerations -The immutable mechanism acts as form of soft pinning and, as with all -pinning mechanisms, creates a vector for amplification of cache -corruption incidents. These incidents include cache poisoning -attacks. Three mechanisms are suggested for mitigation of this risk: +The immutable mechanism acts as form of soft pinning and, as with all pinning +mechanisms, creates a vector for amplification of cache corruption incidents. +These incidents include cache poisoning attacks. Three mechanisms are suggested +for mitigation of this risk: -* Clients should ignore immutable for resources that are not - part of an authenticated context such as HTTPS. Authenticated resources are less - vulnerable to cache poisoning. +* Clients SHOULD ignore immutable from resources that are not part of an + authenticated context such as HTTPS. Authenticated resources are less + vulnerable to cache poisoning. -* User-Agents often provide two different refresh mechanismss: reload - and some form of force-reload. The latter is used to rectify - interrupted loads and other corruption. These reloads, typically - indicated through no-cache request attributes, should ignore - immutable as well. +* User-Agents often provide two different refresh mechanisms: reload and some + form of force-reload. The latter is used to rectify interrupted loads and + other corruption. These reloads, typically indicated through no-cache request + attributes, SHOULD ignore immutable as well. -* Clients should ignore immutable for resources that do not provide a - strong indication that the stored response size is the correct - response size such as responses delimited by connection close. +* Clients SHOULD ignore immutable for resources that do not provide a strong + indication that the stored response size is the correct response size such as + responses delimited by connection close. # IANA Considerations -[RFC7234] sections 7.1 and 7.1.2 require registration of the -immutable extension in the "Hypertext Transfer Protocol (HTTP) Cache -Directive Registry" with IETF Review. +[RFC7234] sections 7.1 and 7.1.2 require registration of the immutable +extension in the "Hypertext Transfer Protocol (HTTP) Cache Directive Registry" +with IETF Review. * Cache-Directive: immutable * Pointer to specification text: \[this document\] # Acknowledgments -Thank you to Ben Maurer for partnership in developing and testing this -idea. Thank you to Amos Jeffries for help with proxy interactions. +Thank you to Ben Maurer for partnership in developing and testing this idea. +Thank you to Amos Jeffries for help with proxy interactions.