Cache-Control-Header wiederholt; gültig oder nicht? (Nginx)
Habe ich eine Ressource in meinem Nginx konfiguriert ist, wie dieser:
location ~ foo\.js$ {
add_header Cache-Control public;
expires 1d;
}
Wenn ich das mit Firebug und Blick auf die überschriften zeigt er das an:
Cache-Control max-age=86400, public
Die Website mithilfe von HTTPS, so möchte ich sicherstellen, dass ich es zu Recht, denn anscheinend Browsern nicht zwischengespeichert, es sei denn, es ist max-age>0 UND public
. Dies sehen
Aber was passiert mit meinem Nginx wenn ich curl -Ik https://...
ist, dass er sagt:
...
Expires: Sat, 22 Jan 2011 18:23:36 GMT
Cache-Control: max-age=86400
Cache-Control: public
...
Er wiederholt die Cache-Control
header! Ganz klar Firebug nicht Verstand. Aber ist es richtig?
Gibt es vielleicht eine bessere Möglichkeit, um Expires
und Cache-Control
(mit public
) in einer nur zwei Zeilen?
InformationsquelleAutor der Frage Peter Bengtsson | 2011-01-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, es ist gültig und gleichwertig verwenden Sie mehrere Cache-Control-Header.
Aus der HTTP 1.1 spec:
Es ist leicht zu überprüfen, dass diese Bestimmung gilt für die Cache-Control-header, weil der wie ist es definiert:
Zu verstehen, wie zu interpretieren die Zeile oben, sehen Sie die spec ' s Schreibweisen. Die
1#
bedeutet "eine Komma-getrennte Liste von einem oder mehr".InformationsquelleAutor der Antwort jaredjacobs
Ich hatte das gleiche problem auf anderen Konfiguration. Was für mich gearbeitet ist, ändern Sie die Reihenfolge von zwei Zeilen, die festlegen, Kopf-und Platz-header Einstellung nur nach "server" öffnende Klammer. Wird dieser Header gesetzt, um alle Objekte, die vielleicht, aber vielleicht arbeiten Sie in "if" - Anweisung zu:
Scheint es, dass add_header sendet header vor Ablauf der Richtlinie, um Zeit zu haben, um es zu ändern.
InformationsquelleAutor der Antwort Ross