5

基本的に、キャッシュを有効にすることで、ウェブサイトをよりユーザーフレンドリーにしようとしています。進捗状況をテストするために、Web サーバーへの呼び出し数を最小限に抑えることを最終目標として、Chrome と IE の開発者ツールを使用しています。chrome が何かをキャッシュすると、開発されたツールは200 (cached)のリクエスト応答を返します。一方、IE は常に小さなリクエストをサーバーに送信し、キャッシュから読み取る前に304 レスポンスを取得します。

HTTP に適切に準拠しているブラウザーはどれですか。答えが Chrome の場合、IE で不要な 304 呼び出しを削除するにはどうすればよいですか?

4

2 に答える 2

2

IE には、キャッシュに関する特定の動作があります。おそらく間違いではありませんが、他のブラウザーとは異なります。詳細については、この投稿を参照してください。

ベスト プラクティス (!) に従っていない 1 つの手法は、有効期限が将来の健全な時期であることを確認し、最終変更日を IE に送信しないことです。その後、IE は if-modified-since リクエストを送信せず、キャッシュの有効期限が切れた場合にのみリクエストを送信します。その場合、304 の代わりに新しいドキュメント (200) を取得します。この新しいドキュメントは、有効期限を将来の健全な時間に設定する必要があります。したがって、将来の有効期限が切れるキャッシュされたバージョンを使用することで、多くのリクエストを排除します。

if-modified-since リクエストは、304 レスポンスの中心です。IE が送信してからドキュメントが変更されていない場合、304 応答は正しいです。問題は、有効期限が過ぎている場合、つまり、常にこのリクエストを行い (毎回サーバーを呼び出します!)、新しい有効期限日を決して取得しないことです。そのため、同じ呼び出しを行い続けるだけで、サーバーは同じ 304 応答で応答し続けます。

サーバーへのリクエスト数に関しては、クロムは問題ではないと思います。そうである場合、両方のブラウザで表示されているリクエストの数とフローをより適切に説明できますか?

于 2013-10-29T18:28:04.903 に答える