2010-11-21 3 views
0

Wenn in .htaccessEine Frage, über die HTTP-Header-Cache ablaufen

<FilesMatch "\.(gif|png|jpg|jpeg|js|css|swf|ico)$"> 
    ExpiresActive On 
    ExpiresDefault "access plus 1 years" 
</FilesMatch> 

Headers in Browser:

Cache-Control:maxage=5184000 
Expires:Thu, 20 Jan 2011 10:18:51 GMT 

Dann Browser HTML-Code nicht Cache, es tut?

Und Google empfehlen 1 Monat senden verfallen, warum youtube Header senden

Expires:Tue, 27 Apr 1971 19:44:06 EST 

Antwort

1

Keine der Konfigurationsoptionen: Sie geben Browsern über keine Informationen zur Verfügung gestellt haben, wie lange wollen Sie die Daten für die zwischengespeichert werden. Die Entscheidung über das Zwischenspeichern des HTML-Codes hängt von den Anweisungen ab, die nicht von der Konfiguration der Frage und den Einstellungen des Browsers abgedeckt werden.

Ich habe noch nie eine Empfehlung von Google zum Auslaufen von Inhalten nach einem Monat gesehen. Der Caching-Ablauf sollte darauf basieren, wie häufig sich der Inhalt ändert. (Da sich die YouTube-Daten häufig ändern, sehr, werden ständig neue Videos und Kommentare hinzugefügt, dann ist "bereits abgelaufen" ein sinnvoller Wert für viele YouTube-Seiten).

+0

"Set Expires zu einem Minimum von einem Monat, und vorzugsweise bis zu einem Jahr, in der Zukunft. (Wir bevorzugen Expires über Cache-Control: Max-Alter, weil es breiter unterstützt wird.) Setzen Sie es nicht auf mehr als ein Jahr in der Zukunft, da dies gegen die RFC-Richtlinien verstößt. " Google empfehlen – meotimdihia

+0

ich erinnere mich nicht, aber viele Werkzeug empfehlen> 1 Monat> "<. Ich weiß nicht, wie – meotimdihia

+1

@ Meotimdihia: Ergänzende Medien wie Stylesheets, Bilder oder Skripte sind nicht oft ändern. In den meisten Fällen werden sie einmal erstellt und nicht geändert Deshalb empfehlen einige, diese Dateien so einzustellen, dass sie niemals ablaufen (verwenden Sie ein Ablaufdatum von mehr als einem Jahr) und verwenden Sie eine andere Datei, wenn sich der Inhalt geändert hat (einige verwenden Versionsinformationen oder eindeutige Token in der URL zu) machen die Ressource noch unbekannt). – Gumbo

1

Nein, Ihre Konfiguration wirkt sich nicht auf HTML-Antworten aus (vorausgesetzt, Sie verwenden keine der aufgelisteten Dateinamenerweiterungen).

Abgesehen davon, Ihr Cache-Control und Verfällt sagen nichts darüber, ob die Antwort im Cache gespeichert werden kann oder nicht. Sie sagen nur, dass , wenn die Antwort gespeichert ist, die gespeicherte Antwort nur frisch ist, bis das angegebene Ablaufdatum erreicht ist; Danach gilt die gespeicherte Antwort als veraltet.

Aber im Allgemeinen every successful response may be cached unless there are restrictions:

Sofern nicht ausdrücklich durch eine Cache-Steuerung beschränkt (section 14.9) Direktive, ein Caching-System kann eine erfolgreiche Antwort immer speichern (siehe section 13.8) als Cache-Eintrag, kann es zurückgeben ohne Validierung, wenn es frisch ist, und KANN es nach erfolgreicher Validierung zurückgeben.

Server verwenden häufig Ablaufdaten in der Vergangenheit, um anzuzeigen, dass die Antwort bereits abgelaufen ist.

+0

dann sollte ich ablaufen wie, wenn meine Seite Ansicht mehrere Stunden einmal ändern – meotimdihia

+1

@meotimdihia: Wenn Sie wissen, dass Ihre Seite innerhalb eines festen Intervalls geändert wird, können Sie die Seite zu diesem Zeitpunkt ablaufen lassen (aber das ist nicht möglich mit mod_expires); oder Sie legen fest, dass die Seite ab dem Zeitpunkt des Zugriffs eine Stunde abläuft. – Gumbo