どこへ案内された?
304 は「君が前に持っていったコピー、まだ変わっていないよ。ダウンロードしなくて大丈夫」という応答です。 渡り廊下で先生が「君のノートは前と同じ内容だから、また書き写さなくていいよ」と声をかけてくれる——あの「持ち帰らずに済んだ」感触に似ています。
クライアントが ETag や Last-Modified を覚えておいて、次に同じものを要求するとき「これは前と同じ?」と問い合わせます。サーバーが「同じだよ」と答えるのが 304。本文は返さないので、通信量と表示時間が大きく節約されます。
渡り廊下からのひとこと
学校の連絡黒板の前を毎朝通るとき、内容が昨日と同じなら、書き写すまでもなく素通りしてよい。先生も「昨日と変わらないよ」と一言かけるだけで済む。お互いの労力を抑えながら、必要な情報共有はちゃんと続いていく。
304 はこの「変化があるときだけ動く」工夫を Web 全体に広げたサインです。ページを高速化し、サーバー負荷を下げ、モバイル回線にもやさしい。Web のパフォーマンスを支える、地味だけど偉大な番号です。
たどり着くまで
新しい場所へ、こうたどり着く:
- 手元のキャッシュを使い続ける:
ETagが一致するなら手元のコピーで OK Cache-Controlを併用して期限を整える:必要に応じて再検証の頻度を調整- ETag を生成・比較する仕組みを意識:サーバー側もハッシュベースで管理
- CDN で 304 が返る構成を作る (管理者向け):オリジン負荷を下げ、表示も速くなる
実際にはこう見える
$ リクエスト
curl -i https://example.com/some/path ↓ レスポンス
HTTP/1.1 304 Not Modified
Content-Type: text/html; charset=utf-8
<!DOCTYPE html>
<html><body><h1>304 Not Modified</h1></body></html>