it-swarm.com.de

Unterstützung des HTTP-Headers If-Modified-Since

Ich bin mir nicht sicher, ob dies in diesem Forum oder im Serverfehler-Forum besser ist ...

In den Richtlinien für Google Webmaster wird Folgendes angezeigt:

"Stellen Sie sicher, dass Ihr Webserver den HTTP-Header" If-Modified-Since "unterstützt. Mit dieser Funktion kann Ihr Webserver Google mitteilen, ob sich Ihr Inhalt seit dem letzten Crawlen Ihrer Website geändert hat. Durch die Unterstützung dieser Funktion sparen Sie Bandbreite und Overhead."

(unter diesem Link: http://www.google.com/support/webmasters/bin/answer.py?answer=35769#1 )

Ich kontaktierte Godaddy und sie sagten mir:

"Ich verstehe, Sie möchten wissen, ob auf Ihrem Server derzeit der HTTP-Header" If-Modified-Since "installiert ist. Ich habe ein externes Tool verwendet, um dies zu testen, und festgestellt, dass er derzeit nicht von Ihrem Server verwendet wird. Außerdem konnte ich nicht Um eine zuverlässige Quelle zu finden, die bestimmte Anforderungen an die Funktionsweise dieses Servers abruft. Um festzustellen, ob Ihr Server dies unterstützt, müssen Sie uns die genauen Spezifikationen zur Verfügung stellen, die für die Ausführung erforderlich sind. "

Wie stelle ich sicher, dass der HTTP-Header "If-Modified-Since" unterstützt wird und aktiv ist?

Vielen Dank

3
John

Dieser If-Modified-Since -Header wird vom Client und nicht vom Server gesendet: Der Server muss nur entsprechend reagieren. Dieser Anforderungsheader "Ermöglicht eine 304 Nicht geändert bei unverändertem Inhalt zurückzugeben "

Eine bedingte GET-Methode fordert an, dass die identifizierte Ressource nur übertragen wird, wenn sie seit dem im If-Modified-Since-Header angegebenen Datum geändert wurde. Der Algorithmus zur Ermittlung umfasst die folgenden Fälle:

  • Wenn die Anforderung normalerweise einen anderen Status als 200 (OK) ergibt oder wenn das übergebene If-Modified-Since-Datum ungültig ist, ist die Antwort genau die gleiche wie bei einem normalen GET. Ein Datum, das nach der aktuellen Uhrzeit des Servers liegt, ist ungültig.

  • Wenn die Ressource seit dem Datum If-Modified-Since geändert wurde, entspricht die Antwort genau der eines normalen GET.

  • Wenn die Ressource seit einem gültigen If-Modified-Since-Datum nicht geändert wurde, gibt der Server eine Antwort 304 (nicht geändert) zurück.

Mit dieser Funktion können zwischengespeicherte Informationen mit minimalem Transaktionsaufwand effizient aktualisiert werden.

Es ist erwähnenswert, dass es nur für statische Dateien automatisch funktioniert (da solche Dateien direkt vom Webserver (Apache/IIS/etc) abgerufen werden können) Erkennen Sie die Änderungen. Für dynamisch erstellte Seiten (von PHP/ASP.NET usw.) müssen Sie Ihre eigene Logik in den Code implementieren, der diese generiert Seite, wenn Sie solche Anforderungsheader effizient behandeln möchten.

Dies wird für dynamisch generierte Seiten nur sehr häufig implementiert, wenn Sie über ein sehr gutes Ganzseiten-Cachesystem verfügen - entweder über das von Ihnen verwendete Framework, über den Webserver (IIS kann dies tun) oder über Ihren Proxy (wie z. B. -). Lack , zum Beispiel).

Sowohl Apache als auch Microsoft IIS unterstützen diese Anforderungsheader (wie sie von GoDaddy für Shared Hosting-Pläne verwendet werden).

Hier ist ein Tool (von mir nicht getestet), mit dem Sie überprüfen können, ob Ihre Website diesen Header unterstützt. Das Ergebnis hängt natürlich davon ab, welche Ressource Sie anfordern (statische Datei oder dynamisch generierte Seite):

2
LazyOne

Wenn Sie Apache ausführen, müssen die Module mod_expires und mod_headers installiert und aktiviert sein. Ihr Webhost muss Apache möglicherweise neu kompilieren, um sie einzuschließen, wenn sie nicht installiert sind.

Wenn mod_expires und mod_headers aktiv sind, können Sie den Header Last-Modified senden und steuern, indem Sie Ihre .htaccess-Datei so bearbeiten, dass er Folgendes enthält:

# Expire all files one week after they're accessed 
ExpiresActive On 
ExpiresDefault "access plus 1 week" 

Weitere Informationen und Einstellungen finden Sie in der Apache mod_expires-Dokumentation.

Indem Sie Inhalte mit einem Last-Modified -Header bereitstellen, unterstützt Ihre Site jetzt Anforderungen von Clients, die If-Modified-Since -Header verwenden.

0
Nick