it

http ステータスコードとは?意味と種類を解説!(レスポンス:エラー:成功:リダイレクト:クライアント:サーバーなど)

当サイトでは記事内に広告を含みます

Webブラウザでサイトにアクセスしたとき、裏側ではHTTPという通信プロトコルがやり取りを行っています。

その際にサーバーからクライアントへ返されるHTTPステータスコードは、リクエストの処理結果を数値3桁で表した情報であり、Web開発やサーバー運用において非常に重要な役割を果たします。

本記事では、HTTPステータスコードの基本的な意味と種類、各番号台の分類について詳しく解説します。

200・301・404・500といった代表的なコードから、リダイレクトやエラーの仕組みまで、Web通信の基礎を学びたい方にとって役立つ内容でしょう。

HTTPステータスコードとは?基本的な意味と役割

それではまず、HTTPステータスコードの基本的な定義と、HTTP通信における役割について解説していきます。

HTTPステータスコードはHTTP(HyperText Transfer Protocol)においてサーバーがクライアントのリクエストに対して返す3桁の数値コードです。

このコードによって「リクエストが成功したか」「エラーが発生したか」「リダイレクトが必要か」といった処理結果をクライアントに伝えることができます。

HTTPステータスコードは5つのカテゴリに分類されます。

1xx(情報):リクエストを受け取り処理を継続中

2xx(成功):リクエストが正常に処理された

3xx(リダイレクト):処理完了のためさらなるアクションが必要

4xx(クライアントエラー):クライアント側のリクエストに問題あり

5xx(サーバーエラー):サーバー側で処理に失敗した

ステータスコードがWeb開発で重要な理由

ステータスコードはWebアプリケーション開発においてAPIのレスポンス設計やエラーハンドリングの基準となる重要な情報です。

適切なステータスコードを返すことで、クライアントアプリケーションが処理結果を正確に判断し、ユーザーへの適切なフィードバックを行えるようになります。

SEOの観点でも、301リダイレクトや404エラーなどのステータスコードはGoogleなどの検索エンジンのクロール動作に直接影響するため、正確な設定が重要でしょう。

ステータスコードの構造とレスポンスライン

HTTPレスポンスの最初の行(ステータスライン)には、HTTPバージョン・ステータスコード・ステータスメッセージが含まれます。

たとえば「HTTP/1.1 200 OK」という形式で、バージョン・コード・意味が一行に表現されます。

ステータスコードに続くメッセージ(OK・Not Foundなど)は人間向けの説明文であり、プログラムは主に数値コードを参照して動作を決定するでしょう。

HTTPステータスコードの種類と各番号台の意味

続いては、HTTPステータスコードの各番号台について、代表的なコードとその意味を確認していきます。

2xx系:成功を示すステータスコード

2xx系のコードはリクエストが正常に処理されたことを示します。

最も基本的な「200 OK」はリクエストの処理が成功し、レスポンスボディにデータが含まれることを示します。

「201 Created」はPOSTリクエストによって新しいリソースが作成されたことを示すコードで、REST APIでリソース生成後に使われます。

「204 No Content」はリクエストは成功したがレスポンスボディに返すデータがない場合に使用し、DELETE操作などで活用されるでしょう。

3xx系:リダイレクトを示すステータスコード

3xx系はクライアントが追加のアクション(別URLへのアクセス)を行う必要があることを示します。

「301 Moved Permanently」はリソースが恒久的に別のURLへ移転したことを示し、SEO的にはリンクの評価(リンクジュース)が引き継がれる重要なコードです。

「302 Found」は一時的な移転を示し、「304 Not Modified」はキャッシュが有効でサーバーから新たにデータを取得する必要がないことを示します。

コード メッセージ 意味
200 OK リクエスト成功
201 Created リソース作成成功
204 No Content 成功・返却データなし
301 Moved Permanently 恒久的リダイレクト
302 Found 一時的リダイレクト
304 Not Modified キャッシュ有効
400 Bad Request 不正なリクエスト
401 Unauthorized 認証エラー
403 Forbidden アクセス禁止
404 Not Found ページ不存在
500 Internal Server Error サーバー内部エラー
503 Service Unavailable サービス利用不可

4xx系・5xx系:エラーを示すステータスコード

4xx系はクライアント側のリクエストに問題があることを示し、「400 Bad Request」「401 Unauthorized」「403 Forbidden」「404 Not Found」「422 Unprocessable Entity」などが代表的です。

5xx系はサーバー側の処理エラーを示し、「500 Internal Server Error」「502 Bad Gateway」「503 Service Unavailable」などがよく見られるコードとなります。

4xx系はクライアントが修正できる問題、5xx系はサーバー管理者が対処すべき問題という点が大きな違いでしょう。

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

続いては、HTTPステータスコードを実際に確認する方法と、開発・運用での活用について見ていきます。

ブラウザの開発者ツールでの確認

ChromeやFirefoxなどのブラウザでF12キーを押して開発者ツールを開き、「Network」タブを確認することでリクエストとレスポンスのステータスコードをリアルタイムで確認できます。

各リクエストの行に表示されるステータスカラムで200・301・404などのコードを視覚的に確認でき、エラーが発生した際のデバッグに非常に役立ちます。

レスポンスヘッダーの詳細も確認できるため、Web開発の必須ツールといえるでしょう。

curlコマンドでの確認

コマンドラインでは「curl -I [URL]」コマンドでHTTPレスポンスヘッダーとステータスコードを確認できます。

スクリプトや自動化の中でHTTPステータスコードを確認・判定したい場合に特に有効な方法です。

「curl -o /dev/null -s -w “%{http_code}” [URL]」のような形式でステータスコードのみを取得することも可能でしょう。

RESTful APIにおけるステータスコードの設計

REST API設計では適切なステータスコードを返すことがAPIの品質を大きく左右します。

リソースの取得成功には200、作成成功には201、削除成功(返却データなし)には204、バリデーションエラーには422、認証エラーには401というように、操作内容に応じた適切なコードを選択することが重要です。

適切なステータスコードを返すAPIはクライアント開発者にとって扱いやすく、エラーハンドリングも直感的に実装できるでしょう。

まとめ

HTTPステータスコードは1xx〜5xxの5カテゴリに分類され、リクエストの処理結果をサーバーからクライアントへ伝える重要な情報です。

200番台の成功・3xx番台のリダイレクト・4xx番台のクライアントエラー・5xx番台のサーバーエラーの各分類を理解することで、Web開発・運用・デバッグの効率が大幅に向上します。

RESTful APIの設計においても適切なステータスコードの選択が品質向上のカギとなるため、各コードの意味を確実に押さえておくことが大切でしょう。