HTTPステータスコードはカフェ店員の返事
ブラウザがサーバーに何かを頼むと、返事には必ず3桁の数字が添えられています。HTTPステータスコードです。404くらいは見たことがあっても、301と304の違いは? と聞かれると意外と答えられません。
実はステータスコードは、カフェの店員の返事だと思うとよく整理できます。下の図1はカフェ「HTTP」の注文カウンターです。コードのボタンを押して、店員さんの反応を見てください。
覚えるのは「百の位」だけでいい
コードは何十種類もありますが、丸暗記は不要です。大事なのは百の位が責任の所在を表していること。2xxは「成功」、3xxは「別の場所への案内」、4xxは「注文した側のミス」、5xxは「お店側(サーバー)のトラブル」です。知らないコードに出会っても、百の位を見れば「誰が悪いのか」「次に何をすべきか」の見当がつきます。
現場で特に効くのが4xxと5xxの区別です。404や403が返っているならリクエストの内容(URL、認証、パラメータ)を疑う。500や503ならクライアント側をいくらいじっても直りません — サーバーのログを見に行くのが正解です。
間違えやすいペアを整理する
301と304はどちらも3xxですが意味はまったく違います。301は「お店ごと引っ越しました。今後は新住所へ」という恒久的な案内で、ブラウザや検索エンジンは行き先を覚え直します。304は「この前渡したものから変わってないよ」という返事で、ブラウザは手元のキャッシュをそのまま使います。中身が届かないのに画面が表示されるのはこのおかげです。403と404も似た者同士 — 403は「メニューにはあるけど、あなたには出せない(権限不足)」、404は「そのメニューは存在しない」。存在を隠したいページにあえて404を返すサイトもあります。
- ステータスライン
- レスポンスの1行目。「HTTP/1.1 200 OK」のようにコードと理由句が並ぶ。
- リダイレクト
- 3xxの案内を受けて、ブラウザが自動で別のURLに行き直すこと。
- 理由句
- OK や Not Found などコードに添える人間向けの短い説明。
まとめ
ステータスコードは無機質な数字に見えて、実態は店員さんの肉声です。「はいどうぞ(200)」「引っ越しました(301)」「それはあなたのミスです(4xx)」「すみません、こちらの不手際で…(5xx)」。百の位で責任の所在をつかみ、よく出る数枚の顔(200, 301, 304, 403, 404, 500, 503)を覚えておけば、エラー画面やログの前で迷う時間はぐっと減ります。