tigtools

HTTPステータスコード

HTTPステータスコードの意味、サーバーが返す状況、定義している仕様を確認できます。番号やキーワードで検索し、クラスで絞り込んで、コードへの直接リンクを共有できます。

ブラウザー内で動作 登録不要

79件のコードを表示

  • 100 Continue

    サーバーがリクエストヘッダーを受信し、クライアントが本文を送信できる状態です。大きな本文をアップロードする前に「Expect: 100-continue」を送ると返されます。

    RFC 9110で定義

  • 101 Switching Protocols

    サーバーが、クライアントのUpgradeヘッダーで要求されたプロトコルへの切り替えに同意しました。接続をWebSocketに切り替える場合などに返されます。

    RFC 9110で定義

  • 102 Processing

    廃止または未使用

    サーバーはWebDAVリクエストを受け付けましたが、処理はまだ完了していません。後のWebDAV仕様では廃止され、現在はほとんど使われていません。

    RFC 2518で定義

  • 103 Early Hints

    最終応答の前に送信され、Linkヘッダーに記載されたリソースの先読みをブラウザーが開始できるようにします。CDNやサーバーがページの読み込みを速めるために使います。

    RFC 8297で定義

  • 200 OK

    リクエストは成功し、応答に結果が含まれています。ページの読み込みやAPI呼び出しの成功時に返される通常の応答です。

    RFC 9110で定義

  • 201 Created

    リクエストは成功し、新しいリソースが作成されました。通常はLocationヘッダーでリソースを識別します。レコードを作成するPOSTの成功後などに返されます。

    RFC 9110で定義

  • 202 Accepted

    リクエストは処理対象として受け付けられましたが、まだ完了していません。エクスポートやバッチ処理など、作業をキューに入れるAPIで使われます。

    RFC 9110で定義

  • 203 Non-Authoritative Information

    リクエストは成功しましたが、変換プロキシによってオリジンサーバーから返されたコンテンツが変更されています。

    RFC 9110で定義

  • 204 No Content

    リクエストは成功し、返すコンテンツはありません。DELETEリクエストや、クライアントが応答本文を必要としないデータ保存でよく使われます。

    RFC 9110で定義

  • 205 Reset Content

    リクエストは成功し、クライアントは文書表示をリセットする必要があります。たとえばフォームをクリアする場合に使います。使用頻度は低いコードです。

    RFC 9110で定義

  • 206 Partial Content

    サーバーは、クライアントが要求したバイト範囲のみを返します。動画のストリーミングやダウンロードの再開、クライアントがRangeヘッダーを送信した場合などに返されます。

    RFC 9110で定義

  • 207 Multi-Status

    複数のリソースそれぞれのステータスコードを、XML本文に含めて返すWebDAVの応答です。

    RFC 4918で定義

  • 208 Already Reported

    WebDAVの207応答内で使われ、同じバインド済みリソースのメンバーが再度一覧に含まれるのを防ぎます。

    RFC 5842で定義

  • 226 IM Used

    サーバーが現在のリソースにインスタンス操作(差分エンコーディングなど)を適用しました。ほとんど見かけないコードです。

    RFC 3229で定義

  • 300 Multiple Choices

    リソースに複数の表現があり、クライアントがその中から選ぶ必要があります。実際にはほとんど使われません。

    RFC 9110で定義

  • 301 Moved Permanently

    リソースはLocationヘッダーに示されたURLへ恒久的に移転しました。ブラウザーや検索エンジンはリンクを更新します。追従時にPOSTをGETへ変更するクライアントもあります。

    RFC 9110で定義

  • 302 Found

    リソースはLocationヘッダーに示された別のURLに一時的に移転しています。ログイン後や短期間のリダイレクトでよく使われ、ブラウザーは通常GETで追従します。

    RFC 9110で定義

  • 303 See Other

    クライアントは別のURLからGETで結果を取得する必要があります。フォームのPOST後に確認ページへリダイレクトする場合に使われます(Post/Redirect/Getパターン)。

    RFC 9110で定義

  • 304 Not Modified

    キャッシュ済みのコピーがまだ有効なため、サーバーは本文を送信しません。ブラウザーがIf-None-MatchまたはIf-Modified-Sinceを使ってキャッシュ済みファイルを再検証すると返されます。

    RFC 9110で定義

  • 305 Use Proxy

    廃止または未使用

    Locationヘッダーに示されたプロキシを使うようクライアントに求めます。セキュリティ上の理由で非推奨となっており、ブラウザーは無視します。

    RFC 9110で定義

  • 306 (Unused)

    廃止または未使用

    予約済み。HTTP/1.1の初期草案で使われていましたが、現在は使用されていません。

    RFC 9110で定義

  • 307 Temporary Redirect

    リソースが一時的に別のURLへ移動しています。クライアントは同じメソッドと本文でリクエストを再送する必要があります。ブラウザーがHSTSによりHTTPSへ内部リダイレクトする際にも使われます。

    RFC 9110で定義

  • 308 Permanent Redirect

    リソースが恒久的に移動しました。クライアントは新しいURLに対して同じメソッドと本文を使う必要があります。307の恒久的な対応コードで、POSTリクエストのリダイレクトにも安全に使えます。

    RFC 9110で定義

  • 400 Bad Request

    リクエストの形式が正しくないため、サーバーは処理できません。無効なJSON、不正なクエリパラメーター、破損したCookieなどが原因です。

    RFC 9110で定義

  • 401 Unauthorized

    有効な認証情報がリクエストに含まれていません。名称とは異なり「未認証」を意味します。サーバーはログイン方法を示すWWW-Authenticateヘッダーを送信します。

    RFC 9110で定義

  • 402 Payment Required

    HTTP仕様では将来の使用のために予約されています。一部のAPIや決済サービスでは、支払いやサブスクリプションが必要な場合に使われます。

    RFC 9110で定義

  • 403 Forbidden

    サーバーはリクエストを理解しましたが、処理を拒否しています。再ログインしても解決しません。権限不足、ディレクトリ一覧の無効化、ファイアウォールによるクライアントのブロックなどで発生します。

    RFC 9110で定義

  • 404 Not Found

    サーバーは要求されたリソースを見つけられません。リンクの入力ミスや古さ、ページの削除、APIルートの誤りなどが一般的な原因です。

    RFC 9110で定義

  • 405 Method Not Allowed

    リソースは存在しますが、使用されたHTTPメソッドには対応していません。たとえば、読み取り専用のURLへのPOSTです。許可されているメソッドはAllowヘッダーに示されます。

    RFC 9110で定義

  • 406 Not Acceptable

    サーバーは、クライアントのAcceptヘッダーに記載されたどの形式でもレスポンスを生成できません。

    RFC 9110で定義

  • 407 Proxy Authentication Required

    401と同様ですが、クライアントはまずプロキシで認証する必要があります。認証プロキシを使う企業ネットワークで発生します。

    RFC 9110で定義

  • 408 Request Timeout

    サーバーがリクエストの送信完了を待っている間にタイムアウトしました。接続が遅い場合や中断された場合に発生します。

    RFC 9110で定義

  • 409 Conflict

    リクエストがリソースの現在の状態と競合しています。編集内容の競合や、すでに存在するものを作成しようとした場合などに発生します。

    RFC 9110で定義

  • 410 Gone

    リソースは恒久的に削除されており、復元されることはありません。404とは異なり、検索エンジンにURLをより早く削除するよう伝えます。

    RFC 9110で定義

  • 411 Length Required

    サーバーはContent-Lengthヘッダーを要求していますが、リクエストに含まれていません。

    RFC 9110で定義

  • 412 Precondition Failed

    If-Matchなど、リクエストヘッダーで指定された条件が満たされませんでした。クライアントが最後に読み取ってから変更されたリソースを上書きしないようにするために使われます。

    RFC 9110で定義

  • 413 Content Too Large

    リクエスト本文がサーバーの受け入れ可能なサイズを超えています。nginxのclient_max_body_sizeなどで設定された上限を超えるファイルをアップロードした場合に発生します。

    RFC 9110で定義

  • 414 URI Too Long

    URLが長すぎてサーバーが処理できません。GETで大量のデータを送信するフォームや、パラメーターを繰り返し追加するリダイレクトループが原因となることがあります。

    RFC 9110で定義

  • 415 Unsupported Media Type

    サーバーはリクエスト本文の形式に対応していません。たとえば、application/jsonを想定するエンドポイントにXMLを送信した場合です。

    RFC 9110で定義

  • 416 Range Not Satisfiable

    Rangeヘッダーで要求されたバイト範囲が、リソースのサイズを超えています。

    RFC 9110で定義

  • 417 Expectation Failed

    サーバーはクライアントのExpectヘッダーで指定された要件を満たせません。

    RFC 9110で定義

  • 418 I'm a teapot

    1998年のHyper Text Coffee Pot Control Protocolに由来するエイプリルフールのジョークで、コーヒーを淹れるのを拒否するティーポットを表します。HTTPでは未使用コードとして予約されていますが、一部のサーバーはイースターエッグとして、または不要なボットを拒否するために返します。

    RFC 2324 / RFC 9110 (Unused)で定義

  • 419 Page Expired

    非標準

    標準コードではありません。Laravelでは、フォームのCSRFトークンがない、または期限切れの場合に返されます。通常、セッションのタイムアウト後に発生します。

    Laravelで定義

  • 420 Enhance Your Calm

    非標準

    標準コードではありません。旧Twitter APIではレート制限に使われていました。標準コードは429です。

    Twitter API v1で定義

  • 421 Misdirected Request

    リクエストは、このホストへのレスポンスを生成できないサーバーに届きました。たとえば、HTTP/2接続が別のドメインに再利用された場合に発生します。

    RFC 9110で定義

  • 422 Unprocessable Content

    リクエストの形式は正しいものの、内容が無効です。検証ルールに違反したフォームなどが該当します。APIでは入力検証エラーによく使われます。

    RFC 9110で定義

  • 423 Locked

    WebDAVのリソースがロックされており、変更できません。

    RFC 4918で定義

  • 424 Failed Dependency

    依存する別の処理が失敗したため、WebDAVのリクエストも失敗しました。

    RFC 4918で定義

  • 425 Too Early

    リプレイされる可能性のあるリクエストは処理されません。TLS 1.3の早期データで送信されたリクエストなどが該当します。

    RFC 8470で定義

  • 426 Upgrade Required

    サーバーは現在のプロトコルでのリクエストを拒否し、必要なプロトコルをUpgradeヘッダーで示します。

    RFC 9110で定義

  • 428 Precondition Required

    更新の消失を防ぐため、サーバーは条件付きリクエスト(If-Matchなど)を要求しています。

    RFC 6585で定義

  • 429 Too Many Requests

    クライアントが一定時間内に送信したリクエストが多すぎます。APIではレート制限に使われ、再試行のタイミングを示すRetry-Afterヘッダーが含まれることもあります。

    RFC 6585で定義

  • 431 Request Header Fields Too Large

    リクエストヘッダーが大きすぎます。Cookieの数が多い、またはサイズが大きい場合によく発生します。通常、サイトのCookieを削除すると解決します。

    RFC 6585で定義

  • 444 No Response

    非標準

    標準コードではありません。nginxが内部で使い、レスポンスを送信せずに接続を閉じます。不要なトラフィックを遮断する場合などに使われ、クライアントが実際に受け取ることはありません。

    nginxで定義

  • 451 Unavailable For Legal Reasons

    裁判所命令や政府による検閲など、法的な理由でリソースを利用できません。番号は小説『華氏451度』に由来します。

    RFC 7725で定義

  • 494 Request Header Too Large

    非標準

    標準コードではありません。リクエストヘッダーがnginxのバッファー制限を超えたときに記録される、431に相当するnginx独自のコードです。

    nginxで定義

  • 495 SSL Certificate Error

    非標準

    標準コードではありません。クライアント証明書の検証に失敗した場合にnginxが返します。

    nginxで定義

  • 496 SSL Certificate Required

    非標準

    標準コードではありません。必須のクライアント証明書が提供されなかった場合にnginxが返します。

    nginxで定義

  • 497 HTTP Request Sent to HTTPS Port

    非標準

    標準コードではありません。HTTPS用に設定されたポートに通常のHTTPリクエストが送信された場合にnginxが返します。

    nginxで定義

  • 499 Client Closed Request

    非標準

    標準コードではありません。サーバーが応答する前にクライアントが接続を閉じた場合にnginxが記録します。ページの読み込みが遅くユーザーがキャンセルした場合や、クライアント側でタイムアウトした場合などに発生します。

    nginxで定義

  • 500 Internal Server Error

    サーバーで予期しないエラーが発生し、リクエストを完了できませんでした。バグ、クラッシュ、設定ミスなどによる一般的なエラーで、詳細はサーバーログに記録されています。

    RFC 9110で定義

  • 501 Not Implemented

    サーバーは必要な機能に対応していません。認識できないHTTPメソッドなどが該当します。

    RFC 9110で定義

  • 502 Bad Gateway

    ゲートウェイまたはプロキシが、上流サーバーから無効なレスポンスを受け取りました。nginxやロードバランサーの背後にあるアプリケーションがクラッシュまたは再起動中の場合によく発生します。

    RFC 9110で定義

  • 503 Service Unavailable

    過負荷やメンテナンスによる停止のため、サーバーは一時的にリクエストを処理できません。再試行のタイミングを示すRetry-Afterヘッダーが含まれることがあります。

    RFC 9110で定義

  • 504 Gateway Timeout

    ゲートウェイまたはプロキシが、アップストリームサーバーから時間内に応答を受信できませんでした。データベースクエリの処理に時間がかかるなど、バックエンドへのリクエストが遅い場合に発生します。

    RFC 9110で定義

  • 505 HTTP Version Not Supported

    サーバーがリクエストで使用されたHTTPバージョンに対応していません。

    RFC 9110で定義

  • 506 Variant Also Negotiates

    サーバーのコンテンツネゴシエーション設定エラーです。選択されたバリアント自体がネゴシエーションを行うよう設定されています。

    RFC 2295で定義

  • 507 Insufficient Storage

    サーバーはリクエストの完了に必要なデータを保存できません。たとえば、WebDAVサーバーのディスク容量がいっぱいの場合に発生します。

    RFC 4918で定義

  • 508 Loop Detected

    無限ループが検出されたため、サーバーがWebDAV操作を停止しました。

    RFC 5842で定義

  • 509 Bandwidth Limit Exceeded

    非標準

    標準コードではありません。共有ホスティング環境(Apacheモジュール、cPanelなど)で、サイトが帯域幅の上限を超えた場合に使われます。

    Apache / cPanelで定義

  • 510 Not Extended

    廃止または未使用

    リクエストを完了するには、追加の拡張機能が必要です。現在は歴史的な仕様となっている実験的な仕様で定義されています。

    RFC 2774で定義

  • 511 Network Authentication Required

    ネットワークにアクセスするには、クライアントの認証が必要です。ホテル、空港、カフェのWi-Fiで、ログイン前にキャプティブポータルから送信されます。

    RFC 6585で定義

  • 520 Web Server Returned an Unknown Error

    非標準

    標準コードではありません。オリジンサーバーから空の応答、不明な応答、または予期しない応答が返された場合にCloudflareが返します。

    Cloudflareで定義

  • 521 Web Server Is Down

    非標準

    標準コードではありません。オリジンサーバーが接続を拒否した場合にCloudflareが返します。通常は、Webサーバーが停止しているか、CloudflareのIPアドレスをブロックしています。

    Cloudflareで定義

  • 522 Connection Timed Out

    非標準

    標準コードではありません。オリジンサーバーへのTCP接続がタイムアウトした場合にCloudflareが返します。

    Cloudflareで定義

  • 523 Origin Is Unreachable

    非標準

    標準コードではありません。DNSやルーティングの問題などにより、オリジンサーバーに接続できない場合にCloudflareが返します。

    Cloudflareで定義

  • 524 A Timeout Occurred

    非標準

    標準コードではありません。オリジンサーバーへの接続後、タイムアウト時間(デフォルトで100秒)以内にHTTP応答を受信できなかった場合にCloudflareが返します。

    Cloudflareで定義

  • 525 SSL Handshake Failed

    非標準

    標準コードではありません。オリジンサーバーとのSSL/TLSハンドシェイクに失敗した場合にCloudflareが返します。

    Cloudflareで定義

  • 526 Invalid SSL Certificate

    非標準

    標準コードではありません。オリジンのSSL証明書が無効で、Full (strict) SSLモードが有効な場合にCloudflareが返します。

    Cloudflareで定義

使い方

  1. 404のようなコード番号、すべてのサーバーエラーを示す5、または「redirect」「timeout」などのキーワードを入力します。
  2. クラスのフィルターで、情報、成功、リダイレクト、クライアントエラー、サーバーエラーに絞り込めます。
  3. 各コードの「リンクをコピー」を使うと、バグ報告などで共有できる直接リンクを取得できます。

仕組み

すべてのHTTPレスポンスは3桁のステータスコードから始まります。1桁目が分類を示します。1xxは情報、2xxは成功、3xxはリダイレクト、4xxはリクエストに起因するエラー、5xxはサーバー側のエラーです。特定のコードを認識しないクライアントは、そのコードを同じ分類のx00コードとして扱います。そのため、未知の4xxコードは400と同じように処理されます。

基本的なコードはRFC 9110(HTTP Semantics、2022年)で定義されており、古いRFC 7231に置き換わりました。そのほかのコードは拡張仕様で定義されています。WebDAV(RFC 4918)、428、429、431、511を定めるRFC 6585、451を定めるRFC 7725、425を定めるRFC 8470などがあります。RFC 9110では2つのコードの名称も変更されました。413は「Content Too Large」、422は「Unprocessable Content」となりましたが、旧名称の「Payload Too Large」「Unprocessable Entity」で表示されることもあります。

ログで見かけるコードの中には、標準仕様ではないものもあります。nginxは内部的に444と494–499を使用します(499はクライアントが応答を待つのをあきらめたことを示します)。Cloudflareはオリジンサーバーから適切な応答を取得できない場合に520–526を返します。これらは一覧で「標準外」と表示されます。「Not Found」などの理由フレーズは仕様書の表記どおり英語で表示しています。HTTP/2とHTTP/3では番号のみが送信されます。

使用例

サイト移転では301と308のどちらを使う?

どちらも恒久的なリダイレクトです。通常のページ移動には301を使います。クライアントに新しいURLへのPOSTまたはPUTリクエストを再送させる必要がある場合は308を使います。301の後にPOSTをGETへ変更するクライアントがあるためです。

401と403の違い

APIはトークンが送信されない場合や期限切れの場合に401を返すため、クライアントはログインする必要があります。トークンが有効でもユーザーに権限がない場合は403を返すため、再ログインしても解決しません。

nginxの背後で発生する502の原因を調べる

nginxからの502 Bad Gatewayは、その背後にあるアプリケーションが正しく応答しなかったことを意味します。アプリのプロセスが実行中か、ログに何が記録されているかを確認してください。504は、アプリの応答に時間がかかりすぎたことを意味します。

よくある質問

404と410の違いは何ですか?

404はサーバーがリソースを見つけられないことを示すもので、将来については何も示しません。410はリソースが意図的に削除され、今後も戻らないことを示します。そのため、検索エンジンがURLをより早く検索結果から削除するのに役立ちます。

入力値の検証エラーには400と422のどちらを返すべきですか?

どちらも使われます。サーバーが解析できないリクエスト(壊れたJSONなど)には400が適しています。正しく解析できても値が無効なリクエスト(@のないメールアドレスなど)には422が適しています。

418 I'm a teapotは実在するステータスコードですか?

1998年のエイプリルフール向けRFCが由来です。RFC 9110では、418がほかの用途に割り当てられないよう未使用として確保されています。冗談として418を返すサーバーもありますが、標準的な意味はありません。

499はどこから来たコードですか?

499はnginx独自のコードです。サーバーが応答を返す前にクライアントが接続を閉じると、nginxのログに記録されます。クライアントが499を受け取ることはありません。通常、応答の遅延やクライアント側のタイムアウトを示します。

検索エンジンは302を301と同じように扱いますか?

302は一時的な移転を示すため、検索エンジンは通常、当初は元のURLをインデックスに残します。302が長期間続くと、Googleが恒久的なリダイレクトとして扱う場合があります。恒久的な移転には301または308を使ってください。

プライバシー

一覧はページ内に含まれています。検索と絞り込みはブラウザー上で行われ、検索語が外部に送信されたり、アクセス解析に含まれたりすることはありません。