Firebug/Chrome/IE9のネットワークウォーターフォールを見ると、 このページ、例 。
リクエスト中にブラウザがIf-Modified-Sinceを送信していないからだと思いますか? 304が発生するように、最初の応答ヘッダーで何かを変更する必要がありますか?
リクエスト中にブラウザがIf-Modified-Sinceを送信していないからだと思いますか?
正しい。
304が発生するように、最初の応答ヘッダーで何かを変更する必要がありますか?
はい。後続のリクエストで304レスポンスコードを持つリソースのoriginalレスポンスヘッダーを比較すると、次のことがわかります。
/govtrip/site/grphx/
フォルダーにあります最初の瞬間は、ほとんどの場合、それらのヘッダーを設定する.htaccessファイルがそのフォルダーにあることを示しています(または、そのフォルダーの構成ファイルの別のセクション)。
304応答コードを持つリソースのrequestヘッダーを見ると、「If-Modified-Since」および「If-None-Match」ヘッダーが存在することがわかります。それらに基づいて"If- *"ヘッダー Apacheはリクエストへの返信方法を決定します。私は確信しています-ここでパターンを見ることができます-どの値がどこで使用されているのかを見つけるのは非常に簡単です。
Resource: /govtrip/site/grphx/system_green.gif
元の応答:
Etag: "AAAAS9z9Emo"
Expires: Thu, 14 Jun 2012 18:24:24 GMT
Last-Modified: Wed, 20 Apr 2011 17:29:45 GMT
後続のリクエスト:
If-Modified-Since: Wed, 20 Apr 2011 17:29:45 GMT
If-None-Match: "AAAAS9z9Emo"
私の経験では、ブラウザーはIf-Modified-Since
ヘッダーを使用しません。 Googlebotなどのクローラーから送信されるのを見ただけです。条件付きダウンロードを引き出すには、最初にETag: hash-here
で応答し、次に同じURLの結果のリクエストでIf-None-Match: hash-here
に注意してください。キャッシュは条件付きダウンロードが発行される前に最初に期限切れになる必要があるため、適切な即時期限切れヘッダーを使用するようにしてください。
注:If-Match
ヘッダーもあります。これは部分的なダウンロードでのみ使用され、ファイルが変更されて再開が不可能になったことを検出できるようにすることで破損を防ぎます。高度な状況では、再開するファイルを選択することもできます。