Laboratory of Mobile Agricultural Chemicals Searcher
携帯農薬検索実験室

研究会

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
55 / 114 ツリー <前へ | 次へ>

〔519〕ACFinder 061029版 kabe (06/10/29 21:59)

〔535〕Re:HTTP レスポンスヘッダで解決できそう kabe (06/11/11 9:18)
〔538〕Re:HTTP レスポンスヘッダで解決できそう Hidemi Oya (06/11/11 11:54)

〔535〕Re:HTTP レスポンスヘッダで解決できそう
 kabe WEB  (06/11/11 9:18)

引用なし
   >Hidemi Oyaさん

kabe です。

> キャッシュをバイパスして本体から HTTP レスポンスヘッダを取得する関数が、思ったよりも簡単に作れてしまいました。ダウンロードページもダウンロードファイルも、HTTP レスポンスヘッダに Last-Modified と ETag が入っているので、前回受信時の Last-Modified または ETag の値を INI ファイル等に保存しておけば、現在のファイルが前回と異なるかどうかが簡単に判定できます。
人間が書いた文字列を比較するよりは、どう考えてもこちらの方がスマートですね。

> また、この方法なら、[#533] で書いたようなミスにも対応できるという利点があります。
ということはダウンロードページ自体をチェックするのは意味がなく、5つのLZHファイルの更新の有無をそれぞれチェックした方がいいですね。

> ってことで、近々新しい UrlDl.pas を送りますので、ご利用ください。
よろしくお願いします。

〔538〕Re:HTTP レスポンスヘッダで解決できそう
 Hidemi Oya WEB  (06/11/11 11:54)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>人間が書いた文字列を比較するよりは、どう考えてもこちらの方がスマートですね。
 おまけに、こちらの方法なら、HTTP ヘッダを取得する際のリクエストヘッダに、If-Modified-Sice フィールドに Last-Modified の値、あるいは If-None-Match フィールドに ETag の値を入れておけば、HTTP サーバが更新したかどうかを自動的に判断してくれるので、これらの比較ルーチンを Delphi で書く必要がないというメリットもあります。

>ということはダウンロードページ自体をチェックするのは意味がなく、5つのLZHファイルの更新の有無をそれぞれチェックした方がいいですね。
 と思ってたんですが、毎回5つのファイルの HTTP ヘッダを取得するのもいかがなものかという感がなきにしもあらずですね。
 9月にクロールピクリンの適用データにバグがあったとき、JPP-NET はデータをすぐ修正しましたが、薬検は検索データベースも Excel ファイルも次の登録変更までデータを修正しませんでした。ダウンロードページが更新されてないのに、LZH ファイルだけが密かに更新される可能性は極めて低そうです。
 ってことで、LZH ファイルが更新されているかどうかの判定にはダウンロードページの Last-Modified を利用するってのが良さそうです。

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
55 / 114 ツリー <前へ | 次へ>
ページ:  ┃  記事番号:   
(SS)C-BOARD vv3.8 is Free.