2016-11-21 20 views
2

私はブラウザのキャッシュに取り組んでおり、私が学ぶのを助けるためにノードのhttpサーバを書いています。私はキャッシュコントロールと最後に変更されたものを使用しました。その後、このURLをChromeに入力して、F5キーを押してキャッシュが機能するかどうかを確認します。結果はちょっと変わったようです。 one return 200 and the others return 304 as exceptedこの要求は200(キャッシュから)を返しますが、他の要求は304を返します。

Intro_1.jpgがstyle.css(background-image:url(../images/intro_1.jpg)によって読み込まれました。 ) なぜこの要求は200(キャッシュから)を返しますが、他は304を返しますか? これは間違いありませんか?

答えて

0

はい、200対304ステータスコードは、リソースが「期限切れ」になっているかどうかによって異なります。あなたは正しいです、ステータスコード200はキャッシュからのもので、HTTP要求はありませんでした。そのため、DevToolsのメモリキャッシュからが表示されます。ステータスコード304は、キャッシュエントリの有効期限が切れており、ブラウザに変更があった場合にサーバに尋ねるHTTPリクエストを行うという選択肢がないことを意味します。 304というステータスコードを返すサーバーは、新しいバージョンのリソースをダウンロードする必要がなく、同じキャッシュエントリを使用し続けることができることをブラウザに知らせる方法です。

より:他の人がありませんが、いくつかの が期限切れになる可能性があるのでWhat is the difference between HTTP status code 200 (cache) vs status code 304?

各リソースは、独自のタイムアウト値を持っています。 DevToolのHTTP応答を確認する必要があります。ネットワークタブでリクエストをクリックし、右側で応答をクリックします。サーバーがブラウザに与えた有効期限の値を見ることができます。リソースがmax-ageと異なるか、または異なるリソースがあるかどうかを確認してください。last-modified。この場合、jpgがCSSファイル内にあったことは関係ありません。

関連する問題