web-dev-qa-db-ja.com

nginxステータスコード200および304

私はnginx + passengerを使用しています。 nginxレスポンス200と304を理解しようとしています。これは両方ともどういう意味ですか?時々、304で応答し、他は200で応答することがあります。YUIブログを読むと、ブラウザはサーバーで確認するためにヘッダー「Last-Modified」が必要なようです。なぜブラウザが最終変更日を確認する必要があるのか​​疑問に思います。これが私のnginx構成です:

location / {
    root /var/www/placexpert/public;   # <--- be sure to point to 'public'!
    passenger_enabled on;
    rack_env development;
    passenger_use_global_queue on;

    if ($request_filename ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|swf)$) {
        expires max;
        break;
    }
}

静的ファイルにヘッダー「Last-Modified」を追加するにはどうすればよいですか?どの値を設定する必要がありますか?

2
Chamnap

HTTP 200コードは、ドキュメント/リクエストが正常に検出され、提供/完了したことを意味します(ドキュメントが検出されなかった302(検出済み)または404とは対照的です)。

HTTP 304は、データが変更されていないことを意味します。したがって、マシンにキャッシュされたバージョンを使用して、サーバーからのデータのダウンロードを再度保存しました。これは通常、nginxを使用する場合は静的ファイルであり、構成のこのセクションが原因で、例の場合に当てはまるようです。

if ($request_filename ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|swf)$) {
    expires max;
    break;

これらの種類のファイルタイプに最大の有効期限を設定しているため、それらは再ダウンロードされません。

3
djk