HTTPステータスコード一覧|意味・原因・確認方法を解説

【PR】この記事には広告を含みます。
HTTPステータスコード一覧を初心者向けに解説する画像

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ステータスコードは、かんたんに言うと「Webサイトからの返事の番号」です。

ブラウザでページを開くと、ブラウザからサーバーへ「このページを見せてください」というお願いが送られます。このお願いをリクエストといいます。

サーバーは、リクエストを受け取ると、ページのデータと一緒に処理結果を返します。この返事をレスポンスといいます。

HTTPステータスコードは3けたの数字です。最初の数字を見ると、処理中、成功、転送、リクエスト側の問題、サーバー側の問題のどれに当たるかが分かります。

番号分類かんたんな意味
100番台情報処理を続けている
200番台成功正常に処理できた
300番台転送別の場所への案内などがある
400番台リクエスト側の問題URL、認証、権限、入力内容などに問題がある
500番台サーバー側の問題サーバーやシステムの処理に問題がある

400番台が出ても、ページを見た人だけに原因があるとは限りません。WebサイトのURL設定やアクセス権限など、運営者側の設定が関係する場合もあります。

HTTPステータスコード一覧

HTTPステータスコードを100番台から500番台までの5種類に分けた図

HTTPステータスコードを、100番台から500番台まで一覧で紹介します。

一般的なWebサイトでは、すべてのコードが使われるわけではありません。まずは200、301、302、400、403、404、500、502、503、504など、よく見る番号を押さえておけば十分です。

100番台|処理中を表すHTTPステータスコード

100番台は、処理の途中経過を表すコードです。最終的な処理結果が返される前に使われます。

コード英語名かんたんな意味
100Continueそのまま処理を続けてよい
101Switching Protocols通信方法を切り替える
102Processing処理を続けている
103Early Hints本体の返事より先に一部の情報を返す
104Upload Resumption Supported中断したアップロードを再開できることを示す一時登録のコード

100番台は、一般の画面で直接見る機会が少ないコードです。「最終結果が返る前の途中経過」と覚えておくとよいでしょう。

200番台|成功を表すHTTPステータスコード

200番台は、リクエストを正常に受け取り、処理できたことを表します。

コード英語名かんたんな意味
200OK正常に処理できた
201Created新しいデータを作成できた
202Accepted処理を受け付けた
203Non-Authoritative Information途中で変更された情報を返している
204No Content成功したが返す内容はない
205Reset Content入力画面などを初期状態に戻す
206Partial Contentデータの一部だけを返している
207Multi-Status複数の処理結果をまとめて返す
208Already Reportedすでに返した内容であることを示す
226IM Used差分処理を行った結果を返す

300番台|転送を表すHTTPステータスコード

300番台は、別のURLへの転送や、保存済みデータの利用などを表します。

別のURLへ自動で案内する仕組みをリダイレクトといいます。

コード英語名かんたんな意味
300Multiple Choices複数の選択肢がある
301Moved Permanentlyページが完全に移動した
302Found一時的に別の場所へ案内する
303See Other別のURLをGETで確認するよう案内する
304Not Modified前回から内容が変わっていない
305Use Proxyプロキシの利用を求めるが、現在は使われていない
306Unused現在は使われていない
307Temporary Redirect同じ送信方法のまま一時的に転送する
308Permanent Redirect同じ送信方法のまま完全に転送する

400番台|リクエスト側の問題を表すHTTPステータスコード

400番台は、送られたURL、認証、権限、入力内容などに問題があるときに返されます。

コード英語名かんたんな意味
400Bad Request送った内容が正しくない
401Unauthorizedログインや認証が必要
402Payment Required支払いに関係する用途のために予約されている
403Forbidden見る権限がない
404Not Foundページが見つからない
405Method Not Allowedその操作方法は許可されていない
406Not Acceptable希望する形式で内容を返せない
407Proxy Authentication Requiredプロキシでの認証が必要
408Request Timeoutリクエストを待つ時間を過ぎた
409Conflict現在のデータの状態と処理がぶつかっている
410Goneページが完全に削除された
411Length Requiredデータの長さを示す情報が必要
412Precondition Failed処理を行う前の条件を満たしていない
413Content Too Large送ったデータが大きすぎる
414URI Too LongURLが長すぎる
415Unsupported Media Type送ったデータ形式に対応していない
416Range Not Satisfiable指定したデータの範囲を返せない
417Expectation Failedリクエストで示された条件を満たせない
418Unused現在は未使用として予約されている
421Misdirected Requestリクエストが適切でないサーバーへ届いた
422Unprocessable Content内容は読めるが処理できない
423Locked対象のデータがロックされている
424Failed Dependency関連する別の処理が失敗した
425Too Early処理するには早すぎる
426Upgrade Required通信方法の更新が必要
428Precondition Required処理前の条件指定が必要
429Too Many Requests短時間のアクセスが多すぎる
431Request Header Fields Too Largeリクエストヘッダーが大きすぎる
451Unavailable For Legal Reasons法律上の理由で利用できない

500番台|サーバー側の問題を表すHTTPステータスコード

500番台は、サーバーやWebアプリの処理に問題があるときに返されます。

コード英語名かんたんな意味
500Internal Server Errorサーバー内部でエラーが起きた
501Not Implemented必要な機能に対応していない
502Bad Gateway中継先から正しい返事がない
503Service Unavailable一時的に利用できない
504Gateway Timeout中継先からの返事が時間切れになった
505HTTP Version Not Supported使用したHTTPのバージョンに対応していない
506Variant Also Negotiatesサーバーの設定に問題がある
507Insufficient Storageサーバーの保存場所が不足している
508Loop Detected処理が繰り返される状態を検出した
510Not Extended廃止されたコード
511Network 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、410URL、ページの削除、移動先
ログインを求められる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の違い

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ステータスコードの確認方法

ChromeやEdgeの開発者ツールとcurlコマンドでHTTPステータスコードを確認する方法を示した図

HTTPステータスコードは、画面に表示されないことがあります。正確な番号を確認するには、ブラウザの開発者ツールやcurlコマンドを使います。

ChromeやEdgeでHTTPステータスコードを確認する方法

Google ChromeやMicrosoft Edgeでは、開発者ツールから確認できます。

  1. 確認したいページを開く
  2. キーボードのF12キーを押す
  3. 「Network」または「ネットワーク」を開く
  4. ページを再読み込みする
  5. 一覧から確認したいページを選ぶ
  6. 「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コマンドを使い、必要なときに確認しましょう。

目次