# HTTP ステータスコード

> 仕様の解説ではなく、詰まったときのためのステータスコード事典。各コードの意味に加えて、フロントエンド・バックエンド・利用者それぞれが次に何をすればいいかまで。

- URL: https://bytescope.dev/ja/http-status/
- Locale: ja · Also: [en](https://bytescope.dev/en/http-status.md) · [zh-Hant](https://bytescope.dev/zh-Hant/http-status.md)
- Runs: すべてブラウザの中で動くので、何もアップロードされません。
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile.
- Updated: 2026-09-08

## What it does

### 三桁の数字を渡された、その瞬間のために

ステータスコードを興味本位で調べる人はほとんどいません。デプロイした途端にリクエストの半分が赤くなった、誰も再現できないエラーを顧客が報告してきた、監視のアラートが三桁の数字だけを引用してきた——調べる理由はたいていそれです。だからこのリファレンスは、そのコードが「障害はどこにあるか」について何を教えてくれるかから始めて、仕様の話はその後にします。定義は短いほうの話で、ルーターを見るのかプロキシを見るのか上流を見るのかを決めるほうが、午後をまるごと持っていきます。

### 読み手が 3 人いれば、答えも 3 つ

フロントエンド開発者が見る 404 は、たいてい「クリックでは開くのにリロードで壊れるルート」です。同じ 404 をバックエンド開発者が見ると、たいてい「アプリケーションがパスを見る前に足された、あるいは剥がされたプロキシの接頭辞」です。利用者にとっては、移動したリンクです。これは 3 つの別々の問題で、直し方も 3 つあります。1 つの段落に混ぜたページは 3 人の誰の役にも立たないので、ここではコードごとに 3 つを分けて書き、そのうちの誰かにとっての正直な答えが「やることは何も無い」であるときは、そうはっきり書きます。

### 標準か、ベンダー独自か、ただの慣習か

RFC 9110 は、準拠したクライアントとサーバーが解釈を共有するステータスコードを定義しています。よく使われるもののいくつかは別の文書にいて、429 は RFC 6585、308 は RFC 7538 です。そして本番で出会うコードには、そのどちらでもないものが相当あります。499 は nginx のソースから来ていますし、520 から 526 の帯は丸ごと Cloudflare のもので、エッジとオリジンの間の失敗が一般的な 502 として報告されないために作られました。どのページも自分がその 3 つのどれなのかを明記します。どこのドキュメントが権威なのかがそれで決まるからです——そしてこのサイト自体が Cloudflare の上で動いているので、52x のページはあなたと同じ側から書かれています。

## Limits

Does not test a live URL; it is a reference of HTTP status codes with meaning, causes and fixes.

## FAQ

### ステータスコードのクラス（1xx〜5xx）は何を表していますか？

最初の 1 桁がその分類そのものです。1xx は情報提供でアプリケーションのコードに出てくることはまれ、2xx はリクエストの成功、3xx は追加の動作——たいていはリダイレクトを辿ること——が必要という意味、4xx はリクエスト自体に不備があったという意味、5xx は正当に見えるリクエストを処理する途中でサーバー側が失敗したという意味です。RFC 9110 は、知らないコードに出会ったクライアントはそのクラスの `x00` として扱わなければならない、とも書いています。だから見慣れない 599 は 500 として処理して構いません。

### 実際に返ってきたステータスコードはどう確認しますか？

ブラウザなら、開発者ツールのネットワークパネルで、読み込まれたアセットではなくリクエスト自身の Status 列を読みます。ターミナルなら `curl -sS -o /dev/null -w '%{http_code}\n' https://example.com/page` が数字だけを出し、`-D -` を足せば応答ヘッダーも一緒に出ます。両者が食い違ったときに信じるべきはターミナルのほうです。拡張機能、Service Worker、キャッシュされた応答のどれもが、ブラウザの表示を変えてしまえるからです。

### 4xx は自分のせい、5xx は相手のせい、で合っていますか？

その分け方が意図ではありますが、保証ではなく目安です。設定を間違えたサーバーが出す 4xx はいくらでもあります——パスを壊したプロキシが返す 404、誰も当てるつもりのなかったルールが返す 403。逆に、要求しすぎたリクエストが引き金になる 5xx も同じくらいあります。クラスは「どちら側から先に見るか」を決めるために使うもので、誰が悪いかを決めるためのものではありません。

### この中で本当は標準ではないコードはどれですか？

418 はエイプリルフールの RFC から来た冗談で、それでも返すサーバーが実在します。499 は IANA にそもそも登録がなく、nginx 由来で「サーバーが答える前にクライアントが接続を閉じた」という意味なので、ブラウザではなくアクセスログに現れます。520 から 526 は Cloudflare 独自で、定義しているのは Cloudflare のドキュメントだけです。429 は後付けのように感じますが RFC 6585 という正式な標準で、308 も RFC 7538 の標準です。

### ステータスコードは SEO に影響しますか？

決定的に影響するものがあります。301 は評価を新しい URL へ引き継ぎますが、302 はクローラーに「移動は一時的なので古いほうを保持しろ」と伝えるので、恒久的な移動に 302 を使うと静かに損をします。404 はしばらく再クロールを招き、410 は索引に「このリソースは終わった」と伝えます。最悪なのは soft 404——200 で返されるエラーページ——で、検索エンジンはその謝罪文を本文として索引に入れてしまいます。
