HTTP ステータスコード
リファレンスHTTP レスポンスステータスコード(1xx〜5xx)の検索付きクイックリファレンス。
| コード | 理由フレーズ | カテゴリ | 説明 |
|---|
このページの内容
HTTP ステータスコードリファレンスとは?#
すべての HTTP レスポンスは 3 桁のステータスコードを持ち、リクエストに何が起きたかを 1 つの数字でクライアントに伝えます。この桁はランダムではありません。最初の桁がファミリーを示します — 1xx は「お待ちください、情報を送ります」、2xx は「どうぞ、成功しました」、3xx は「別の場所を見てください」、4xx は「あなた(クライアント)の間違いです」、5xx は「私(サーバー)の間違いです」。この 5 つのファミリーを覚えておけば、ブラウザのリクエストであれ、実行した curl であれ、アプリケーションログのエラーであれ、あらゆる HTTP のやり取りが一目で読めます。
厄介なのは、実運用で 60 種以上のコードがあり、隣り合うコードの違いが微妙なことが多い点です — 401 と 403、302 と 307、422 と 400。本ページはそれらすべての検索可能なリファレンスです — コード、IANA の理由フレーズ、ファミリー、平易な解説を収録しています。数字か単語を入力すると、表が即座に絞り込まれます。
使い方#
- 閲覧または検索。 表はすべてのコードをファミリー(
1xxから5xx)ごとにグループ化して列挙します。上部の 検索 ボックスで絞り込めます。 - 思いついたままに検索。 フィルターは意図を汲み取ります:
30や418のような 数字 で前方一致検索します —30は3xxリダイレクトファミリー全体を浮かび上がらせます。redirect、timeout、teapotのような 単語 で、大文字小文字を区別せず理由フレーズと解説を検索します。
- 行を読みます。 各行には コード(数字)、理由フレーズ(「Not Found」などの標準フレーズ)、カテゴリ(ローカライズされたファミリーラベル)、説明(そのコードが返される状況の短い解説)があります。表の下のステータスバーが一致した行数を報告します。
主な機能#
- IANA の完全セットに、事実上の標準コードを追加。 Web が実際に返すすべてのコードを収録します。
100 Continueから511 Network Authentication Requiredまで、WebDAV 固有の207/208/226エントリ、ジョークの418 I'm a Teapot、法的に規定された451を含みます。 - 前方一致対応の数字検索。
4と打ってもランダムな部分集合は出ません —4xxクライアントエラーすべてが順に並びます。覚えていないファミリーを探すのにうってつけです。 - 理由フレーズと解説をまたぐ単語検索。 「rate」で
429 Too Many Requests、「range」で416 Range Not Satisfiable、「auth」で401と407の両方が浮かび上がります。 - 理由フレーズは普遍的。 フレーズ(「Not Found」「Gateway Timeout」)は翻訳ではなく技術的識別子であり、サーバーが実際に通信路上で送るものと一致するため、ドキュメントや課題 tracker にそのまま貼れます。
- 完全にブラウザ内で動作。 データセットはページに同梱されており、フィルタリングはローカルで行われ、ネットワークリクエストはありません。
実例#
ほぼすべての開発者が一度はつまずく 3 つのコードが、クライアントエラーの三連符 401、403、404 です。数字 40 で検索すると、3 つとも並んで一覧できます。
- 401 Unauthorized — 「認証が必要ですが、失敗したか提供されていません。」サーバーはあなたが誰かを知りません。解決策: 認証情報(ログイントークン、API キー)を送る。
- 403 Forbidden — 「リクエストは有効ですが、サーバーは処理を拒否しています(権限不足)。」サーバーはあなたが誰か正確に知っていて、それでもこれを許可しません。解決策: 別のパスワードではなく、権限を得る。
- 404 Not Found — 「要求されたリソースが見つかりませんでした。」URL 自体が間違っているか、リソースが存在しません。解決策: パスを修正する。
最も有用な区別は 401 と 403 です。「あなたを知らない」(ログイン)と「あなたを知っている、しかしだめ」(アクセスを求める)です。再認証で 403 が直ることは決してなく、URL をいじって 401 が直ることも決してありません。
2 つ目の便利な検索はリダイレクトファミリーです。30 で検索すると、301 と 302 は歴史的に次のリクエストでメソッドを変更することを許可していた(POST が GET に退化する可能性)のに対し、307 と 308 は元のメソッドを保つために導入されたことが分かります。モダンな API がフォーム送信をリダイレクトする際に 301/302 ではなく 307/308 を指し示すのはそのためです。
よくある質問#
ステータスコードの最初の桁は何を意味しますか?#
ファミリーを示します。1xx は情報(サーバーが「待って、もっと来る」と言っている)、2xx は成功、3xx はリダイレクト(別の場所を見る)、4xx はクライアントエラー(リクエストが間違っていた)、5xx はサーバーエラー(リクエストは正常だがサーバーが失敗した)です。残り 2 桁がそのファミリー内の固有のコードを識別します。
418 は本物のステータスコードですか?#
コーヒーを淹れるのを拒むティーポットについてのエイプリルフールの RFC に由来するため、本番向けではありません。とはいえ、一部のサービスは「意味不明なものを送ってきた」という遊び心のある応答として実際に 418 を返すことがあり、認識しておいて損はありません。本リファレンスがこれを載せているのは、実運用で出会うためです。
一部のコードが WebDAV と記されているのはなぜですか?#
207 Multi-Status、423 Locked、507 Insufficient Storage のようなコードは、共同ファイル編集のための HTTP 拡張である WebDAV のために定義されました。通常の Web API では稀ですが、ファイルシステム的なインターフェースを公開するシステムでは現れるため、文脈が通じるよう解説に WebDAV 起源を記しています。
理由フレーズはどこから来ていますか?#
IANA に登録された標準の英語理由フレーズです — サーバーがステータス行でコードの後に付けるのと同じ文字列です(例: HTTP/1.1 404 Not Found)。これらは技術的識別子であるため、翻訳せずそのまま表示します。ローカライズされるのは列見出し、カテゴリラベル、そしてこの解説テキストです。