2012-10-10 4 views
9

Meine Lesung der Definition der 'privaten' Direktive für den Cache-Control-Header ist, dass es verhindern wird, dass ein Teil der Antwort von Zwischen-Proxies zwischengespeichert wird. Also, basierend darauf, klingt es, als ob ich die 'private' Direktive verwende, dann ist es auch nicht notwendig eine 'no-cache = "set-cookie"' Direktive zu verwenden, um Zwischen-Proxies anzuweisen Caching des Set-Cookie zu unterdrücken Header.Cache-Control: 'privat' macht 'no-cache = "set-cookie"' unnötig?

jedoch in Abschnitt 4.2.3 in this document, heißt es:

Der Ursprungsserver die folgende zusätzliche HTTP/1.1 Response-Header senden soll, abhängig von den Umständen:

  • Zur Unterdrückung Caching des Set-Cookie-Headers: Cache-Kontrolle: no- cache = "set-cookie".

    und eine der folgenden Möglichkeiten: cache- Kontrolle:

  • Um das Caching von einem privaten Dokument in gemeinsam genutzten Caches unterdrückt privat.

    [...]

und ich sehe eine Tonne Beispiele online, die beiden Richtlinien haben.

Also brauche ich wirklich beide, um zu verhindern, dass Zwischenproxies einen Set-Cookie-Header zwischenspeichern? Ich habe einige Tests durchgeführt, und es sieht so aus, als ob Internet Explorer auf die Anweisung 'no-cache = "set-cookie' 'reagiert, indem ich jedes Mal eine vollständige Anfrage ausstelle, also würde ich es lieber nicht hinzufügen, wenn es nicht ist notwendig.

Antwort

4

Cache-Control: Private verhindert, dass intermediäre Caches den Inhalt speichern, daher ist die set-cookie-Direktive in diesem Fall nicht anwendbar.

+3

aber Google Analytics 1x1 gif verwendet immer noch diesen Header-Wert: privat, no-cache, no-cache = Set-Cookie, Proxy-Revalidate – Valentin