🚀 はじめに

この記事でわかること

  • HTTPステータスコードとは?(200/301/404/500…数字の意味と全体像)
  • なぜ必要?(ブラウザとサーバーが“通じ合う”合図としての役割)
  • よく出るコードの読み方(404/500/301/302/429/503 などを“怖くない言葉”で)
  • 実用ヒント(ブラウザの開発者ツール/curl での確認、リダイレクトとSEOの基礎)

こんな人向け

  • 中学生〜大人まで、IT知識がほとんどない
  • 404 とか 500 って何のエラー?」をやさしく知りたい人
  • API学習の最初の一歩として、応答の意味をつかみたい人

初心者でも安心な理由

  • 信号・郵便・お店の張り紙のような身近なたとえで解説
  • このページだけで完結(最後に公式ドキュメントや学びの道しるべも)
  • PaperMod向けに読みやすい構成(目次・図版の想定つき)

✅ 概要解説

HTTPステータスコードとは何か

Webの“合図” です。
ブラウザ(見る側)とサーバー(届ける側)が「どうなったか」を数字で伝えます。

HTTPステータスコードの全体像(1xx〜5xx)
  • 1xx(情報):まだ作業中/進行中のお知らせ
  • 2xx(成功):うまくいきました(例:200 OK
  • 3xx(リダイレクト):住所が変わりました。こっちへどうぞ(例:301/302/307/308
  • 4xx(クライアントエラー)送り方が悪い/欲しいものがない(例:404 Not Found400 Bad Request
  • 5xx(サーバーエラー)お店側の事情で提供できません(例:500 Internal Server Error503 Service Unavailable

たとえ:

  • 2xx=OK(注文が通って料理が出た)
  • 3xx=転送(別の店舗に案内)
  • 4xx=注文ミス(メニューにない/記入漏れ)
  • 5xx=厨房トラブル(機器故障・混雑)

何のためにあるのか

  • 状況を正確に共有するため:成功/失敗/転送/制限などを機械にも人にも分かる形で伝える
  • 自動処理の判断に使うため:アプリやAPIクライアントが次の動き(再試行・別URLへ移動・入力の見直し) を決めやすい
  • 検索エンジンやキャッシュの制御301/308 は恒久移転として扱われ、SEO・キャッシュに影響

ステータスコードがないとどうなる?

  • ブラウザは “うまくいったのか、ダメなのか”が分からない
  • 検索エンジンやアプリは自動で正しい対応ができない
  • ユーザー体験が悪化(エラーなのに成功扱い、あるいはその逆…)

どんな場面で使える?

  • Web閲覧のトラブル原因の当たりをつける(404/500/503/504 など)
  • API開発・テストで“期待どおりの応答か”をチェック
  • サイト移転(リダイレクト)とSEOの基本ルール理解
  • レート制限(429)/メンテ表示(503) など、混雑・保守の設計

📊 ひと目でわかる“代表コード”チートシート

番号名前ざっくり意味よくある場面ひとことで覚える
200OK成功ページ表示、API成功レスポンスうまくいった
201Created作成完了APIで新規データを作った新規作成完了
204No Content中身なし成功削除成功など返すものがない成功、でも返すものナシ
301Moved Permanently永続的な引っ越しドメイン統合、恒久的URL変更恒久転送(SEO向け)
302Found一時的な移動(※)一時的に別URLへ仮住まい(※後述)
303See Other別の場所を見てフォーム送信後などにGETへ誘導結果を別URLで
307Temporary Redirectメソッド保持で一時転送POSTのまま転送したい一時転送(メソッド保持)
308Permanent Redirectメソッド保持で恒久転送恒久的な移転恒久転送+メソッド保持
304Not Modified変更なしキャッシュが有効ダウンロード不要
400Bad Requestリクエスト不正パラメータ・形式ミス入力がおかしい
401Unauthorized認証が必要ログイン/トークン不足認証してね
403Forbidden禁止権限不足/アクセス拒否入ってはだめ
404Not Found見つからないURLまちがい/削除済みないよ
405Method Not Allowedメソッド禁止POST禁止のURLでPOSTその方法は×
408Request Timeout送るのが遅すぎ通信途切れ・遅延間に合わない
409Conflict競合同時更新の衝突ぶつかった
410Gone恒久的に消えたコンテンツ終了もう撤去済み
429Too Many Requestsアクセス過多連打・レート制限落ち着いて
500Internal Server Errorサーバー内エラーバグ・例外サーバーで事故
502Bad Gateway中継サーバーの不調CDN/プロキシの背後が×中継でNG
503Service Unavailable一時停止・混雑メンテ/過負荷いまお休み
504Gateway Timeout中継先が返事なしバックエンド遅延待ちきれずタイムアウト

302は歴史的経緯でPOST→GETに変わる実装が多く、“一時的転送+メソッド保持”は 307 を使うのが安全。
恒久転送は 301(古典)か 308(メソッド保持)。SEOでは 301/308 が基本


🧪 かんたん実験:自分の手で確かめよう

ブラウザの開発者ツール

  1. ページを開く → 右クリック → 検証(またはF12)
  2. Network(ネットワーク) タブを開く
  3. ページを再読み込み → 一覧から任意のリクエストを選ぶ
  4. Status Code を確認(例:200 / 301 / 404 …)

curl でヘッダーだけ見る(-I

bash
# 200 OK(成功)の例
curl -I https://example.com

# 301/302 リダイレクトの確認(-Lで追いかける)
curl -I -L https://old.example.com

# 404 Not Found の例(存在しないパス)
curl -I https://example.com/not-found

ポイント-I はヘッダーだけ取得、-L はリダイレクトを追跡。
APIの場合は -X POST-H でヘッダー・メソッドを指定して試せます。


💡 小話・豆知識・逸話

  • 404の由来?
    「CERNの404室が…」という俗説が有名ですが根拠は薄いとされます。仕様的には “見つからない”を伝える汎用コードです。
  • 418 I’m a teapot
    エイプリルフールのジョーク規格“HTCPCP(コーヒーポット制御)”の一部として登場。正式なHTTP標準ではありませんが、遊び心で実装しているサービスもあります。
  • 308 Permanent Redirect
    “メソッド保持の恒久転送” として後から追加。301の“歴史的あいまいさ” を避けたいときに使われます。
  • 304 Not Modified
    キャッシュが効いているサイン。“中身は同じだから再ダウンロードは不要”という節約の合図です。
  • HTTP/1.1/HTTP/2/HTTP/3でも概念は同じ
    通信のやり取り(バイナリ・多重化)は変わっても、ステータスコードの意味=“セマンティクス”は共通です。

実運用のコツ

  • 301/308…恒久転送。SEOはこれ。古いURLはなるべく早く新URLに統一。
  • 302/307…一時転送。A/Bテストや一時対応で使い、長期は避ける。
  • 503 + Retry-After…メンテ中は一時停止を正直に宣言。クローラーにも優しい。

📚 参考リンク

公式・標準(一次情報)

開発者向け入門(とても読みやすい)


🛠️ 関連テーマ・次に理解すると良いこと

  • HTTPメソッド(GET/POST/PUT/PATCH/DELETE)
    何をしたいか」の宣言。ステータスコードは“結果” の宣言。
    HTTPメソッドの違いを初心者向けに解説(GET/POST/PUT/PATCH/DELETE/HEAD/OPTIONS)

    【初心者向け】HTTPメソッド(GET/POST/PUT/PATCH/DELETE/HEAD/OPTIONS)をやさしく解説|違い・使い分け・具体例

  • HTTPヘッダーとキャッシュ(ETag/Last-Modified/Cache-Control)
    304の裏にある仕組みを理解すると、速くて節約な配信ができる。
  • REST API入門
    201/204/400/401/403/404/409/422/429/5xx の“使い分け”が品質を左右。
  • リダイレクトとSEO
    301/308 の恒久転送、canonicalサイト移転の戦略。
  • トラブルシュートの道具
    ブラウザ開発者ツール/curl/Postman を使い分けて“どこで止まってるか”を診る。

🎯 まとめ

  • ステータスコードは“Webの合図”2xx=成功/3xx=転送/4xx=入力や宛先の問題/5xx=お店(サーバー)側の問題
  • リダイレクトは 301/308 を基本(恒久)。一時的なら 302/307
  • 304キャッシュが効いているサイン429落ち着いての合図、503メンテや過負荷
  • HTTP/2/3 でも意味は共通(セマンティクス)。
  • 開発者ツールや curl自分の目で確かめる習慣が早道。
  • 次はメソッド/ヘッダー/キャッシュを押さえて、API設計サイト運用へステップアップ。

注意・補足

  • 418はジョーク仕様(エイプリルフール由来)で、正式なHTTP標準ではありません。学習の際は MDN/RFC 9110 を優先してください。
  • リダイレクト乱用はSEOに悪影響恒久移転は301/308、短期だけ302/307 を徹底。
  • 実サイトでは503 + Retry-After でメンテ表示すると、検索エンジンにもユーザーにも親切です。