HTTPステータスコードとは、Webサイトやサーバーが返す処理結果の番号です。ページを正しく表示できたときは「200」、ページが見つからないときは「404」などが返されます。
HTTPステータスコードは、100番台から500番台までの5種類に分かれます。番号を確認すると、処理が成功したのか、ページが移動したのか、エラーが起きたのかを判断できます。
この記事では、HTTPステータスコードを一覧で紹介します。よく使う200、301、302、400、401、403、404、422、429、500、502、503、504の意味や原因、Chromeやcurlでの確認方法も説明します。
関連するIT用語・ビジネス用語をまとめて確認したい方は、IT用語・ビジネス用語一覧もあわせてご覧ください。
よく使うHTTPステータスコード早見表
HTTPステータスコードの中でも、Webサイトやシステムでよく使われる番号をまとめました。
| コード | 意味 | 主な状態 |
|---|---|---|
| 200 | 正常に処理できた | ページが正しく表示された |
| 201 | 新しいデータを作成できた | アカウントやデータを作成した |
| 301 | 完全に移動した | 新しいURLへ転送された |
| 302 | 一時的に移動した | 一時的に別のURLへ転送された |
| 304 | 内容が変わっていない | 保存済みのデータを利用できる |
| 400 | 送った内容に問題がある | URLやCookieなどに問題がある |
| 401 | 認証が必要 | ログインできていない |
| 403 | 見る権限がない | アクセスが禁止されている |
| 404 | ページが見つからない | URLの間違い、削除、移動 |
| 422 | 入力内容を処理できない | 入力内容がルールに合っていない |
| 429 | アクセス回数が多すぎる | 一時的にアクセスを制限されている |
| 500 | サーバー内部のエラー | 設定やプログラムに問題がある |
| 502 | 中継先から正しい返事がない | サーバー間の通信に失敗した |
| 503 | 一時的に利用できない | メンテナンスやアクセス集中 |
| 504 | 中継先からの返事が遅い | サーバー間の通信が時間切れになった |
ページが普通に表示されているときは、多くの場合200が返されています。エラーとしてよく見るのは、400番台と500番台です。
HTTPステータスコードとは

HTTPステータスコードは、かんたんに言うと「Webサイトからの返事の番号」です。
ブラウザでページを開くと、ブラウザからサーバーへ「このページを見せてください」というお願いが送られます。このお願いをリクエストといいます。
サーバーは、リクエストを受け取ると、ページのデータと一緒に処理結果を返します。この返事をレスポンスといいます。
HTTPステータスコードは3けたの数字です。最初の数字を見ると、処理中、成功、転送、リクエスト側の問題、サーバー側の問題のどれに当たるかが分かります。
| 番号 | 分類 | かんたんな意味 |
|---|---|---|
| 100番台 | 情報 | 処理を続けている |
| 200番台 | 成功 | 正常に処理できた |
| 300番台 | 転送 | 別の場所への案内などがある |
| 400番台 | リクエスト側の問題 | URL、認証、権限、入力内容などに問題がある |
| 500番台 | サーバー側の問題 | サーバーやシステムの処理に問題がある |
400番台が出ても、ページを見た人だけに原因があるとは限りません。WebサイトのURL設定やアクセス権限など、運営者側の設定が関係する場合もあります。
HTTPステータスコード一覧

HTTPステータスコードを、100番台から500番台まで一覧で紹介します。
一般的なWebサイトでは、すべてのコードが使われるわけではありません。まずは200、301、302、400、403、404、500、502、503、504など、よく見る番号を押さえておけば十分です。
100番台|処理中を表すHTTPステータスコード
100番台は、処理の途中経過を表すコードです。最終的な処理結果が返される前に使われます。
| コード | 英語名 | かんたんな意味 |
|---|---|---|
| 100 | Continue | そのまま処理を続けてよい |
| 101 | Switching Protocols | 通信方法を切り替える |
| 102 | Processing | 処理を続けている |
| 103 | Early Hints | 本体の返事より先に一部の情報を返す |
| 104 | Upload Resumption Supported | 中断したアップロードを再開できることを示す一時登録のコード |
100番台は、一般の画面で直接見る機会が少ないコードです。「最終結果が返る前の途中経過」と覚えておくとよいでしょう。
200番台|成功を表すHTTPステータスコード
200番台は、リクエストを正常に受け取り、処理できたことを表します。
| コード | 英語名 | かんたんな意味 |
|---|---|---|
| 200 | OK | 正常に処理できた |
| 201 | Created | 新しいデータを作成できた |
| 202 | Accepted | 処理を受け付けた |
| 203 | Non-Authoritative Information | 途中で変更された情報を返している |
| 204 | No Content | 成功したが返す内容はない |
| 205 | Reset Content | 入力画面などを初期状態に戻す |
| 206 | Partial Content | データの一部だけを返している |
| 207 | Multi-Status | 複数の処理結果をまとめて返す |
| 208 | Already Reported | すでに返した内容であることを示す |
| 226 | IM Used | 差分処理を行った結果を返す |
300番台|転送を表すHTTPステータスコード
300番台は、別のURLへの転送や、保存済みデータの利用などを表します。
別のURLへ自動で案内する仕組みをリダイレクトといいます。
| コード | 英語名 | かんたんな意味 |
|---|---|---|
| 300 | Multiple Choices | 複数の選択肢がある |
| 301 | Moved Permanently | ページが完全に移動した |
| 302 | Found | 一時的に別の場所へ案内する |
| 303 | See Other | 別のURLをGETで確認するよう案内する |
| 304 | Not Modified | 前回から内容が変わっていない |
| 305 | Use Proxy | プロキシの利用を求めるが、現在は使われていない |
| 306 | Unused | 現在は使われていない |
| 307 | Temporary Redirect | 同じ送信方法のまま一時的に転送する |
| 308 | Permanent Redirect | 同じ送信方法のまま完全に転送する |
400番台|リクエスト側の問題を表すHTTPステータスコード
400番台は、送られたURL、認証、権限、入力内容などに問題があるときに返されます。
| コード | 英語名 | かんたんな意味 |
|---|---|---|
| 400 | Bad Request | 送った内容が正しくない |
| 401 | Unauthorized | ログインや認証が必要 |
| 402 | Payment Required | 支払いに関係する用途のために予約されている |
| 403 | Forbidden | 見る権限がない |
| 404 | Not Found | ページが見つからない |
| 405 | Method Not Allowed | その操作方法は許可されていない |
| 406 | Not Acceptable | 希望する形式で内容を返せない |
| 407 | Proxy Authentication Required | プロキシでの認証が必要 |
| 408 | Request Timeout | リクエストを待つ時間を過ぎた |
| 409 | Conflict | 現在のデータの状態と処理がぶつかっている |
| 410 | Gone | ページが完全に削除された |
| 411 | Length Required | データの長さを示す情報が必要 |
| 412 | Precondition Failed | 処理を行う前の条件を満たしていない |
| 413 | Content Too Large | 送ったデータが大きすぎる |
| 414 | URI Too Long | URLが長すぎる |
| 415 | Unsupported Media Type | 送ったデータ形式に対応していない |
| 416 | Range Not Satisfiable | 指定したデータの範囲を返せない |
| 417 | Expectation Failed | リクエストで示された条件を満たせない |
| 418 | Unused | 現在は未使用として予約されている |
| 421 | Misdirected Request | リクエストが適切でないサーバーへ届いた |
| 422 | Unprocessable Content | 内容は読めるが処理できない |
| 423 | Locked | 対象のデータがロックされている |
| 424 | Failed Dependency | 関連する別の処理が失敗した |
| 425 | Too Early | 処理するには早すぎる |
| 426 | Upgrade Required | 通信方法の更新が必要 |
| 428 | Precondition Required | 処理前の条件指定が必要 |
| 429 | Too Many Requests | 短時間のアクセスが多すぎる |
| 431 | Request Header Fields Too Large | リクエストヘッダーが大きすぎる |
| 451 | Unavailable For Legal Reasons | 法律上の理由で利用できない |
500番台|サーバー側の問題を表すHTTPステータスコード
500番台は、サーバーやWebアプリの処理に問題があるときに返されます。
| コード | 英語名 | かんたんな意味 |
|---|---|---|
| 500 | Internal Server Error | サーバー内部でエラーが起きた |
| 501 | Not Implemented | 必要な機能に対応していない |
| 502 | Bad Gateway | 中継先から正しい返事がない |
| 503 | Service Unavailable | 一時的に利用できない |
| 504 | Gateway Timeout | 中継先からの返事が時間切れになった |
| 505 | HTTP Version Not Supported | 使用したHTTPのバージョンに対応していない |
| 506 | Variant Also Negotiates | サーバーの設定に問題がある |
| 507 | Insufficient Storage | サーバーの保存場所が不足している |
| 508 | Loop Detected | 処理が繰り返される状態を検出した |
| 510 | Not Extended | 廃止されたコード |
| 511 | Network Authentication Required | ネットワークへ接続するための認証が必要 |
よく使うHTTPステータスコードの意味と原因
ここからは、検索されることが多いHTTPステータスコードの意味や原因を詳しく説明します。
200 OK|正常に処理できた
200は、リクエストを正常に処理できたことを表すHTTPステータスコードです。
Webページが問題なく表示されたときは、多くの場合200が返されています。画像やファイル、APIからデータを正常に取得できた場合にも使われます。
200はエラーではありません。検索エンジンや読者に見せたいページは、基本的に200で返る状態にします。
201 Created|新しいデータを作成できた
201は、リクエストの処理に成功し、新しいデータを作成できたことを表します。
たとえば、アカウントの作成、記事の登録、注文データの作成などで使われます。通常のWebページを見るだけでは、あまり意識しないコードです。
204 No Content|成功したが返す内容がない
204は、処理は成功したものの、画面へ返す内容がないことを表します。エラーではありません。
データを保存または削除したあとに、新しい画面やデータを返す必要がない場合などに使われます。
301 Moved Permanently|ページが完全に移動した
301は、ページが完全に別のURLへ移動したことを表します。
記事のURL変更やサイトの引っ越しなど、今後も新しいURLを使い続ける場合に設定します。
古いURLから新しいURLへ正しく301を設定すると、読者と検索エンジンを新しいページへ案内できます。
302 Found|ページが一時的に移動した
302は、一時的に別のURLへ案内していることを表します。
短い期間だけ別のページを見せたい場合などに使います。今後も新しいURLを使い続けることが決まっている場合は、基本的に301を使います。
304 Not Modified|内容が変わっていない
304は、以前に読み込んだ内容から変更されていないことを表します。
ブラウザには、一度読み込んだ画像やデータを保存する機能があります。304が返ると、保存済みのデータを使えるため、同じ内容をすべて受け取り直す必要がありません。
304はエラーではありません。ページの表示を速くし、通信量を減らすために使われます。
400 Bad Request|送った内容に問題がある
400は、ブラウザやアプリから送った内容を、サーバーが正しく処理できないときに返されます。
主な原因は、URLの入力ミス、入力内容の不備、必要な情報の不足、Cookieの問題などです。
ページを見る人ができること
- URLの入力ミスがないか確認する
- ページを再読み込みする
- シークレットモードで開く
- 対象サイトのCookieを削除する
- 時間を置いてから開き直す
サイト運営者が確認すること
- 送られたURLや入力内容
- 入力フォームの設定
- Cookieやリクエストヘッダーの大きさ
- サーバーやWebアプリのログ
401 Unauthorized|ログインや認証が必要
401は、そのページや機能を利用するために、ログインや認証が必要なことを表します。
認証とは、利用者が本人であるかを確認することです。未ログインの場合や、ログインの有効期限が切れた場合などに401が返されます。
ページを見る人は、もう一度ログインすると解消することがあります。
403 Forbidden|ページを見る権限がない
403は、サーバーには接続できているものの、ページを見ることが許可されていない状態です。
管理者だけが見られるページを開いた場合や、IPアドレス、国・地域、ファイルの権限などでアクセスを制限している場合に返されることがあります。
サイト運営者は、アクセス権限、サーバー設定、セキュリティー機能などを確認します。
404 Not Found|ページが見つからない
404は、指定したページが見つからないことを表します。
主な原因は、URLの入力ミス、ページの削除、公開状態の変更、URLの変更などです。
404が出ても、Webサイト全体が故障しているとは限りません。そのページだけが見つからない場合も多くあります。
ページの移動先がある場合は、関連する新しいページへリダイレクトします。代わりになるページがない場合は、無理にトップページへ転送せず、404のままにする方法があります。
完全に削除し、今後も戻す予定がないページでは、410を使うこともあります。
418 I’m a teapot|ジョークとして知られる番号
418は、「I’m a teapot」という名前で知られる番号です。日本語では「私はティーポットです」という意味になります。
もともとは1998年4月1日に公開された、コーヒーポットを操作する架空の通信方法で使われたジョークです。
現在のHTTPの仕様では、418は通常の処理に使うコードではなく、未使用として予約されています。一般的なWebサイトのエラー処理では、別の適切なコードを使います。
422 Unprocessable Content|入力内容を処理できない
422は、送られた内容の形は読み取れるものの、中身のルールに合わず処理できない状態です。
たとえば、必須項目が空欄になっている、メールアドレスの形が正しくない、数値を入れる場所に文字が入っている場合などです。
400はリクエスト全体に問題がある場合に使われ、422はリクエストを読み取れたものの、内容の条件に合わない場合に使われます。
429 Too Many Requests|アクセス回数が多すぎる
429は、短い時間に何度もアクセスしたため、一時的に制限されている状態です。
WebサイトやAPIを過剰なアクセスから守るために使われます。同じページを何度も更新した場合や、プログラムから短時間に多くのリクエストを送った場合などに返されます。
ページを見る人は、少し時間を置いてから開き直します。システムを運営している場合は、アクセス回数の上限やプログラムの実行間隔を確認します。
500 Internal Server Error|サーバー内部でエラーが起きた
500は、サーバー内部で予期しない問題が起き、リクエストを処理できなかったことを表します。
主な原因は、プログラムの不具合、サーバーの設定ミス、ファイルの権限、アクセス集中などです。
ページを見る人の操作だけで直すことは難しいコードです。運営者は、サーバーやWebアプリのエラーログ、直前に変更した設定やプログラムを確認します。
502 Bad Gateway|中継先から正しい返事がない
502は、手前のサーバーが中継先のサーバーから正しい返事を受け取れなかった状態です。
Webサイトの裏側では、複数のサーバーやWebアプリが連携していることがあります。手前のサーバーは動いていても、奥にあるWebアプリが停止している場合などに502が返されます。
運営者は、サーバー間の通信、Webアプリの起動状態、プロキシや負荷分散の設定を確認します。
503 Service Unavailable|一時的に利用できない
503は、Webサイトやサービスが一時的に利用できない状態です。
主な原因は、メンテナンス、アクセス集中、サーバーの処理待ちなどです。必ずしも大きな故障が起きているとは限りません。
メンテナンス中に503を返すと、検索エンジンへ「一時的に利用できない状態」であることを伝えられます。
再開予定の時間が分かっている場合は、Retry-Afterという情報を使い、再びアクセスしてほしい時間の目安を返すことがあります。
504 Gateway Timeout|中継先からの返事が時間切れになった
504は、手前のサーバーが中継先のサーバーから返事を待っている間に、時間切れになった状態です。
サーバーの処理が重い、データベースの返事が遅い、サーバー間の通信が混み合っている場合などに返されます。
502は「正しい返事を受け取れなかった」、504は「決められた時間内に返事を受け取れなかった」という違いがあります。
症状からHTTPステータスコードを調べる
表示された番号が分からない場合は、起きている症状から考えられるコードを確認できます。
| 起きていること | 考えられるコード | 確認すること |
|---|---|---|
| ページが見つからない | 404、410 | URL、ページの削除、移動先 |
| ログインを求められる | 401 | ログイン状態、認証情報 |
| アクセスを拒否される | 403 | 権限、アクセス制限 |
| 入力内容を送信できない | 400、422 | 入力内容、Cookie、送信形式 |
| 短時間にアクセスしすぎた | 429 | アクセス回数、実行間隔 |
| ページが別の場所へ移動した | 301、302、307、308 | 移動が一時的か、完全な移動か |
| サーバー内部で問題が起きた | 500 | 設定、プログラム、エラーログ |
| サーバー間の通信に失敗した | 502、504 | 中継先のサーバー、通信時間 |
| メンテナンスやアクセス集中 | 503 | メンテナンス情報、サーバー負荷 |
間違えやすいHTTPステータスコードの違い
番号が近いHTTPステータスコードでも、意味や使う場面は異なります。
HTTPステータスコード200と201の違い
| コード | 意味 | 主な場面 |
|---|---|---|
| 200 | 処理に成功した | ページやデータを正常に返した |
| 201 | 新しいデータの作成に成功した | アカウントや登録データを作成した |
200は幅広い成功に使います。201は、処理の結果として新しいデータが作られた場合に使います。
HTTPステータスコード301と302の違い
| コード | 意味 | 主な場面 |
|---|---|---|
| 301 | 完全な移動 | 今後も新しいURLを使い続ける |
| 302 | 一時的な移動 | 短い期間だけ別のURLへ案内する |
記事のURLを完全に変更した場合は301、一時的な案内では302を使うのが基本です。
HTTPステータスコード400と500の違い

| 種類 | 意味 | 確認する場所 |
|---|---|---|
| 400番台 | 送られたリクエストを処理できない | URL、入力、認証、権限、Cookie |
| 500番台 | サーバーがリクエストを処理できない | サーバー設定、プログラム、通信、負荷 |
400番台はリクエスト側、500番台はサーバー側の問題を表します。ただし、400番台でもWebサイト側の設定が原因になる場合があります。
HTTPステータスコード401と403の違い
| コード | 意味 | 状態 |
|---|---|---|
| 401 | 認証が必要 | 本人確認ができていない |
| 403 | 見る権限がない | 認証しても利用が許可されていない |
401は「誰なのか確認できていない状態」、403は「誰なのか分かっていても許可されていない状態」と考えると分かりやすいです。
HTTPステータスコード403と404の違い
403は、ページやデータが存在していても、見ることが許可されていない状態です。
404は、指定したページを見つけられない状態です。セキュリティー上の理由から、ページの存在を隠すために404を返す場合もあります。
HTTPステータスコード502と504の違い
| コード | 意味 | 状態 |
|---|---|---|
| 502 | 正しい返事がない | 中継先から不正な返事を受け取った |
| 504 | 返事が時間切れ | 中継先から時間内に返事がなかった |
どちらもサーバー同士のやり取りに関係します。正しくない返事を受け取った場合は502、返事が遅く時間切れになった場合は504です。
HTTPステータスコードの確認方法

HTTPステータスコードは、画面に表示されないことがあります。正確な番号を確認するには、ブラウザの開発者ツールやcurlコマンドを使います。
ChromeやEdgeでHTTPステータスコードを確認する方法
Google ChromeやMicrosoft Edgeでは、開発者ツールから確認できます。
- 確認したいページを開く
- キーボードのF12キーを押す
- 「Network」または「ネットワーク」を開く
- ページを再読み込みする
- 一覧から確認したいページを選ぶ
- 「Status」または「ステータス」の数字を見る
200、301、404、500などの数字が表示されます。
一覧に多くの画像やファイルが表示される場合は、「Doc」または「ドキュメント」で絞り込むと、ページ本体を探しやすくなります。
curlでレスポンスヘッダーを確認する方法
curlは、コマンドを使ってWebサイトへアクセスできる道具です。
レスポンスヘッダーを確認する場合は、次のコマンドを使います。
curl -I https://example.com/
実行結果に「HTTP/2 200」や「HTTP/1.1 301」のような内容が表示されます。この3けたの数字がHTTPステータスコードです。
curlでHTTPステータスコードだけを取得する方法
macOSやLinuxで、HTTPステータスコードだけを表示する場合は、次のコマンドを使います。
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/
Windowsでは、次のように「NUL」を指定できます。
curl.exe -s -o NUL -w "%{http_code}" https://example.com/
正常に表示できるページであれば「200」のように表示されます。
curlでリダイレクト先まで確認する方法
301や302による転送先まで確認する場合は、次のコマンドを使います。
curl -L -I https://example.com/
「-L」を付けるとリダイレクトをたどります。「-I」を付けるとレスポンスヘッダーだけを確認できます。
HTTPステータスコード0・000・600・999は標準外
HTTPステータスコードとして使える番号は、100から599までです。
0、000、600、999は、標準的なHTTPステータスコードではありません。アプリやツールが、通信の失敗や独自の状態を表すために表示している場合があります。
HTTPステータスコード0・000が表示される原因
curlなどで0や000と表示される場合は、サーバーからHTTPステータスコードを受け取る前に通信が失敗した可能性があります。
| 主な原因 | 確認すること |
|---|---|
| URLが正しくない | 文字の間違いやドメイン名を確認する |
| インターネットへ接続できない | ほかのWebサイトを開けるか確認する |
| ドメイン名をIPアドレスへ変換できない | DNSの設定やドメインの状態を確認する |
| サーバーへ接続できない | サーバーが起動しているか確認する |
| HTTPS証明書に問題がある | 証明書の期限や設定を確認する |
| 通信が時間切れになった | ネットワークやサーバーの処理時間を確認する |
つまり、サーバーが正式に「000」というHTTPステータスコードを返しているとは限りません。
HTTPステータスコード600・999が表示される原因
600や999は、HTTPの正式な範囲を超えています。
ライブラリ、アプリ、セキュリティー製品などが、内部のエラーや独自の状態を表すために表示することがあります。表示した製品やサービスの説明を確認してください。
HTTPステータスコードに関するよくある質問
HTTPステータスコードの正常な番号は何ですか?
正常な処理は、主に200番台で表します。
通常のWebページが問題なく表示された場合は200です。新しいデータを作成した場合は201、処理は成功したものの返す内容がない場合は204が使われます。
HTTPステータスコード200はエラーですか?
200はエラーではありません。リクエストを正常に処理できたことを表します。
HTTPステータスコードはすべて覚える必要がありますか?
すべての番号を覚える必要はありません。
まずは、200は成功、301は完全な移動、400番台はリクエスト側の問題、404はページがない、500番台はサーバー側の問題と覚えておけばよいでしょう。
HTTPステータスコードはどこに表示されますか?
HTTPステータスコードは、必ず画面に表示されるわけではありません。
ChromeやEdgeの開発者ツールを開き、「ネットワーク」の「ステータス」を確認すると、正確な番号を調べられます。curlコマンドでも確認できます。
HTTPステータスコードは番号からWebサイトの状態を確認できる
HTTPステータスコードは、Webサイトやサーバーが返す処理結果の番号です。
100番台は処理中、200番台は成功、300番台は転送、400番台はリクエスト側の問題、500番台はサーバー側の問題を表します。
よく使われるのは、200、301、302、304、400、401、403、404、422、429、500、502、503、504などです。
番号の意味が分からないときは、まず最初の数字を確認してください。そのうえで、ページを見る人の操作に原因があるのか、Webサイトやサーバー側の確認が必要なのかを切り分けます。
HTTPステータスコードは、すべて暗記するものではありません。一覧やブラウザの開発者ツール、curlコマンドを使い、必要なときに確認しましょう。

