ブラウザのキャッシュがある場合は、次のように進めます。初めてこのページを通常どおり開きます。それから最初の"/> ブラウザのキャッシュがある場合は、次のように進めます。初めてこのページを通常どおり開きます。それから最初の">

ホームページ  >  記事  >  バックエンド開発  >  キャッシングに関する質問

キャッシングに関する質問

WBOY
WBOYオリジナル
2016-06-13 13:34:11923ブラウズ

キャッシュの問題について
1.

aa






ブラウザのキャッシュを確認するために、次の操作を行いました:
初めてこのページを通常どおり開きます。次に、2 度目にアドレス バーで Enter キー (更新ではありません) を押して

にアクセスします。次のアクセス方法は、2 回目の (アクセスを入力) 訪問中にキャプチャされたパッケージです:
(1) 使用される IE httpwatch を使用して、それが確かにキャッシュから読み取られたファイルであり、サーバーに HTTP リクエストが送信されていないことを確認します

(2) FireBug を使用して FireFox でそれを確認します。これもキャッシュから読み取られたファイルであるはずですこのため、ページは HTTP リクエストを 1 つだけ開始しました (最初は 3 つでした)。
問題は、なぜ依然としてこのリクエストを開始するのかということです。ファイルはローカルから直接読み取るべきではないでしょうか?


2.
このファイルのキャッシュを無効にするために、次の設定を行いました:
Expires: -1
Cache-Control: no-cache
pragma : no -cache

IE を使用すると、確かにファイルはキャッシュから読み取られていないことがわかりますが、HTTP リクエストが開始され、200 が返されます。しかし、私の質問は、このファイルがキャッシュから読み取られない場合、ブラウザはサーバーに 3 つのリクエストを送信する必要があるということです。画像がキャッシュされている場合でも、ローカルで読み取る前にリクエストを開始して 304 コードを返す必要があります。なぜ一度しか開始されないのですか? ? ?



3.
ブラウザは通常、デフォルトでどのくらいの期間ページをキャッシュしますか? HTTPレスポンスのヘッダ情報に設定するにはどうすればよいでしょうか?




ありがとうございます! ! ! : )


-----解決策---------
1.通常のプロセスでは、ターゲット ファイルが変更されたかどうかを確認するリクエストが開始されます。変更がない場合は、キャッシュから読み取ります
IE は、アドレス バーの内容が変更されていないことを検出するとリクエストを開始しません。これも可能です
2. キャッシュを無効にするヘッダーはページにのみ影響します。ファイル自体は無効であり、写真には影響しません(写真のキャッシュも無効にしていないとは言いませんでした)。
------解決策------------------
ブラウザとブラウザは異なります。単純にブラウザがいくつかあります。ブラウザのキャッシュ ヘッダーを無視し、常に etag/if-modified-since を使用してサーバーをリクエストします。一部のブラウザは、期限切れかどうか、1970 かどうかを気にしない場合があります。または、cache-control:no -cache は応答をキャッシュしませんが、キャッシュします。一定期間。 一般に、ブラウザは後者です。これは、ブラウザのキャッシュは実装に関連し、プロトコルはプロトコルであり、ブラウザの実装はブラウザ実装者にとっての問題であることを意味します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。