http web development status codes headers api caching security

HTTPステータスコード & レスポンスヘッダー:完全リファレンスガイド

HTTPステータスコード (1xx-5xx) と主要なレスポンスヘッダーの包括的なリファレンス。Webアプリのデバッグ、Cache-Controlによるキャッシュ最適化、Set-Cookieによるセッション管理方法を学びます。

2026-04-12

HTTPステータスコード & レスポンスヘッダー:完全リファレンス

HTTPステータスコードとヘッダーを理解することは、Web開発者、SEOスペシャリスト、システム管理者にとって不可欠です。このガイドでは、現代のWeb通信で使用される主要なステータスコードとヘッダーを網羅しています。

1. HTTPステータスコード・クイックリファレンス

ステータスコードは、最初の数字に基づいて5つのクラスに分類されます。

1xx: 情報

  • 101 Switching Protocols: サーバがプロトコルの切り替えに同意(例:WebSocketへのアップグレード)。

2xx: 成功

  • 200 OK: リクエストが成功した。
  • 201 Created: リクエストが成功し、新しいリソースが作成された。
  • 204 No Content: リクエストは成功したが、返すべきコンテンツがない。

3xx: リダイレクト

  • 301 Moved Permanently: リソースが恒久的に新しいURLに移動した。
  • 302 Found: リソースが一時的に異なるURLにある。
  • 304 Not Modified: キャッシュ用。リソースが変更されていないことを示す。

4xx: クライアントエラー

  • 400 Bad Request: リクエストの構文が誤っているなど、サーバがリクエストを処理できない。
  • 401 Unauthorized: 認証が必要。
  • 403 Forbidden: サーバはリクエストを理解しているが、アクセスを拒否している。
  • 404 Not Found: リクエストされたリソースが見つからない。
  • 429 Too Many Requests: 短時間にリクエストを送りすぎている(レート制限)。

5xx: サーバエラー

  • 500 Internal Server Error: サーバ内部で予期しないエラーが発生した。
  • 502 Bad Gateway: ゲートウェイまたはプロキシとして動作しているサーバが、上位サーバから無効なレスポンスを受け取った。
  • 503 Service Unavailable: サーバが現在リクエストを処理できない(メンテナンスや過負荷)。
  • 504 Gateway Timeout: 上位サーバからのレスポンスがタイムアウトした。

2. 主要なHTTPレスポンスヘッダー

ヘッダーは、レスポンスやサーバに関するメタデータを提供します。

キャッシュ制御: Cache-Control

ブラウザや中間キャッシュ(CDNなど)がリソースをどのように保存するかを制御します。

  • public, max-age=31536000, immutable: バージョン管理された静的アセット(JS, CSS)に最適。
  • no-store: 何もキャッシュしない(機密データ用)。
  • no-cache: キャッシュを使用する前にサーバで再検証が必要。

セキュリティ: Strict-Transport-Security (HSTS)

ブラウザに対し、HTTPS経由でのみサイトにアクセスするように指示します。

  • 例: max-age=63072000; includeSubDomains; preload

セッション管理: Set-Cookie

サーバからユーザエージェントにクッキーを送信します。

  • 例: id=abc; Max-Age=3600; Secure; HttpOnly; SameSite=Lax
    • HttpOnly: JavaScriptからのクッキーアクセスを防止(XSS対策)。
    • Secure: HTTPS経由でのみクッキーを送信。
    • SameSite: クロスサイトクッキーの動作を制御。

コンテントネゴシエーション: Content-Type & Accept-Encoding

  • Content-Type: リソースのメディアタイプを示す(例:text/html, application/json)。
  • Accept-Encoding: クライアントがサポートする圧縮形式をサーバに伝える(例:gzip, br)。

3. 比較表: 301 vs. 302 リダイレクト

特徴 301 恒久的な移動 302 一時的な移動
SEOへの影響 リンクジュース(PageRank)を継承 継承しない
ブラウザキャッシュ デフォルトでキャッシュされる デフォルトでキャッシュされない
主なユースケース サイト移転、URL変更 メンテナンス、期間限定キャンペーン

FAQ: 一般的なHTTPの問題

Q: ログインしているのに 403 Forbidden エラーが出るのはなぜ?

A: ユーザにそのリソースに対する特定の権限がないか、CSRFトークンの不一致が原因であることが多いです。

Q: 401 と 403 の違いは何?

A: 401 Unauthorized は「あなたが誰かわからない(ログインしてください)」という意味です。403 Forbidden は「あなたが誰かはわかっているが、許可されていない」という意味です。

Q: 502 Bad Gateway を直すには?

A: 通常はサーバ側の問題です。バックエンドアプリ(Node.js, Pythonなど)が起動しているか、リバースプロキシ(Nginx/Apache)の設定が正しいか確認してください。

関連ツール

  • HTTPヘッダー解析: 任意のURLのヘッダーを検査・分析します。
  • Cache-Controlビルダ: 最適なキャッシュポリシーを生成します。
  • ステータスコードチェッカ: APIやWebサイトのレスポンスコードを検証します。