2

たとえば、 http ://www.mywebsite.com/now/Hello.jpg にあるこの Hello.jpg (注: この URL は存在しません)など、ファイルの作成日またはファイル サイズを取得する方法は? この質問の目的は、Web サイトに更新されたバージョンのファイルがあり、ローカル フォルダー内のファイルが古くなっていることが検出されたときに、アプリケーションにその Web サイトからファイルを再ダウンロードさせることです。何か案は?

4

2 に答える 2

5

HEAD リクエストを使用すると、リソースのヘッダーが送信されます。リソースが変更されたかどうか、最終変更時刻、サイズ (コンテンツの長さ)、および日付を示すキャッシュ制御ヘッダーを確認できます。

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

各 Web サーバーの管理者の狂気に応じて、この基本的で簡単なアプローチを多くのヒューリスティックで装飾する必要があることに注意してください。それぞれが好きなヘッダーを送信できるからです。キャッシング ヘッダー (Last-Modified、Expires、Cache-Control)、Content-Length、etag が提供されていない場合は、テストのために再ダウンロードする必要があります。

于 2008-09-16T09:45:44.263 に答える
1

ウェブサーバーは、その目的のために最終変更ヘッダーや etag ヘッダーを送信する場合があります。また、リクエストで if-modified-since ヘッダーを送信することもできます。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html セクション 14.19、14.25、および 14.29を参照してください。

于 2008-09-16T09:45:48.227 に答える