HTTPヘッダーアナライザー
HTTPヘッダーはリクエストとレスポンスに関するメタデータを運びます。このツールはリクエスト/ステータスライン、ヘッダー、ボディコンテンツを含む完全なHTTPメッセージを解析します。セキュリティヘッダー(HSTS、CSP)、認証(Basic、Bearer)、Cookie、CORS設定、キャッシュディレクティブを分析します。ボディコンテンツはContent-Type(JSON、HTML、XML)に基づいて自動的にフォーマットされ、構文がハイライトされます。
仕様
よくあるユースケース
- ブラウザDevToolsのNetworkタブからコピーしたAPIリクエストのデバッグ
- curl -iまたはcurl -v出力のヘッダーとボディの分析
- コンプライアンスのためのセキュリティヘッダー監査(OWASPの推奨事項)
- CORSプリフライトとクロスオリジンの問題のトラブルシューティング
- 認証ヘッダーとCookie設定の検査
- CDNおよびブラウザキャッシュのキャッシュ動作の検証
機能
- 完全なHTTPリクエストの解析(GET /path HTTP/1.1)
- ステータスコードとリーズンフレーズ付きHTTPレスポンスの解析
- ボディコンテンツのフォーマットと構文ハイライト(JSON、HTML、XML、CSS)
- Authorizationヘッダーのデコード(Basic認証の資格情報、Bearerトークン)
- セキュリティヘッダーの分析(HSTS、CSP、X-Frame-Options、X-Content-Type-Options)
- Set-Cookie属性の解析(Secure、HttpOnly、SameSite、有効期限)
- ヘッダーからのCookieの抽出と一覧表示
- CORSヘッダーの表示(Access-Control-Allow-Originなど)
- Cache-Controlディレクティブの説明(max-age、no-cache、private)
例
JSONボディ付きAPIレスポンス
試してみる →curl -i出力からコピーしたような、ヘッダーとJSONボディを含む完全なHTTPレスポンス。
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Cache-Control: max-age=3600, public
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains
{
"status": "success",
"data": {
"id": 12345,
"name": "Example User"
}
}認証付きHTTPリクエスト
試してみる →Bearerトークン認証とCookieを含むリクエスト。
GET /api/users HTTP/1.1
Host: api.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Accept: application/json
Cookie: session=abc123; theme=darkヒント
- "curl -i URL"を使用してレスポンスヘッダーを出力に含めます。
- ブラウザDevToolsでリクエストを右クリックし「cURLとしてコピー」で完全なリクエストを取得できます。
- HSTS(Strict-Transport-Security)はブラウザにドメインでHTTPSのみを使用するよう指示します。
- CSP(Content-Security-Policy)はページが読み込めるリソースを制御します。
- SameSite Cookie属性はCSRF攻撃の防止に役立ちます。
解説 HTTPヘッダーアナライザー
HTTPヘッダーはすべてのHTTPリクエストとレスポンスの一部としてクライアントとサーバー間で送信されるキーバリューペアです。メッセージに関するメタデータを運びます: コンテンツタイプ、キャッシュディレクティブ、認証資格情報、セキュリティポリシー。ヘッダーはリクエストまたはステータスラインの後、オプションのボディの前に表示され、空行でボディから区切られます。
リクエストヘッダーはクライアントと希望するレスポンスに関するコンテキストを提供します。Hostはターゲットサーバーを識別します。AcceptとContent-Typeはメディアフォーマットをネゴシエートします。Authorizationは資格情報(Basic、Bearer、APIキー)を運びます。Cookieは保存されたセッションデータを送信します。User-Agentはクライアントソフトウェアを識別します。
レスポンスヘッダーはクライアントがコンテンツを処理する方法を制御します。Cache-ControlとETagはキャッシュ動作を管理します。Set-Cookieはクライアントサイドの状態を確立します。Content-Security-PolicyはXSSを軽減するためにリソースの読み込みを制限します。Strict-Transport-SecurityはHTTPSを強制します。CORSヘッダー(Access-Control-Allow-Originおよび関連ヘッダー)はクロスオリジンリソース共有を制御し、Web APIで最も一般的に設定ミスされる側面の1つです。
ヘッダーの理解はWebアプリケーションのデバッグに不可欠です。APIが予期しない結果を返す場合、ヘッダーが原因を明らかにすることがよくあります: 欠落したContent-Type、期限切れの認証トークン、古いデータを提供するキャッシュディレクティブ、またはリクエストをブロックするCORSポリシー。
Cache-Controlディレクティブは最も誤解されているヘッダーの1つです。no-cacheディレクティブは「キャッシュしない」という意味ではなく、キャッシュは保存されたレスポンスを使用する前にオリジンサーバーで再検証する必要があることを意味します。レスポンスは依然としてキャッシュできます。no-storeディレクティブが実際にキャッシュを完全に防止するもので、機密データに使用すべきです。条件付きリクエストの恩恵を受ける頻繁に変更されるコンテンツには、no-cacheとETagまたはLast-Modifiedの組み合わせが適切な戦略です。
CORSエラーは、異なるオリジンへのブラウザリクエストにAccess-Control-Allow-Originレスポンスヘッダーが欠落している場合に発生します。サーバーはリクエスト元のオリジンまたはパブリックAPIの場合は*を含むこのヘッダーを含める必要があります。資格情報(CookieまたはAuthorizationヘッダー)が関与する場合、ワイルドカードは許可されません。ヘッダーは正確なオリジンを指定する必要があります。プリフライトOPTIONSリクエストではさらにAccess-Control-Allow-MethodsとAccess-Control-Allow-Headersが必要です。Bearerトークン認証はAuthorization: Bearer <token>の形式を使用し、トークンは通常OAuth 2.0フローからのJWTまたは不透明なアクセストークンです。Cookieとは異なり、Bearerトークンは自動的に送信されません。クライアントは各リクエストに明示的にヘッダーを付加する必要があります。
すべてのWebサイトは最低限のセキュリティヘッダーセットを設定すべきです。Strict-Transport-Security(HSTS)はHTTPSが常に使用されることを保証します。Content-Security-Policyはリソースの読み込みを制限してXSSを軽減します。X-Content-Type-Options: nosniffはMIMEタイプスニッフィングを防止します。X-Frame-Optionsはクリックジャッキングから保護し、Referrer-PolicyはRefererヘッダーで送信される情報を制御します。APIはさらに、どのオリジンがリクエストできるかを制御するための適切なCORSヘッダーを設定すべきです。