304(Not Modified)

ステータスコードは200だと思ってたのに304で、「なんで?これってうまいこと環境作れてないの?」って焦った。


(2009/03/29 追記)

DocumentRootの確認
$ ls -l /etc/apache2/sites-available/default
-rw-r--r-- 1 root root 985 2009-03-11 03:04 default
$ grep DocumentRoot /etc/apache2/sites-available/default
	DocumentRoot /var/www/
index.htmlのタイムスタンプ
$ ls -l /var/www/index.html
-rw-r--r-- 1 root root 45 2009-03-20 20:49 index.html

ブラウザキャッシュが存在する場合は動作が異なる。(細かい仕組みはキリがないのでここまで。)

304(Not Modified - 変更なし)
リクエストされたリソースが指定された日付以降に更新されていない。
クライアントが条件付きGETリクエストを実行し、アクセスは許可されたが、ドキュメントが更新されていない場合には、サーバはこのステータス・コードでレスポンスを行なうべきである。

HTTPステータス・コードとメソッド - CyberLibrarian
  1. クライアントは、webサーバに対象ページをリクエストする。(リクエストヘッダ内に、"If-Modified-Since" で「指定した生成日以降のファイルをくれ」の条件を付加)
  2. webサーバは、"If-Modified-Since" の内容より、クライアントへファイルを返すかを決定する。
  3. クライアントは、受け取ったHTTPステータスコードの内容により、キャッシュで賄うか判断する。