404、500、301などのHTTPステータスコードとは?各番号の意味、確認方法などのまとめ

HTTPステータスコード

どこかで「404 NOT FOUND」という表示を見かけたことはありませんか?

もしくは、サイト移転したときに「301リダイレクトが必要」などという話を聞いたことがあるかもしれません。

こういった通信状況を表す数字をHTTPステータスコードと呼びます。

この記事ではあまり詳しくない人でもしっかり理解ができるよう、

  • HTTPステータスコードの概要
  • HTTPステータスコードの確認方法
  • 各HTTPステータスコードの意味

について詳しくまとめました。

目次

HTTPステータスコードとは

まずHTTPというのは「Hypertext Transfer Protocol」の略で、Webブラウザがサーバーと通信する際に用いられるプロトコル(決まりごと)を意味します。

インターネットでコンテンツを閲覧する際に、通信処理時に採用されているルールのことですね。

実はURLがhttp://で始まるのも「HTTPに従って通信します」ということを意味しています。

そのHTTP通信において、通信相手(サーバー)からの応答がどういう状況なのかを表す3桁の数字をHTTPステータスコードと読んでいます。

100番代〜500番代まであり、それぞれに意味があるんですね。

有名なのは冒頭で触れた301や404ではないでしょうか。

HTTPステータスコードの確認方法

前提知識として、ネット通信において「情報がほしい」と要求することを「リクエスト」、要求された情報を送り返すことを「レスポンス」といいます。

ブラウザでコンテンツを閲覧する際は、ブラウザがリクエストを送り、サーバーがレスポンスを返すんですね。

HTTPステータスコードは、レスポンスの中にある「ヘッダー」に記載されています。

Google Chromeであれば検証モードを使うことで簡単にHTTPヘッダーの中身を確認できますので、下記記事を参考に見てみてください。

各HTTPステータスコードの意味

HTTPステータスコードは、100番代、200番代、300番代、400番代、500番代でそれぞれ主な意味が変わります。

100番代のステータスコード

ブラウザなどからのリクエストが相手に受け取られて、継続的に処理が行われることを意味します。

100 Continue継続中
101 Switching Protocolsサーバーがリクエストを実行するためにプロトコルの切り替えを要求している
102 Processing処理中
103 Early Hintsレスポンスヘッダが確定する前に、こうなるであろうと予測されるヘッダを送り返した

200番代のステータスコード

リクエストは正常に受け取られ、相手に正しく処理されたことを意味します。

200 OK正常に処理された
201 Createdリクエストが完了し、新たに作成されたURIが送り返された
202 Acceptedリクエストが受付られた。ただし処理は完了していない
203 Non-Authoritative Information信頼できない情報
204 No Contentリクエストを受け付けたが、返すべきレスポンスが存在しない
205 Reset Contentリクエストを受け付け、画面リセットを実施
206 Partial Content部分的な情報取得がリクエストされ、受理された
207 Multi-Status複数のステータス
208 Already Reportedすでに報告済
226 IM UsedIM使用

300番代のステータスコード

リクエストを完了させるために、追加で処理が必要なことを意味します。

300 Multiple Choicesリクエストしたリソースが複数存在
301 Moved Permanentlyコンテンツが別の場所に移動済みで、戻ることがない
302 Foundコンテンツが一時的に移動されていて、移動先が判明
303 See Other他を参照する必要あり
304 Not Modifiedリクエストしたものは未更新
305 Use Proxyプロキシの使用が必要
306※これは現時点で使われていないステータスコードです。
(将来的に利用される予定で、番号だけ確保されている状態)
307 Temporary Redirect一時的にコンテンツが一時的に移動している
308 Permanent Redirectコンテンツが別の場所に移動済みで、戻ることがない
※301の規格外の利用が増えたため、301本来の使用法を改めて定義したもの

400番代のステータスコード

リクエストに誤りがあったことを意味します。

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 RequiredHTTPヘッダ内にContent-Lengthがないためサーバーがアクセス拒否
412 Precondition Failed前提条件で失敗
413 Payload Too Large大きすぎるペイロード
414 URI Too LongURIが長すぎるため、サーバーが処理を拒否
415 Unsupported Media Typeサポートされていないメディアが扱われた
416 Range Not Satisfiable実際のリソースのデータサイズを超えるデータをリクエストしてしまった
417 Expectation FailedExpectヘッダによる拡張失敗
418 I’m a teapot私はティーポット
※冗談で設けられたコード
421 Misdirected Request誤ったリクエストの送信
422 Unprocessable Entity処理できないエンティティ
423 Lockedロックされている
424 Failed Dependency依存関係で失敗
425 Too EarlyEarly dataを受け入れない
426 Upgrade Requiredアップグレードが必要
428 Precondition Required事前条件が必要
429 Too Many Requests短時間に大量のリクエストがあったため、サーバが処理を拒否
431 Request Header Fields Too Largeリクエストヘッダーフィールドのデータが大きすぎるためサーバーが処理を拒否
451 Unavailable For Legal Reasons法的な理由による利用不可

500番代のステータスコード

相手サーバーがリクエストの処理に失敗したことを意味します。

500 Internal Server Errorサーバー内部でエラー発生
例えば、PHPプログラムに文法エラーがあったり設定に誤りがあった場合に501となる
501 Not Implemented実装されていないプログラムを実施
502 Bad Gateway不正なゲートウェイ
503 Service Unavailableメンテナンス等でサービスが利用不可
504 Gateway Timeoutゲートウェイ・プロキシサーバからの適切なレスポンスがないままタイムアウト
505 HTTP Version Not SupportedHTTPのバージョンが未サポート
506 Variant Also NegotiatesTransparent Content Negotiation in HTTPで定義されている拡張ステータスコード
507 Insufficient Storage容量不足
508 Loop Detectedループを検出
510 Not Extended拡張できない
511 Network Authentication Requiredネットワークに対する認証が必要

まとめ

HTTPステータスコードは、正直なところネットワーク関連の専門知識がないと理解しきれない内容もあります。

ただし、200、301、302、404、500は見かけることが多いので覚えておくとよいです。

200:正常にリクエストを処理
301:コンテンツが別の場所に移動済みで、戻ることがない
302:コンテンツが一時的に移動されていて、移動先が判明
404:ページが見つからない
500:サーバー内部でエラー発生

特に301と302の使い分けをはっきりさせておきましょう。

コンテンツを一時的に移動させた場合は302、移動させてもとに戻すことがないときは301です。
サイトを移転させた場合は、もともとのURLで閲覧しようとしたときに301のステータスコードを返すように設定しておく必要があるんですね。

サイト移転時に301リダイレクトを設定する方法は、別の記事でまとめておきます。

HTTPステータスコード

この記事が気に入ったら
いいね または フォローしてね!

SHARE
  • URLをコピーしました!

コメント

コメントする

目次