3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HTTPステータスコードとは?

3
Posted at

HTTPステータスコードとは?

WebサイトやWebアプリの運用に関わると、200404500 といった数字を目にすることがあります。

最初はただの番号に見えるかもしれませんが、これは HTTPステータスコード と呼ばれるものです。
サーバーがリクエストの結果を返すときの「応答メッセージ」のようなもので、Webのトラブル調査や切り分けでとても役立ちます。

この記事では、IT初心者向けに以下をやさしく整理します。

  • HTTPステータスコードとは何か
  • よく見る代表的なコード
  • エラー調査でどう役立つのか

HTTPステータスコードとは?

ブラウザでWebページを開いたり、ボタンを押してデータを送信したりすると、裏側ではブラウザとサーバーが通信しています。

このときサーバーは、
「処理が成功したのか」
「失敗したのか」
「どんな状態だったのか」
を数字で返します。

それがHTTPステータスコードです。

たとえば、次のような結果を表します。

  • 正常にページを表示できた
  • 指定したページが見つからなかった
  • ログインが必要だった
  • サーバー内部でエラーが発生した

つまりHTTPステータスコードは、Web通信の結果を数字で表したもの です。

まずは大きな分類を知ろう

HTTPステータスコードは、最初の1桁を見ると大まかな意味が分かります。

1xx:処理中

処理の途中経過を表します。
初心者のうちは、日常業務でそこまで強く意識しなくても大丈夫です。

2xx:成功

リクエストが正常に受け付けられ、処理もうまくいった状態です。

3xx:転送

別のURLへ移動するときなどに使われます。
リダイレクトで見かける分類です。

4xx:リクエスト側の問題

送ったリクエストに問題がある、または認証・権限に問題がある状態です。

5xx:サーバー側の問題

リクエスト自体は届いているものの、サーバー内部でエラーが起きて処理できなかった状態です。

この分類だけでも、
「どちら側に原因がありそうか」
をざっくり切り分けしやすくなります。

よく見る代表的なHTTPステータスコード

ここからは、実際によく見るコードを紹介します。

200 OK

もっとも基本的な成功です。
ページの表示やAPIの処理などが正常に完了したときに返ります。

たとえば、Webページが問題なく表示されたときは、基本的に200です。

201 Created

新しいデータの作成に成功したときに返ることがあります。
たとえば、APIで新規登録を行ったときなどです。

200も201も成功ですが、201は 「新しく作成された」 ことがポイントです。

301 Moved Permanently

ページのURLが恒久的に変わったときの転送です。
古いURLにアクセスしても、新しいURLへ案内されます。

サイト移転やURL整理の場面で使われます。

302 Found

一時的な転送です。
ログイン後の画面遷移などでも見かけることがあります。

301との違いは、恒久的な変更ではなく、一時的な移動 であることです。

400 Bad Request

リクエストの内容が不正なときに返ります。

たとえば、次のようなケースです。

  • 必須パラメータが不足している
  • 送信データの形式が違う
  • 想定外の値が送られている

401 Unauthorized

認証が必要、または認証に失敗している状態です。

たとえば、次のようなケースでよく出ます。

  • ログインしていない
  • セッションが切れている
  • APIトークンが無効になっている

403 Forbidden

アクセスは禁止されている状態です。
認証の有無というより、そのユーザーには権限がない ときに返ることが多いです。

401と403は混同しやすいですが、ざっくり言うと以下の違いがあります。

  • 401:まず認証が必要
  • 403:認証していても許可されていない

404 Not Found

指定したページやリソースが見つからない状態です。

たとえば、次のような場面で発生します。

  • URLの入力ミス
  • 削除されたページへのアクセス
  • 存在しない画像やAPIパスの呼び出し

初心者でもかなり見かけやすいコードです。

500 Internal Server Error

サーバー内部で何らかのエラーが発生した状態です。

利用者から見ると、
「リクエストは送れたけれど、サーバー側で失敗した」
ように見えることが多いです。

ただし、500だけでは原因までは分かりません。
実際の調査では、アプリケーションログやサーバーログを確認して原因を追います。

502 Bad Gateway

サーバー同士の連携で問題が起きたときに見られます。

たとえば、リバースプロキシやロードバランサの先にいるアプリサーバーが正しく応答できない場合などです。

503 Service Unavailable

一時的にサービスを利用できない状態です。

  • メンテナンス中
  • アクセス集中で処理しきれない
  • 一時的にアプリケーションが停止している

といったケースで見られます。

504 Gateway Timeout

サーバー同士の通信がタイムアウトした状態です。
処理先の応答が遅すぎて、待ちきれず失敗したときに返ります。

エラー調査でどう役立つのか

HTTPステータスコードの良いところは、問題の方向性をすばやく把握できること です。

たとえば、以下のように考えることができます。

  • 404ならURLやパスの誤りを疑う
  • 401や403なら認証・権限設定を疑う
  • 500ならアプリケーション内部エラーの可能性が高い
  • 502や504なら接続先との連携や高負荷を疑う

障害調査では、まずHTTPステータスコードを見てから、次にログや設定を確認する流れがよくあります。

初心者がまず覚えたい5つ

最初から全部覚える必要はありません。
まずはこの5つを押さえるだけでも十分役立ちます。

  • 200:成功
  • 401:認証が必要
  • 403:権限不足
  • 404:見つからない
  • 500:サーバー内部エラー

これだけでも、Webのエラーを見たときの理解度がかなり変わります。

まとめ

HTTPステータスコードは、Web通信の結果を表す番号です。

特に大事なのは、次の考え方です。

  • 2xxは成功
  • 4xxはリクエスト側の問題
  • 5xxはサーバー側の問題

最初は数字の暗記に見えるかもしれませんが、実際には
「どこを調べればよいか」
を教えてくれる手がかりになります。

Web開発や運用に少しずつ関わるようになると、この知識はかなり役立ちます。
まずは200、404、500あたりから覚えていくのがおすすめです。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?