Die meisten Websites setzen max-age=31536000
(1 Jahr) auf die Cache-control
Überschriften statischer Assets wie Logo-Bilder. Beispiele:
Es gibt jedoch eine bemerkenswerte Ausnahme: Das Google-Logo hat max-age=691200
(8 Tage).
Ich habe in der Vergangenheit die Überschriften auf dem Google-Logo überprüft und es war definitiv 1 Jahr. (Früher war es Teil eines Sprites, und jetzt ist es ein eigenständiges Logo, aber das ist wahrscheinlich eine andere Frage ...)
Was könnten gültige technische Gründe sein, warum sie die Cache-Lebensdauer auf nur 8 Tage reduzieren möchten? Die Google-Startseite ist eine der am besten optimierten Seiten der Welt. Ich kann mir also vorstellen, dass es einen guten Grund dafür gibt.
Bearbeiten:
Bitte stellen Sie sicher, dass Sie diese Punkte verstanden haben, bevor Sie antworten:
Niemand nutzt kurze
max-age
Lebensdauern, um in Zukunft ein statisches Asset ändern zu können. Wenn Sie es ändern, stellen Sie es einfach unter einer anderen URL bereit. Also nein, es hat nichts mit Google Doodles zu tun. Denken Sie daran: auch wenn Google nicht diesen grundlegenden Trick von HTTP verstehen, 8 Tage immer noch nicht angemessen sein, da nur die Benutzer , die nicht das Original - Logo haben zwischengespeichert würde das Doodle auf doodle-Tag sehen - und dann Diese Gruppe von Nutzern würde das Doodle für die folgenden 8 Tage sehen, nachdem Google es wieder geändert hat :)Webserver sorgen sich nicht darum, die Caches von Clients (oder Proxys) zu "füllen". Der Client verwaltet dies selbst. Wenn er sein eigenes Speicherlimit erreicht, werden nur die Elemente mit der niedrigsten Priorität gelöscht, um Platz für neue Elemente zu schaffen. die Prioritätsbewertung wird basiert auf der Frage „Wie wahrscheinlich ich von zu profitieren sind diese URL im Cache gespeichert zu haben?“, die nichts mit dem zu tun, was
max-age
Wert des Server gesendet , wenn die URL ursprünglich angefordert wurde, es ist eine Heuristik auf der ‚Basis frecency ‘ von Anfragen für diese URLmax-age
Lassen Sie den Server einfach einen Grenzwert festlegen - den Zeitpunkt, zu dem der Client das Element verwerfen soll, unabhängig davon, wie oft es wiederverwendet wird. Es wäre sehr nett und vertrauensvoll von einem nachgeschalteten Client / Proxy, sich darauf zu verlassen, dass Ursprungsserver ihre Caches nicht auffüllen, aber ich glaube nicht, dass wir in dieser Welt leben;)