HTTPステータスコードの意味を理解することは、トラブルシューティングの際の原因特定に役立つ。
HTTPステータスコードとは
HTTPプロトコル(インターネット上で、Webサーバーとユーザーが相互に通信するための仕組み)では、コンピュータ同士が通信している間に、コードを用いてお互いの状態(ステータス)をやり取りしている。
このコードのことをHTTPステータスコード(HTTP Status Code)と呼ぶ。
通信のエラーが発生した場合に「404 Not Found」のようにブラウザ上に表示される。
エラーが発生しなかった場合にも見えないところでステータスのやり取りは行われている。
HTTPステータスコードの分類と概要
以下に大まかな分類とその概要、よく見るステータスコードとその意味をまとめてみた。
分類と概要を知っておくと、HTTPステータスコードの意味を理解しやすく覚えやすい。
100番台のHTTPステータスコード
HTTPステータスコードの100〜199番は、リクエストを受け取って処理していることを知らせる通知コード。
これらのコードはブラウザに通知される内部的コードだし、最初のHTTP規格では、100番台のコードは認められていなかったので、通常は目にすることはない。
200番台のHTTPステータスコード
200〜299番のステータスコードは、リクエストした動作を正しく理解し承認された、という成功を示すコード。
これらのコードも、通常見ることはない。これらは、リクエストの成功と現在の状態を確認するためにブラウザで内部的に使用されている。200番台のコードも診断プロセスで貴重な情報を与えてくれることがあり、これらのコードを読み出せる診断ツールもある。
300番台のHTTPステータスコード
300〜399番のステータスコードは、リクエストを完了するには更に処理(操作)が必要であることをブラウザに示す、リダイレクトコード。
この処理は自動的に実行されるものもあれば、ユーザーによる追加入力を要求するものもある。例えば、301は、特定のリソースが恒久的に移動し、以後そのリソースに対する全ての呼び出しは特定のURLを参照しなければならないことを示す。
400番台のHTTPステータスコード
400番台は、リクエストの構文に誤りがあるか不正な形式のため、サーバがリクエストを受け取れない、というクライアント側のエラーを示すコード。
これらのエラーコードは、セキュリティに関連している場合が多い。例えば、401は、クライアントがアクセスを許可されていないリソースへアクセスした際にサーバから返される。403は、クライアントが未許可のリソースへのアクセスを試み、クライアントの認証ステータスによっても状況が変化しない場合にサーバから返される。これは、そのリソースへのアクセスが禁じられていることを示す。
404は、技術的にはクライアント側のエラーとして分類されているが、実際にはクライアント側またはサーバ側のいずれかのエラーを表す。このエラーは、リクエストされたリソースが見つからなかったことを示している。このエラーがクライアント側で起きた場合、ネットワーク接続の問題が原因か、リソースがサーバから削除されるか、リソースの名前が変更されたために、発生するケースが多い。
500番台のHTTPステータスコード
500番台のステータスコードは、「サーバはリクエストを受け取ったが、処理できない。他のサーバで処理できる可能性がある。」というサーバのエラーを示すコード。
例えば、504エラーは、Webサーバでタイムアウトが発生すると返される。ただし500番台のエラーは、サーバの問題ではなく、サーバ上で動作しているWebアプリケーションの問題を示していることも多い。
例えば、500は、コードのバグのせいでWebサーバから返されることもある。これは、サーバの内部エラーを示す一般的なコード。このコードは、何らかの問題が発生し、HTTPがそれをどう処理していいか分からないことを示している。
よくみるHTTPステータスコード一覧
HTTPステータスコード | 名称 | 意味 |
---|---|---|
200 | OK | リクエスト成功 |
301 | Moved Permanently | 指定されたURIは恒久的に移動している |
302 | Found | 指定されたリソースは別のURIに存在する |
307 | Temporary Redirect | 指定されたURIは一時的に移動している |
401 | Unauthorized | 指定したURIのアクセスには認証が必要 |
403 | Forbidden | 指定されたURIのアクセスは許可されていない |
404 | Not Found | 指定されたURIは存在していない |
500 | Internal Server Error | サーバの内部エラー |
503 | Service Unavailable | サービスが利用不可(アクセス過多の場合など) |
これ以外のステータスコードは、以下を参照。
HTTPステータスコード一覧|トピックアップ
お読み頂きありがとうございます。
少しでもお役に立てたらクリックお願いします↓。