Return-Path: X-Original-To: apmail-httpd-dev-archive@www.apache.org Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 780D09E57 for ; Sun, 10 Mar 2013 00:56:13 +0000 (UTC) Received: (qmail 21202 invoked by uid 500); 10 Mar 2013 00:56:12 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 21147 invoked by uid 500); 10 Mar 2013 00:56:12 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 21133 invoked by uid 99); 10 Mar 2013 00:56:12 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 10 Mar 2013 00:56:12 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of minfrin@sharp.fm designates 174.143.229.200 as permitted sender) Received: from [174.143.229.200] (HELO chandler.sharp.fm) (174.143.229.200) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 10 Mar 2013 00:56:06 +0000 Received: from chandler.sharp.fm (localhost [127.0.0.1]) by chandler.sharp.fm (Postfix) with ESMTP id 0B17B93803C for ; Sat, 9 Mar 2013 18:55:45 -0600 (CST) Received: from [192.168.0.11] (cpc20-nmal16-2-0-cust137.19-2.cable.virginmedia.com [80.195.176.138]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (Client did not present a certificate) (Authenticated sender: minfrin@sharp.fm) by chandler.sharp.fm (Postfix) with ESMTP id 2E56F93803A for ; Sat, 9 Mar 2013 18:55:43 -0600 (CST) From: Graham Leggett Content-Type: multipart/signed; boundary="Apple-Mail=_E825A5B2-40D0-4B27-9624-E2B9D44AF162"; protocol="application/pkcs7-signature"; micalg=sha1 Message-Id: Mime-Version: 1.0 (Mac OS X Mail 6.2 \(1499\)) Subject: Re: mod_cache with Cache-Control no-cache= or private= Date: Sun, 10 Mar 2013 02:55:42 +0200 References: To: dev@httpd.apache.org In-Reply-To: X-Mailer: Apple Mail (2.1499) X-Virus-Scanned: ClamAV using ClamSMTP X-Virus-Checked: Checked by ClamAV on apache.org --Apple-Mail=_E825A5B2-40D0-4B27-9624-E2B9D44AF162 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=iso-8859-1 On 04 Mar 2013, at 8:22 PM, ylavic dev wrote: > I've been working on a patch for mod_cache to deal (fully) with the = response header Cache-Control and the no-cache=3D
or = private=3D
directives. > This "feature" is mainly used with the Set-Cookie header, and allows = the origin server to control the caching of that particular header. >=20 > Although the code is already there to detect their usage with a = header, mod_cache still handle these directives as if no header was = specified. > That is, "stale entity causing revalidation" [by the origin server]. >=20 > The RFC-2616 (14.9.1 What is Cacheable) says this about the = no-cache=3D
directive : > If the no-cache directive does specify one or more field-names, > then a cache MAY use the response to satisfy a subsequent = request, > subject to any other restrictions on caching. However, the > specified field-name(s) MUST NOT be sent in the response to a > subsequent request without successful revalidation with the = origin > server. This allows an origin server to prevent the re-use of > certain header fields in a response, while still allowing = caching > of the rest of the response. > For what I understand, mod_cache is allowed to serve its cached entity = (though without the specified header(s)). I read this through again, this time having slept properly. The way I read the spec, "the specified field-name(s) MUST NOT be sent = in the response to a subsequent request without successful revalidation = with the origin server". What this means is that if the specified field = names are found to be present in the cached response, then the origin = server needs to be given the opportunity to update these fields through = a conditional request. In the current cache code, we return 0 meaning = "this is stale, revalidate", and a conditional request is sent to the = origin. We hope the origin sends "304 Not Modified", with updated = headers corresponding to the fields. If we were to follow this patch, it means that the first time we hit the = URL, the client sees the private/no-cache fields, but every cached = response after will be treated as fresh with the field missing. This = breaks caching. What you're trying to achieve needs to be handled by your origin server, = which should support conditional requests, and then send updated = Set-Cookie headers along with the 304 Not Modified responses. This way = the body stays cached, but your Set-Cookie is updated on every hit. Regards, Graham -- --Apple-Mail=_E825A5B2-40D0-4B27-9624-E2B9D44AF162 Content-Disposition: attachment; filename=smime.p7s Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIMRDCCBU4w ggQ2oAMCAQICEFh4aE4AMxvXDqDMsrLTRhgwDQYJKoZIhvcNAQEFBQAwgd0xCzAJBgNVBAYTAlVT MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29y azE7MDkGA1UECxMyVGVybXMgb2YgdXNlIGF0IGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9ycGEg KGMpMDkxHjAcBgNVBAsTFVBlcnNvbmEgTm90IFZhbGlkYXRlZDE3MDUGA1UEAxMuVmVyaVNpZ24g Q2xhc3MgMSBJbmRpdmlkdWFsIFN1YnNjcmliZXIgQ0EgLSBHMzAeFw0xMjA2MTAwMDAwMDBaFw0x MzA2MTAyMzU5NTlaMIIBETEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT aWduIFRydXN0IE5ldHdvcmsxRjBEBgNVBAsTPXd3dy52ZXJpc2lnbi5jb20vcmVwb3NpdG9yeS9S UEEgSW5jb3JwLiBieSBSZWYuLExJQUIuTFREKGMpOTgxHjAcBgNVBAsTFVBlcnNvbmEgTm90IFZh bGlkYXRlZDEzMDEGA1UECxMqRGlnaXRhbCBJRCBDbGFzcyAxIC0gTmV0c2NhcGUgRnVsbCBTZXJ2 aWNlMRcwFQYDVQQDFA5HcmFoYW0gTGVnZ2V0dDEfMB0GCSqGSIb3DQEJARYQbWluZnJpbkBzaGFy cC5mbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOfFKNXNAgdSNYJpArw4k7fFS4eb oK+cC/N93pqE+Zk57DmG4GJTr/ApvW/QtQlP7Prx1mE433jIBxV6Zk981kgVD2DZtZWqtZSicPNr Oyl5RGsrTJUgvg29x36ITeiBI0+JME4SOiwqoWkRh2VCe4ppCd/sjHMyYP587nGbuE8e7YXWpDcE r+j5ycQBDF4Yhs9tTrV3927nE1FBOS+yKFyql4Jded/x+lHs5o6JDqYM1KRGec86O2YUIyZJhGuP zJintlRPK9Tui4kjJPhmVTplkL9K7J5dFC5/ZYtsJMQENrCdkNiEcrVbFSlXmgbUAJxhnMtYmZnk xj/0puhpwyUCAwEAAaOB0jCBzzAJBgNVHRMEAjAAMEQGA1UdIAQ9MDswOQYLYIZIAYb4RQEHFwEw KjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYTALBgNVHQ8EBAMCBaAw HQYDVR0lBBYwFAYIKwYBBQUHAwQGCCsGAQUFBwMCMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9p bmRjMWRpZ2l0YWxpZC1nMy1jcmwudmVyaXNpZ24uY29tL0luZEMxRGlnaXRhbElELUczLmNybDAN BgkqhkiG9w0BAQUFAAOCAQEAzipzl6mxQzLx0EnMK4LcmwxNQy8GpxHps6WbWKsF7534aYZxiJ4z JlU88ZlqzQXahxmNXbZ2+/ZYSXQuSdfBx06kOh/TkQff+iE3rMhE1edZ4DNx3lMvqtWWcN46a/vz TiMuf3F+Oxw+qxX2VIx04H14pLoAeePwWQ+bjqicogB2WlkaZlOB7daCqnDizcfKdpeyOVOonWkE o/PUp8RiRZr3WdC9vhfrVtvMvRQHpjiqRZBeP3DpnzkB43LUvF1p81n7W+CJt24nrJPuO4dwYXMg rxUZ87YPmCgXBmdu5IOzSLV+z8hQboo+JtAO0c6uTv2ez2zuspKYzcmhBQN30DCCBu4wggXWoAMC AQICEHEVZgVK5JEhTem8RPms09wwDQYJKoZIhvcNAQEFBQAwgcoxCzAJBgNVBAYTAlVTMRcwFQYD VQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazE6MDgG A1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFF MEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1 dGhvcml0eSAtIEczMB4XDTA5MDUwMTAwMDAwMFoXDTE5MDQzMDIzNTk1OVowgd0xCzAJBgNVBAYT AlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0 d29yazE7MDkGA1UECxMyVGVybXMgb2YgdXNlIGF0IGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9y cGEgKGMpMDkxHjAcBgNVBAsTFVBlcnNvbmEgTm90IFZhbGlkYXRlZDE3MDUGA1UEAxMuVmVyaVNp Z24gQ2xhc3MgMSBJbmRpdmlkdWFsIFN1YnNjcmliZXIgQ0EgLSBHMzCCASIwDQYJKoZIhvcNAQEB BQADggEPADCCAQoCggEBAO3ER98qKB18Bmu71yEyyWwTj+mxjUFONPfaC+Nq+mWIIAsRE+mb4ElO i2/VAdBfDUeRilpMdD4/xpEJu0w0no1uoYJRYvdpdliWB6+eFBgHT1q9n9IxslQZc0ZqGUIR7BJz IY313DDN5dlWCjHFNm0pFJe9LdqJRxmI2EsEPeu2PGcedAATDdCG2pNn+DMDrho8a2l49sAsjuGD P3f5mf/+n1JawrSHCthsqUfBVCllQz5KwJYfwa33d69ssQRevsG2lC2XkC0n0rse6YNqhPbEsq4j BmUmpSdYKwcitG+mYkgad/LVUCeaKdOW+yj1uiR2YuOMWev7btVCxL5Bx/UCAwEAAaOCArkwggK1 MDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AudmVyaXNpZ24uY29tMBIG A1UdEwEB/wQIMAYBAf8CAQAwcAYDVR0gBGkwZzBlBgtghkgBhvhFAQcXATBWMCgGCCsGAQUFBwIB FhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vY3BzMCoGCCsGAQUFBwICMB4aHGh0dHBzOi8vd3d3 LnZlcmlzaWduLmNvbS9ycGEwNAYDVR0fBC0wKzApoCegJYYjaHR0cDovL2NybC52ZXJpc2lnbi5j b20vcGNhMS1nMy5jcmwwDgYDVR0PAQH/BAQDAgEGMG4GCCsGAQUFBwEMBGIwYKFeoFwwWjBYMFYW CWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFEtruSiWBgy70FI4mymsSweLIQUYMCYWJGh0dHA6Ly9s b2dvLnZlcmlzaWduLmNvbS92c2xvZ28xLmdpZjAuBgNVHREEJzAlpCMwITEfMB0GA1UEAxMWUHJp dmF0ZUxhYmVsNC0yMDQ4LTExODAdBgNVHQ4EFgQUeUdhCEH9OASiS+e1zPVD9kkrEfgwgfEGA1Ud IwSB6TCB5qGB0KSBzTCByjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8w HQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMTk5OSBWZXJpU2ln biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFz cyAxIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzOCEQCLW3VWhFSF CwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAA4IBAQA5Tc9BmYG1qQW1UjjpOYSJbOQ0qFrn2GwJTCQa ulmkhztzIfGTgc+/aGNaZ/41hSuhw12jSsI6Gd0w1sxN7/HSgZfKVFpDvzeLeo4ZjQ9DqIzyr2Cz FYqzlZw84J6zJ5ikNXIX5fwqXYfTig3C0UUq+MD0rCqTOtWuEnAI6/s74nfs6CtkNXbNutrg0csU 1nFYm77VPn222egkxSRmTF2RH3azFz5/DcYhiS+zN7ih/1yybUneZVJC+w6I0u1KHb9L4/jMcvpI DmWOScjW+JmYO7eUPjFxBof6bFlTLtffK+1fYwCsFe0DuFUWjMZoA+ciqHMLsbyg2lJY3QoOf8GC MYIEizCCBIcCAQEwgfIwgd0xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEf MB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazE7MDkGA1UECxMyVGVybXMgb2YgdXNlIGF0 IGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9ycGEgKGMpMDkxHjAcBgNVBAsTFVBlcnNvbmEgTm90 IFZhbGlkYXRlZDE3MDUGA1UEAxMuVmVyaVNpZ24gQ2xhc3MgMSBJbmRpdmlkdWFsIFN1YnNjcmli ZXIgQ0EgLSBHMwIQWHhoTgAzG9cOoMyystNGGDAJBgUrDgMCGgUAoIICbTAYBgkqhkiG9w0BCQMx CwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMzAzMTAwMDU1NDJaMCMGCSqGSIb3DQEJBDEW BBSVCEM/y8OCUIM2iDzqgc+Yk/hOFzCCAQMGCSsGAQQBgjcQBDGB9TCB8jCB3TELMAkGA1UEBhMC VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3 b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3Jw YSAoYykwOTEeMBwGA1UECxMVUGVyc29uYSBOb3QgVmFsaWRhdGVkMTcwNQYDVQQDEy5WZXJpU2ln biBDbGFzcyAxIEluZGl2aWR1YWwgU3Vic2NyaWJlciBDQSAtIEczAhBYeGhOADMb1w6gzLKy00YY MIIBBQYLKoZIhvcNAQkQAgsxgfWggfIwgd0xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2ln biwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazE7MDkGA1UECxMyVGVybXMg b2YgdXNlIGF0IGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9ycGEgKGMpMDkxHjAcBgNVBAsTFVBl cnNvbmEgTm90IFZhbGlkYXRlZDE3MDUGA1UEAxMuVmVyaVNpZ24gQ2xhc3MgMSBJbmRpdmlkdWFs IFN1YnNjcmliZXIgQ0EgLSBHMwIQWHhoTgAzG9cOoMyystNGGDANBgkqhkiG9w0BAQEFAASCAQA9 /5rYaHwH1ZBgrzkNK/cDUZ7HwC3j7A4Z7WsYs/vZ/CFrdpz6kYEGE8aMt4oWp45CcRMHz+Az0nO7 ztZG8L/sIiM5WPNMNBiE0IhOit0KOmfncFZWmIcU3MJVxgY4rzhhTDoPPTm+tjMHtt3NQdlOchq/ KF2icQUUSTvpzEUfwN0FxNJlRt/IwJKs/dHIc4INpMDWrwQmR3s7tYy0DDLkDNt2LhMcJveW9cng yREHtY9X4l2JjkZtLdnTXpudMcH67v74rAxuBJhXjitaW0KyySCgVfYv2gWTkYGVcyROQV0pDGIU hC1oSmW7+VydChc0MjWsC69TN1flvH1swhobAAAAAAAA --Apple-Mail=_E825A5B2-40D0-4B27-9624-E2B9D44AF162--