Domanda

Come ottenere la data di creazione o la dimensione del file, ad esempio questo Hello.jpg su http://www.mywebsite.com/now/Hello.jpg(nota:Questo URL non esiste)?Lo scopo di questa domanda è fare in modo che la mia applicazione scarichi nuovamente i file da qualsiasi sito Web quando rileva che il sito Web dispone di una versione aggiornata dei file e che i file nella mia cartella locale non sono aggiornati.Qualche idea?

È stato utile?

Soluzione

Se usi la richiesta HEAD invierà le intestazioni per la risorsa, lì puoi controllare le intestazioni di controllo della cache che ti diranno se la risorsa è stata modificata, l'ora dell'ultima modifica, la dimensione (lunghezza del contenuto) e la data.

$ 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.

Tieni presente che probabilmente dovrai decorare questo approccio semplice e semplice con molte euristiche a seconda della follia dell'amministratore di ciascun server web, poiché ognuno può inviare qualunque intestazione preferisca.Se non forniscono intestazioni di memorizzazione nella cache (Last-Modified, Expires, Cache-Control) né Content-Length né etag, ti ritroverai costretto a riscaricarlo per testarlo.

Altri suggerimenti

Il server web potrebbe inviare un'intestazione last-modified e/o etag a tale scopo.E potresti inviare un'intestazione if-modified-since nella tua richiesta.

Vedere http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.htmlparagrafi 14.19, 14.25 e 14.29

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top