network / http

HTTP ステータスコード一覧

HTTPステータスコードの意味と用途を日本語で解説します。コード番号やキーワードで検索できます。

25
1xx情報
100Continue
継続
クライアントはリクエストの続きを送信してください。
101Switching Protocols
プロトコル切替
サーバーがプロトコルを切り替えます(WebSocketなど)。
2xx成功
200OK
成功
リクエストが成功しました。
201Created
作成済み
リソースが作成されました。POST後のレスポンスによく使われます。
204No Content
コンテンツなし
成功しましたが返すコンテンツがありません。DELETEやPATCHの応答に使われます。
206Partial Content
部分的コンテンツ
範囲指定リクエスト(Range ヘッダー)への部分的なレスポンスです。
3xxリダイレクト
301Moved Permanently
恒久的移動
URLが恒久的に変更されました。SEOの観点からリダイレクトに推奨されます。
302Found
一時的移動
URLが一時的に変更されました。リダイレクト先を維持したい場合に使います。
304Not Modified
変更なし
キャッシュが有効です。If-None-Matchなどの条件付きGETで使われます。
307Temporary Redirect
一時的リダイレクト
一時的なリダイレクト。302と異なりメソッドが変更されません。
308Permanent Redirect
恒久的リダイレクト
恒久的なリダイレクト。301と異なりメソッドが変更されません。
4xxクライアントエラー
400Bad Request
不正リクエスト
リクエストの構文が正しくありません。入力値のバリデーションエラーなどに使います。
401Unauthorized
未認証
認証が必要です。ログインしていない場合などに返します。
403Forbidden
禁止
アクセスが拒否されました。認証済みでも権限がない場合に返します。
404Not Found
未検出
リソースが見つかりません。URLが間違っている場合などに返します。
405Method Not Allowed
メソッド不許可
許可されていないHTTPメソッドです。
409Conflict
競合
リソースの競合が発生しました。重複登録などに使います。
410Gone
消滅
リソースが恒久的に削除されました。404との違いは削除が確定していること。
422Unprocessable Entity
処理不可能なエンティティ
バリデーションエラー。構文は正しいが意味的に処理できない場合に使います。
429Too Many Requests
リクエスト過多
レートリミットを超えました。Retry-Afterヘッダーで再試行時間を示します。
5xxサーバーエラー
500Internal Server Error
サーバー内部エラー
サーバー内部でエラーが発生しました。汎用的なサーバーエラーです。
501Not Implemented
未実装
サーバーがリクエストメソッドをサポートしていません。
502Bad Gateway
不正なゲートウェイ
プロキシやゲートウェイが不正なレスポンスを受け取りました。
503Service Unavailable
サービス利用不可
サーバーが一時的に利用できません。メンテナンス中やオーバーロードの場合に返します。
504Gateway Timeout
ゲートウェイタイムアウト
ゲートウェイがタイムアウトしました。

使い方

01
  1. 検索ボックスにコード番号(例: 404)またはキーワード(例: 認証、redirect)を入力してください
  2. カテゴリボタン(1xx〜5xx)で絞り込みができます
  3. 検索とカテゴリフィルターは組み合わせて使用できます
  4. 各カードにはコード番号・英語名・日本語名・説明が表示されます

実装コード

02

外部ライブラリ不要の純粋関数で実装。配列のfilterincludesのみでキーワード検索を実現しています。

// HTTPステータスコードをキーワードで検索する純粋関数
export function searchHttpStatus(query) {
  if (!query) return HTTP_STATUS_CODES;
  const q = query.toLowerCase();
  return HTTP_STATUS_CODES.filter(s =>
    s.code.toString().includes(q) ||
    s.name.toLowerCase().includes(q) ||
    s.nameJa.includes(q) ||
    s.description.includes(q)
  );
}

よくある使用例・注意点

03
401 vs 403 の使い分け
401 Unauthorized は「認証されていない」状態です。ログインしていないユーザーへのレスポンスに使います。403 Forbidden は「認証済みだが権限がない」状態です。ログイン済みでも閲覧権限がないページへのアクセスに使います。名前に反して401は「未認証」であることに注意してください。
404 vs 410 の違い(SEOへの影響)
404 Not Found はリソースが見つからない汎用エラーです。410 Gone はリソースが恒久的に削除されたことを示します。SEOの観点では、削除したページには410を返すことでGoogleクローラーへの削除通知が素早くなります。404はいずれ再登録される可能性があるとクローラーが判断するため、インデックス削除に時間がかかります。
302 vs 307 のメソッド保持の違い
302 Found は歴史的にPOSTリクエストをリダイレクト先でGETに変換するブラウザが多く、実質的にGETリダイレクトとして使われてきました。307 Temporary Redirect はHTTP/1.1で導入され、元のHTTPメソッド(POST/PUT等)を保持したままリダイレクトします。POSTフォームのリダイレクトに正確な動作が必要な場合は307を使用してください。
429 のレートリミット実装
429 Too Many Requests はAPIのレートリミット超過時に返します。レスポンスには Retry-After ヘッダーで再試行可能な秒数またはHTTP日付を付与するのが標準的です。X-RateLimit-Limit(上限)・X-RateLimit-Remaining(残り回数)・X-RateLimit-Reset(リセット時刻)ヘッダーも合わせて返すと、クライアント側でより適切に制御できます。

関連ツール

04
URLエンコードハッシュ生成JSONフォーマッター

ソースコード

05

このツールのソースコード(テストコードを含む)はGitHubで公開しています。 MITライセンスで自由に利用・改変できます。

GitHub でコードを見る →