Pergunta

Como obter um ficheiro, a data de criação ou tamanho do arquivo, por exemplo este Hello.jpg no http://www.mywebsite.com/now/Hello.jpg(nota:Esta URL não existe)?O objetivo desta pergunta é para fazer a minha aplicação re-baixar os arquivos a partir de qualquer site, quando foi detectado que o site tem uma versão atualizada dos arquivos e os arquivos em minha pasta local estão fora de data.Qualquer idéias?

Foi útil?

Solução

Se você usar a CABEÇA pedido ele vai enviar os cabeçalhos para o recurso, lá você pode verificar os cabeçalhos de controle de cache que vai dizer se o recurso tiver sido modificado, hora da última modificação, o tamanho (comprimento de conteúdo) e a 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.

Note que você provavelmente vai ter que decorar este básica e de fácil abordagem com muitas heurística dependendo da loucura de cada servidor da administração, como cada um pode enviar o que os cabeçalhos de que eles gostam.Se eles não fornecem o cache de cabeçalhos (Last-Modified, Expira, Cache-Control), nem de Comprimento de Conteúdo nem de etag, você seria preso com redownloading-lo para testar.

Outras dicas

O servidor web pode enviar um last-modified e/ou cabeçalho etag para essa finalidade.E você pode enviar uma se-modificado-desde cabeçalho no seu pedido.

ver http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html seções 14.19, 14.25 e 14.29

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top