Webサイトにアクセスした際に、「404」や「403」、「500」や「503」といったエラー表示を見た事があるかと思います。これらはHTTPステータスコードと呼ばれ、コード番号によってどんな問題が起こっているか確認する事が出来ます。
今回は、HTTPステータスコードについてとそれぞれのコード番号について詳しく解説していきます。
HTTPステータスコードとは
HTTPステータスコードとは、Webサイトを閲覧する際にブラウザからサーバーに送られたリクエストに対し、サーバーから返される3桁の数値の事をいいます。
よく見かけるコードとしては、ページが無い場合に表示される「404」エラーや、サーバーに問題がある場合などに表示される「503」エラーなどがあります。
これらのHTTPステータスコードは、エラーがあってWebサイトが表示されない場合はユーザー側にも分かるようにが画面に表示されますが、エラー以外のコードもあり画面に表示されないものも多数あります。
各コードにどんな意味・役割があるのかを、よく表示されるものだけでもきちんと把握しておくようにしましょう。
HTTPステータスコードの確認方法
先程述べたように、HTTPステータスコードは画面に表示されないもの多数あります。
そんなコードは以下のように確認する事ができます。今回はChromeを例に解説します。
画面上で右クリック→「検証」ツールを起動→下記画像の上部赤枠部分「ネットワーク」をクリックすると下部赤枠部分のようなステータスコードを確認する事ができます。
※右クリックで「検証」ツールが表示されていない場合は、画面右上の3点リーダーアイコン(⋮)から、その他のツール→デベロッパーツールでも起動できます。
HTTPステータスコードの分類
HTTPステータスコードは番号によってそれぞれ意味が違います。
100番台から500番台までの大きく5種類に分類され、それぞれ役割が違います。
HTTPステータスコード | コード内容 |
---|---|
100番台 | 情報レスポンス |
200番台 | 成功レスポンス |
300番台 | リダイレクション |
400番台 | クライアントエラー |
500番台 | サーバーエラー |
このように何番台かで、どのような内容なのか分類されます。
HTTPステータスコードの種類は多いですが、何番台かでどのようなエラーが起きているかある程度分かりますので、よく見る番号は覚えておくと便利です。
HTTPステータスコード100番台(情報レスポンス)
100番台はリクエストに対して処理が継続されている事を表します。
100 Continue
暫定レスポンスとなり現状問題なく処理中で、継続してリクエストする事が可能
リクエストが完了している場合は、レスポンスを無視してもよい事を示す
101 Switching Protocols
サーバーは正しい処理をするためにプロトコルの切り替えをしている事を示す
102 Processing
サーバーはリクエストを受け取り処理しているが、まだレスポンスを提供できない(処理中)である事を示す
103 Early Hints
サーバーがレスポンスを準備している間、事前にリソースの事前読み込みを開始させたり、ページがリソースを必要とする元のサーバーに事前接続させたりする事を示す
HTTPステータスコード200番台(成功レスポンス)
200番台はリクエストが成功した事を表します。
200 OK
リクエストが成功したことを示す
201 Created
リクエストは成功し、新たなリソースの作成が完了した事を示す
202 Accepted
リクエストが受理されているが、まだ処理されていない事を示す
203 Non-Authoritative Information
リクエストされた内容が、ローカルやプロキシからの情報で信頼できない情報である事を示す
204 No Content
リクエストに対して返せるコンテンツが無い場合を示す
205 Reset Content
リクエストは成功しているが、ユーザーエージェントに対してリセットするよう返している事を示す
206 Partial Content
部分的にリクエストを受理している事を示す
207 Multi-Status
WebDAVの拡張ステータスコード
複数のステータスコードが含まれる場合を示す
208 Already Reported
WebDAVの拡張ステータスコード
クライアントのリクエストの重複を防ぐ為に使用
226 IM Used
WebDAVの拡張ステータスコード
サーバーがリクエストを正常に受理し、インスタンスに適用された1つ以上のinstance manipulationの結果を示す
HTTPステータスコード300番台(リダイレクション)
300番台はリダイレクトが発生した事を表します
300 Multiple Choices
リクエストに対して複数のレスポンスがあることを示す
301 Moved Permanently
リクエストされたURLが恒久的な変更をされた事を示す
レスポンスで新しいURLが返される
Webサイトやページが移転しリダイレクトをする際に用いられる
302 Found
リクエストされたURLが一時的な変更をされた事を示す
レスポンスで新しいURLが返される
Webサイトやページの一時的な移転のリダイレクトをする際に用いられる
303 See Other
リクエストに対する情報が他のURLに存在ケース
ユーザーをそこに誘導するようURLを指定し返信される
304 Not Modified
更新されていない事を示す
ブラウザキャッシュの内容を表示するため、最新の内容でない場合がある
305 Use Proxy
旧バージョンのHTTP仕様書で、リクエストされたレスポンスはプロキシーからアクセスしなければならないことを示す
現在は非推奨のステータスコード
306 Unused
HTTP/1.1 仕様書の旧バージョンで使用されていた、現在は使用されていないステータスコード
307 Temporary Redirect
一時的なリダイレクトを示す
302 Foundと同じ意味を持つが、ユーザーエージェントは使用するHTTPメソッドを変更してはならない点が異なる
308 Permanent Redirect
恒久的なリダイレクトを示す
301 Moved Permanentlyと同じ意味を持つが、ユーザーエージェントは使用するHTTPメソッドを変更してはならない点が異なる
HTTPステータスコード400番台(クライアントエラー)
400番台はリクエストが正しく処理できない事(クライアントエラー)を表します。
400 Bad Request
不正なリクエストである事を示す
クライアントのエラーとみなされるもの(不正なリクエスト構文等)のために、サーバーがリクエストを処理できない、あるいは処理しようとしない場合を示す
401 Unauthorized
アクセス権が無い、または認証に失敗を示す
ベーシック認証等でIDやパスワードが間違っている場合にも表示
402 Payment Required
デジタル決済システムで使用するために作成されたが、ごく稀にしか使用されておらず標準的な慣例は無し
403 Forbidden
リクエスト先へのアクセス権が無い場合などに表示
404 Not Found
リクエスト先が無い場合に表示
Webサイトやページが無い場合などに「404 Not Found」などと表示されるのが一般的
405 Method Not Allowed
サーバーがリクエストメソッドを理解しているが、無効にされているため使用できない事を示す
406 Not Acceptable
サーバー側が受付不可能な値(ファイルの種類など)であり提供できない状態を示す
407 Proxy Authentication Required
プロキシサーバーの認証情報が必要である事を示す
408 Request Timeout
リクエスト送信後のやり取りに時間がかかりすぎるための時間切れを示す
サーバー混雑時や回線速度が遅い場合などに表示される
409 Conflict
リクエストがサーバーの現在の状態と矛盾・競合している事を示す
410 Gone
「404 Not Found」と同様にリクエスト先が見つからない事を示す
ファイルが削除されたため、ほぼ永久的にWebページが存在しない事を意味する
411 Length Required
Content-Lengthヘッダーが無いためアクセスが拒否されている事を示す
412 Precondition Failed
サーバー側で適合しない前提条件が、クライアント側のヘッダーに含まれていることを示す
413 Payload Too Large
リクエスト内容がサーバーで定めている上限を超えている事を示す
414 URI Too Long
クライアントがリクエストした URI が、サーバーで扱える長さを超えていることを示す
415 Unsupported Media Type
リクエストされたデータのメディア形式をサーバーが対応しておらず、サーバーはリクエストを拒否したことを示す
416 Range Not Satisfiable
リクエストされた範囲が、リソースを超えるデータを要求している事を示す
417 Expectation Failed
Expectリクエストヘッダーで指定された内容がサーバー側と適合しないことを示す
421 Misdirected Request
サーバーが、リクエストのURIに含まれているスキームや権限の組み合わせに対してレスポンスを生成するよう設定されていない事を示す
422 Unprocessable Entity
WebDAVの拡張ステータスコード
リクエストは適正だが、意味が誤っているために従うことができない事を示す
423 Locked
WebDAVの拡張ステータスコード
リクエスト内容がロックされている事を示す
424 Failed Dependency
WebDAVの拡張ステータスコード
前のリクエストが失敗したため、このリクエストも失敗した(依存関係)事を示す
425 Too Early
サーバが繰り返し処理が発生される可能性のあるリクエストと判断したため、処理が出来ないと判断した事を示す
426 Upgrade Required
Upgrading to TLS Within HTTP/1.1の拡張ステータスコードHTTP/1.1にアップグレードが必要な為、サーバが処理できない事を示す
428 Precondition Required
条件付きリクエストが必要である事を示す
ロストアップデート問題を防ぐ
429 Too Many Requests
ユーザーが一定時間内に大量のリクエストをしたため、サーバーが処理を拒否している事を示す
431 Request Header Fields Too Large
リクエストしたヘッダーフィールドが大きすぎるため、サーバーはリクエストの処理を拒否している事を示す
451 Unavailable For Legal Reasons
ユーザーエージェントが政府によって検閲されたウェブページなど、違法なリソースをリクエストしている事を示す
HTTPステータスコード500番台(サーバーエラー)
500番台はサーバーがリクエストの処理ありエラーが出た事を表します。
500 Internal Server Error
サーバー内部で何らかの問題が起き、リクエストを処理できず表示できない状態を示す
例えば、サーバ―内のプログラムエラーや.htaccessの記述ミスなど
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ステータスコードについてとコード番号一覧について解説しました。
改めて見るとたくさんのコードがありとても覚えられませんが、よく目にする主要コードだけはどんなものか覚えておくようにしましょう。