2011-01-25 7 views

答えて

1

Nginxの静的ファイルをサーバーする場所のexpiresディレクティブを設定します。ブラウザーは、有効期限に達するまでサーバーとの照合をやり直すことはありません。その時点で、静的ファイルが変更されていない場合でも、サーバーは304応答を返送し、ブラウザが再び確認する前に期限切れ時間に達する必要があります。

ちなみに、200応答コードは、単に要求されたリソースが返されていることを意味します。これは、HTTPレスポンスでキャッシュヘッダーが送信されるかどうかとは関係ありません。

+0

私は2週間に設定満了しているが、Google Chromeの開発ツールは、まだ304の要求の代わりに、200のコードを示します。それは間違った情報を与えていますか? – ustun

4

Expiresだけでは動作が正しく設定されていないことがわかりました。以下は、必ず火されています:

# Set cache 
expires 1M; 
add_header Pragma public; 
add_header Cache-Control "public"; 

これは希望あなたの場所のブロックに行く..

私はまた、200は何とかと同じであること。これにはそこに情報を誤解がたくさんあると思います200(キャッシュ)。私の理解から

200 - サーバ要求 - 転送OK 200(キャッシュ) - OK - (キャッシュから)なしサーバ要求 304 - サーバ要求 - なし転送(変更されません)

200(キャッシュ)私はそれが全くサーバー要求をしないことを理解しています。

0

200はキャッシュ応答ではありません。それは成功を示し、結果を含むためには応答が必要です。 304は変更されていないリソースを示す。それはあなたがすでにそれを持っていると言います。何も返されません。だから、あなたが提案しているのは、すべての304の200番の偽装が失敗するはずです。たとえそれがあなたの要求を保存したり、偽の200応答で何かをスピードアップしたりしない場合でも。

編集:いくつかのケースでは200は、リソースが成功して、キャッシュから取られていることを意味...

関連する問題