コンテンツにスキップ

📡 HTTP レスポンスヘッダ検証

URL を入れるだけで、実際に返されているレスポンスヘッダを取得し、セキュリティ・キャッシュ・CORS などを解説付きで表示します。

完全無料 登録不要 サーバー処理 ログ・DB 保存なし レート制限あり 5 言語対応 ダークモード

⚠️ 診断対象のサーバーには DevLab のサーバーからアクセスが行われます。プライベート IP・ローカルホストは対象外です。

📖 この診断で分かること

ブラウザは HTML を読む前にレスポンスヘッダを読み、そこに書かれた指示に従って挙動を決めます。この診断は実際に GET して返ってきたヘッダを一覧し、セキュリティ・キャッシュ・圧縮に関わるものを抜き出します。ヘッダは「付けたつもり」で付いていないことが最も多い設定項目です。CDN やリバースプロキシが途中で書き換えたり、アプリ側で付けたヘッダを nginx が上書きしたりするため、必ず実際のレスポンスで確認してください。

判定項目 何を見ているか 引っかかったときの対処
Strict-Transport-Security 付いていれば、以後そのドメインへは http:// で書いても必ず HTTPS で接続されます。中間者による初回のダウングレードを防ぎます。 max-age=31536000; includeSubDomains を付けます。サブドメインを含めると HTTP 専用のサブドメインが即死するので、先に全サブドメインの HTTPS 化を済ませてから付けてください。
X-Content-Type-Options nosniff を送ると、ブラウザは中身を推測せず宣言された Content-Type を信じます。画像として上げられた実は HTML のファイルが HTML として実行されるのを防ぎます。 全レスポンスで X-Content-Type-Options: nosniff を送ります。副作用がほぼ無いので、ユーザー投稿ファイルや JSON API があるなら必須です。
Content-Security-Policy 読み込んでよいスクリプトや画像の出所をブラウザに宣言します。XSS が刺さっても外部へデータを送れなくする最後の砦です。 いきなり本番で強制すると表示が壊れます。まず Content-Security-Policy-Report-Only で数日流し、レポートに出た正当なドメインを許可リストに足してから強制に切り替えてください。
圧縮 (Content-Encoding) gzip / br が付いていなければ HTML や JS が非圧縮で流れています。転送量が 3〜5 倍になり、そのまま表示速度に響きます。 nginx なら gzip on; に加えて gzip_typesapplication/javascriptapplication/json を明示します。既定では text/html しか圧縮されません。

ヘッダはリクエストの経路すべてで書き換わり得ます。アプリ → PHP-FPM → nginx → CDN のどこで付き、どこで消えているかを切り分けるには、CDN を経由しないオリジンの URL に対しても同じ診断をかけて比較するのが早いです。