Frage

Wie eine Datei Erstellungsdatum oder Dateigröße zu erhalten, zum Beispiel dieses hello.jpg unter http://www.mywebsite.com/now/Hello.jpg (beachten Sie : Diese URL existiert nicht) dieser Frage Zweck meiner Anwendung neu laden Sie die Dateien von der jede Website zu machen ist, wenn? es hat festgestellt, dass die Website eine aktualisierte Version der Dateien hat und die Dateien in meinem lokalen Ordner nicht mehr aktuell sind. Irgendwelche Ideen?

War es hilfreich?

Lösung

Wenn Sie die HEAD-Anfrage verwenden, wird es die Header für die Ressource senden, dort können Sie die Cache-Control-Header überprüfen, die Ihnen sagen, wenn die Ressource geändert wurde, Zeitpunkt der letzten Änderung, Größe (Content-Length) und Datum.

$ telnet www.google.com 80
Trying 216.239.59.103...
Connected to www.l.google.com.
Escape character is '^]'.
HEAD /intl/en_ALL/images/logo.gif HTTP/1.0

HTTP/1.0 200 OK
Content-Type: image/gif
Last-Modified: Wed, 07 Jun 2006 19:38:24 GMT
Expires: Sun, 17 Jan 2038 19:14:07 GMT
Cache-Control: public
Date: Tue, 16 Sep 2008 09:45:42 GMT
Server: gws
Content-Length: 8558
Connection: Close

Connection closed by foreign host.

Beachten Sie, dass Sie wahrscheinlich diesen grundlegenden und einfachen Ansatz mit vieler Heuristik des Irrsinn eines jeden Web-Server Admin-abhängig dekorieren haben, da jeder, was Header senden kann sie mögen. Wenn sie keine Caching-Header zur Verfügung stellen (Last-Modified, abgelaufen ist, Cache-Control) noch Content-Length noch etag, werden Sie mit redownloading steckt es zu testen.

Andere Tipps

Der Webserver könnte eine der letzten Änderung und / oder etag-Header zu diesem Zweck senden. Und Sie könnten eine if-modified-since Header in Ihre Anfrage senden.

finden Sie unter http://www.w3.org/Protocols/rfc2616/ RFC2616-sec14.html 14.19 Abschnitte, 14.25 und 14.29

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top