目次
はじめに
前回の記号の変換記事(こちら)が好評だったので、同じように一覧記事を作成しました。
インターネットを利用していたら様々なコードを見かけると思いますので、それらを一覧化しています。
HTTPステータスコードそのものの技術的な詳細や、エラーコードの解消方法などは先人の方々の参考になる記事が多数ありますので、今回の記事は「500エラーとは」「404以外のエラーコードとは」といったようなライトな調べごとに対して回答となれるように意識しています。
ステータスコード全般の概要把握に役立ててください。
コード番号
| コード番号 | 役割 | 状態 |
|---|---|---|
| 100番台 | 情報レスポンス | サーバーにて情報が受け入れ可能・処理中の状態。 |
| 200番台 | 成功レスポンス | リクエストがサーバに送信され、受理された状態。(リクエストの成功) |
| 300番台 | リダイレクトメッセージ(リダイレクション) | リクエストに対するリダイレクト(転送)が発生した状態。 |
| 400番台 | クライアントエラーレスポンス | クライアントの要求に誤りや問題があって処理が完了できない状態。 |
| 500番台 | サーバーエラーレスポンス | サーバー側に誤りや問題があってリクエストを処理できない状態。 |
コードの種別は概ね5種類です。
100番台から500番台までに別れ、それぞれが異なる役割を持ちます。
テキストだけだとわかりにくいので、めちゃくちゃザックリ例えると以下のような具合です。
100番台 → 店員がいて、客の対応が可能な状態
200番台 → 店員へ注文を行い、それが通った状態。
300番台 → 店員へ注文を行おうとしたら、別の担当者を案内された状態。
400番台 → 注文者側の問題で、目的が達成できない場合。
500番台 → 店側の都合で、注文が行えない状態。
100番台/情報レスポンス
Informational
| コード | 意味 | 状態 |
|---|---|---|
| 100 Continue | リクエスト継続 | リクエストが受信され、サーバーに拒否されていない状態 Expect: 100-continue の利用により、100 のレスポンスが確認できた場合に処理を継続させるなどの指定ができます |
| 101 Switching Protocols | プロトコル切替 | プロトコル切替の表示 サーバに対してプロトコル切替をリクエストし、それがなされたことを示します |
| 102 Processing | 処理中 | WebDAVで用いられ、リクエストの処理中の状態 WebDAVはファイル共有プロトコルの1種で、現在は非推奨な機能。 |
| 103 Early Hints | 早期ヒントの伝達 | サーバーがレスポンスを準備している間に、接続予定のサイトやリソースに関連する情報を提供 事前にリソース情報(ヒント)をブラウザ側で受け取り、CDN等の外部リソースの先読み等に用いられます。 |
200番台/成功レスポンス
Success
| コード | 意味 | 状態 |
|---|---|---|
| 200 OK | 成功/処理 | リクエストの成功。正常に処理がされた状態。 リクエストのメソッドにより200 OKのレスポンスの意味合いと形式は使い分けられます。 |
| 201 Created | 成功/リソースの作成完了 | リクエストが成功し、リソースの作成が完了した状態。 記事の投稿、ファイルアップロード、ユーザーの作成などの追加・登録の処理が成功したときなど。 |
| 202 Acce | 承認 | リクエストは成功、処理は未完了な状態。 バッチ処理など、リクエストを実行したタイミングとは別の非同期処理など。 |
| 203 Non-Authoritative In | 成功/信頼できない情報 | リクエストは成功したものの、オリジナルと同一かは保証できない状態。 プロキシやキャッシュサーバーなどによりサーバーの200レスポンスから変更された状態。 |
| 204 No Content | 成功/内容が空 | リクエストが成功し、レスポンスのbodyが空な状態。 DELETE(削除)実行時や、リクエストを実行しても画面更新がない処理のときなど。 |
| 205 Reset Conte | 成功/初期化 | リクエストが成功し、クライアントへ初期化指示を出す。 入力完了したフォームの情報クリアなど。 |
| 206 Partial | 一部成功 | 部分的なコンテンツのリクエストに対しての成功。 中断した接続の再開や、コンテンツの一部分だけを請求するときなど。 |
| 207 Multi-Sta | 成功/混在 | WebDAVで用いられ、レスポンスが混在している状態。 前項と同じく。 |
| 208 Already Repor | 成功/報告済み | WebDAVで用いられ、リクエストが処理済である状態。 前項と同じく。 |
| 226 IM Used | 成功/IM(インスタンス操作) | HTTP デルタエンコーディングの拡張ステータスコードでIM利用中を示す状態。 IM はインスタンス操作 (instance manipulation) の略。 |
300番台/リダイレクトメッセージ(リダイレクション)
Redirection
| コード | 意味 | 状態 |
|---|---|---|
| 300 Multiple Choices | 複数の候補 | リクエストに対して返却可能な複数のレスポンスがある状態。 |
| 301 Moved Permanently | 恒久的に移転 | リクエストされたURLの恒久的な変更。 いわゆる301リダイレクト。ヘッダに移転先のURLが示されます。 |
| 302 Found | 一時的な転送 | リクエストされたURLの一時的な変更。 いわゆる302リダイレクト。一時的なリダイレクト対応など。現在は307が推奨。 |
| 303 See Other | 他ページの参照を推奨 | リクエストに対して別URLの参照を案内する状態。 GETメソッドで返却。ブラウザでフォームからPOSTした際、完了画面の表示など。 |
| 304 Not Modified | 変更なし | 再度のリクエストに対して更新が内容がないことを示す状態。 リソースをキャッシュ済の状態でリクエストを送り、再送する必要がないと判断されるとき。 |
| 305 Use Proxy | プロキシ指定 | 指定されたプロキシサーバー経由のアクセスのみ可とする状態。 現在は非推奨。 |
| 307 Temporary Redirect | 一時的な転送 | リクエストされたURLの一時的な変更。 いわゆる307リダイレクト。302と異なり同じメソッドを保証する。 |
| 308 Permanent Redirect | 恒久的な転送 | リクエストされたURLの恒久的な変更。 いわゆる308リダイレクト。301と異なり同じメソッドを保証する。 |
400番台/クライアントエラーレスポンス
Client Error
| コード | 意味 | 状態 |
|---|---|---|
| 400 Bad Request | 不正なリクエスト | リクエストに誤りがあり処理に失敗した状態。 URLやクエリ文字列のミス、ブラウザ起因の原因、容量超過の場合など。 |
| 401 Unauthorized | 無許可・認証エラー | basic認証やログインコンテンツの認証に失敗した状態。 401 authorization required で表示されたりもする。 |
| 402 Payment Required | 要支払 | リクエスト実行に支払いが必要であると示す状態。 2026年現在では標準外。将来の活用のために予約されているコード。 |
| 403 Forbidden | 禁止・アクセス禁止 | リクエストを受理し、拒否した状態。 IP制限など特定の許可領域に対象外のクライアントがアクセスを試みた際に返却。 |
| 404 Not Found | 未発見・存在しない | リクエストされたリソースが存在しない状態。 悲しい。 |
| 405 Method Not Allowed | 許可されていないメソッド | リクエストを受理し、許可されていないメソッドのために拒否した状態。 GETのみが許可されているAPIをPOSTで利用を試みるなど。 |
| 406 Not Acceptable | 受け入れ不可 | リクエストされたヘッダ情報の中にサーバが対応可能なものがない状態。 クライアントが送信したAcceptヘッダ内にサーバで返却可能な形式がない状態。返却されることは稀。 |
| 407 Proxy Authentication Required | プロキシへの認証が必要 | リクエストされたサーバにアクセス可能なプロキシサーバへの認証情報を求めている状態。 リクエスト前にプロキシサーバへの認証を済ませる必要がある。稀。 |
| 408 Request Timeout | タイムアウト | クライアントがサーバへ接続後、規定時間内にリクエストを送信完了できなかった状態。 ブラウザが機能として利用している場合や、回線速度の低下による処理未完了のときなど。 |
| 409 Conflict | 競合・衝突 | リクエストの内容が現在のサーバリソースと矛盾するために処理が実行できない状態。 編集の競合や、既存のファイルよりも古いファイルのアップロードを試みている場合など。 |
| 410 Gone | 消滅 | リクエストされたリソースが恒久的に消滅した状態。 コンテンツの所有者側で意図的に削除をし、再掲の予定がないことを示す状態。 |
| 411 Length Required | データの長さの指定が必要 | リクエストにContent-Lengthヘッダ設定されておらず、サーバが拒否した状態。 Content-Length ヘッダーは受信側に対して、送信するデータのバイト数を示します。 |
| 412 Precondition Failed | 前提条件の失敗 | リクエストがサーバ側の前提条件を満たしていない状態。 409に近い。編集リクエストの対象が既に変更されており、編集リクエストの衝突を予防したりなど。 |
| 413 Content Too Large | コンテンツ超過 | リクエストした内容がサーバ側の制限値を越えている状態。 POSTデータが大きすぎる場合など。以前は「Payload Too Large」だった。 |
| 414 URI Too Long | URI超過 | リクエストしたURIの長さがサーバ側の制限値を越えている状態。 以前は「Request-URI Too Long」。URL(Uniform Resource Locator)はURI(Uniform Resource Identifier)の一種。 |
| 415 Unsupported Media Type | 非対応のメディアタイプ | リクエストしたメディアタイプ(コンテンツ)がサーバで対応していないことを示す状態。 アップ可能な画像がjpgにも拘らずpngをPOSTしたときなど。 |
| 416 Range Not Satisfiable | 要求範囲を満たせない | リクエストで指定された範囲が満たされない状態。 Range指定のリクエスト実行時に指定した範囲が、実際のリソースのサイズを越えている場合など。 |
| 417 Expectation Failed | Expectヘッダの要求失敗 | リクエストしたExpectヘッダの要件をサーバで満たすことができない状態。 Expect: 100-continue のリクエスト時に成功条件を満たしていないケース。 |
| 418 I'm a teapot | 私はティーポットである | 私はティーポットである。故にコーヒーを入れることを拒否する。 ジョーク用。お行儀の悪いリクエストに返してあげましょう。 |
| 419 | 非公式。LaravelでCSRFトークンのエラーやPage Expiredで用いられたりする。 | |
| 421 Misdirected Request | リクエストの宛先ミス | リクエストが間違ったサーバを指定している状態。 リバースプロキシの設定ミスやロードバランサーのミス、ブラウザの誤ったキャッシュやSSL/TLS証明書の不一致など。 |
| 422 Unprocessable Content | 処理できないリクエストコンテンツ | リクエストは適正だがサーバで処理できない状態。 LaravelやAPIでバリデーションエラー時や必須フィールドの欠落時に返す(らしい)。 |
| 423 Locked | 対象のロック | WebDAVで用いられ、リクエストした対象のリソースがロックされている状態。 |
| 424 Failed Dependency | 依存関係の失敗 | WebDAVで用いられ、リクエストしたアクションが別のアクションに依存しており、それが失敗した状態。 |
| 425 Too Early | 早すぎるリクエスト | Firefoxで用いられ、リクエスト間隔が早すぎることを示す状態。 クライアントが早期データ(Early-Data)を送信し、その処理に失敗した際に返す(らしい)。 |
| 426 Upgrade Required | アップグレードの要求 | リクエストのHTTPS/HTTPバージョンが古いため、アップグレードを要求している状態。 通信プロトコルの切替を要求する際に返す(らしい)。 |
| 428 Precondition Required | 条件付きリクエストの要求 | サーバ側でリクエストを条件付きにする必要があることを示す状態。 サーバの更新時など、競合防止のために「現在のサーバの状態」を前提条件を含めるように求める場合など。 |
| 429 Too Many Requests | リクエストの送信過多 | 短時間に既定値以上のリクエストを送信したため、サーバからアクセスを制限されている状態。 botやクローラーにDDoS攻撃などのアクセス過多。リダイレクトループなど。◯レバンの予約競争などでも… |
| 431 Request Header Fields Too Large | リクエストヘッダのフィールド超過 | リクエストのHTTPヘッダーが規定値を超過している状態。 Referer の URL が長すぎる場合やCookieが大量に存在する状態など。 |
| 451 Unavailable For Legal Reasons | 法的な理由に基づいた拒否 | リクエスト対象が法的な理由で利用できない状態。 華氏451度に因んでいるとのこと。「5ちゃんねる」などはこれを用いて欧州アクセスをブロックしているようです。 |
500番台/サーバーエラーレスポンス
Server Error
| コード | 意味 | 状態 |
|---|---|---|
| 500 Internal Server Error | サーバーエラー | サーバーエラーによりリクエストが実行できない状態。 サーバーエラー全体を指し示しており、適切な5XXエラーが不明な状態。 |
| 501 Not Implemented | 未実装 | サーバーがリクエスト実行に必要な機能に対応していない状態。 実装されていないメソッドであることの表示。 |
| 502 Bad Gateway | 不正なゲートウェイ | クライアントとサーバ間の中継地点にて、サーバから無効なリクエストを受け取った状態。 サーバ自身はゲートウェイ(プロキシ等)へエラーを返却できている。リバースプロキシやCSNの設定ミスでも起こりうる。 |
| 503 Service Unavailable | サービス停止 | サーバーがリクエストを処理する準備ができていない状態。 アクセス負荷で一時的にサーバーが落ちている状態や、メンテナンス中など。 |
| 504 Gateway Timeout | ゲートウェイのタイムアウト | クライアントとサーバ間の中継地点にて、サーバから応答がない状態。 502がプロキシ宛にエラーを返却しているのに対し、何も応答がない状態。 |
| 505 HTTP Version Not Supported | サポート対象外のHTTPバージョン | リクエストのHTTPバージョンにサーバが対応していない状態。 古いサーバにHTTP/2をリクエストしたり、新しいサーバにHTTP/1.0でアクセスを試みるなど。 |
| 506 Variant Also Negotiates | 循環参照 | リクエストに対しサーバが対応できない様式の状態。 コンテンツの配置ミスや無限ループ。 |
| 507 Insufficient Storage | ストレージ不足 | リクエストの完了に必要なストレージ容量が不足している状態。 WebDAVで用いられていたが、サーバリバースの不足を示す状態として他でも用いられるようになった。 |
| 508 Loop Detected | 無限ループ | リクエスト処理中に無限ループに陥った状態。 無限ループのためにサーバが処理を打ち切り(終了)した状態。 |
| 510 Not Extended | 拡張機能に未対応 | リクエストで拡張機能を指定したが、それにサーバが対応していない状態。 とあるが、レンタルサーバでは静的ファイルへのアクセス集中などの一時エラーで用いている模様。 |
| 511 Network Authentication Required | ネットワーク認証の要求 | リクエストに対し、ネットワークアクセスのための認証が必要な状態。 リクエスト送信前に認証を求めるケースで、公共Wi-Fiの同意など。 |
| 521 Web server is down | サーバーダウン | リクエストがCloudflareに接続できたが、Cloudflareがオリジンサーバーに接続できない状態。 Cloudflare固有のステータス。 |
おわりに
ここまで読んでいただいてありがとうございます。
AIの進化によって検索結果に概要がまとめられているような時代に、記事を最後まで読んでいただけるのは嬉しいです。
今回の記事はHTTPのステータスコードが実際には勉強したことがなかったなと、改めてそれぞれの意味を確認しようと思ったのがきっかけです。
すると様々な記事は参考になりましたが、「そもそもステータスコードって何なん?」レベルの目線に立っているのはなかなか少ないなと感じました。
技術的な詳細やエラーの解消記事はすでに先人がたくさん作成してくれていますので、ここではなるべく簡易に・他の人へも伝えやすいように、というのを意識しました。
なので、それぞれのコードの内容は手打ちです。
時代に逆行しているかもしれませんが、AIに記事を任せるというのはどうにも好きになれず。
参考記事をAIに投げて「要約して」の一言で終わらせるような量産記事には絶対にしたくなく、ささやかな反抗心でタイピングし続けました。
この文を読んでいるということは、何か引っかかるものがあって記事詳細を開き、ここまで読み進めていただいたといことだと思いますので本当にありがたい次第です。
なんらかの学習に役立ったり、他人へのレクチャーへ使える内容になっていたら幸いです。
baserCMSやWebサイト構築のご相談など
お気軽にお問い合わせください