2010-12-30 8 views
5

HTTP 1.1 führte eine neue Klasse von Kopfzeilen ein, Cache-Control-Antwortheader, um Web-Publishern mehr Kontrolle über ihren Inhalt zu geben und die Einschränkungen von Expires zu beheben.HTTP Headers: Ist Cache-Control genug, oder brauche ich noch Expires?

Expires ist eine Art von Schmerz aufgrund seiner Einschränkungen. Da es sich um ein absolutes Datum handelt, müssen zuerst die Uhren auf dem Webserver und der Cache des Clients synchronisiert werden; Wenn sie eine andere Vorstellung von der Zeit haben, werden die beabsichtigten Ergebnisse nicht erreicht, und Caches könnten veralteten Inhalt fälschlicherweise als frisch betrachten.

Ein weiteres Problem mit Expires ist, dass Sie leicht vergessen, dass Sie bestimmte Inhalte zu einem bestimmten Zeitpunkt ablaufen lassen. Wenn Sie eine Expires-Zeit nicht aktualisieren, bevor sie erfolgreich ausgeführt wurde, wird jede Anforderung an den Webserver zurückgegeben, wodurch die Auslastung und die Latenz erhöht werden.

Also, müssen wir Expires mehr verwenden, oder ist Cache-Control (speziell Max-Age auf eine weit in der Zukunft liegende Anzahl von Sekunden eingestellt) genug für meinen statischen Inhalt? Ich möchte vermeiden, Expires zu verwenden, aber sollte ich beide setzen?

Antwort

5

Im Allgemeinen gilt es als Best-Practice, beide zu verwenden, da Expires auch von HTTP/1.0-Proxys und -Clients verstanden werden (obwohl dies selten vorkommt).

Fast alle Server-Plattformen berechnen dynamisch den Expires-Header für Sie.

+0

Ich werde sehen, was ich mit Amazon S3 tun kann. Und ich denke, das Einstellen der Expires-Header alle paar Monate ist nicht so beschwerlich. – Rudiger