HTTPヘッダーリファレンス
よく使うHTTPヘッダーをカテゴリ別にまとめたリファレンス。リクエスト・レスポンス・キャッシュ・セキュリティ・CORSヘッダーの構文と使用例を検索・コピーできます。
使い方使い方を開く使い方を閉じる
- 1
ヘッダーを検索・フィルター
検索欄にヘッダー名を入力するか、カテゴリ(リクエスト、レスポンスなど)でフィルタリングして目的のヘッダーを見つけます。
- 2
構文と使用例を確認
各ヘッダーの説明、構文フォーマット、実際の使用例を確認します。
- 3
ヘッダー名をコピー
コピーアイコンをクリックしてヘッダー名をクリップボードにコピーし、すぐに使用できます。
Content-Typeリソースまたはリクエストボディのメディアタイプを示す
構文
Content-Type: <media-type>[; charset=<charset>][; boundary=<boundary>]使用例
Content-Type: application/jsonJSONのリクエスト・レスポンスボディContent-Type: text/html; charset=utf-8UTF-8エンコードのHTMLドキュメントContent-Type: multipart/form-data; boundary=----WebKitFormBoundaryファイルアップロードのフォームデータContent-Lengthメッセージボディのバイト数を示す
構文
Content-Length: <length>使用例
Content-Length: 348レスポンスボディが348バイトContent-Length: 0ボディなし(DELETEレスポンスなど)Dateメッセージが生成された日時を示す
構文
Date: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT使用例
Date: Wed, 21 Oct 2015 07:28:00 GMTレスポンスのタイムスタンプConnection現在のトランザクション後にネットワーク接続を維持するかどうかを制御する
構文
Connection: keep-alive | close使用例
Connection: keep-alive後続リクエストのために接続を維持Connection: closeレスポンス後に接続を閉じるAcceptクライアントが処理できるデータ形式をサーバーに通知する
構文
Accept: <MIME_type>/<MIME_subtype>[;q=<weight>], ...使用例
Accept: application/jsonJSONレスポンスのみ受け入れるAccept: text/html, application/xhtml+xml, */*;q=0.8HTMLを優先し、何でも受け入れるAccept: image/webp, image/png, */*WebP画像を優先し、次にPNGAuthorizationクライアントがサーバーに認証するための資格情報を含む
構文
Authorization: <auth-scheme> <credentials>使用例
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...JWT Bearerトークン認証Authorization: Basic dXNlcjpwYXNzd29yZA==HTTP Basic認証(Base64エンコード)Authorization: ApiKey my-api-key-hereカスタムAPIキー認証CookieSet-Cookieでサーバーが送信したHTTPクッキーを含む
構文
Cookie: <cookie-list>使用例
Cookie: session_id=abc123単一のセッションクッキーCookie: theme=dark; lang=ja; session=xyz複数のクッキーを1つのヘッダーで送信User-AgentブラウザとOSを識別する文字列
構文
User-Agent: <product>/<version> (<system-info>) <extensions>使用例
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36Windows 10のChromeUser-Agent: curl/7.68.0curl HTTPクライアントReferer現在のリクエストが行われた前のページのURLを含む
構文
Referer: <url>使用例
Referer: https://example.com/page1このページから遷移してきたReferer: https://www.google.com/search?q=example検索エンジンから来訪Hostリクエストの送信先サーバーのホスト名とポート番号を指定する
構文
Host: <host>[:<port>]使用例
Host: example.com標準ホスト名(ポート80/443は省略)Host: api.example.com:8080非標準ポートを含むホスト名Set-Cookieサーバーからクライアントへクッキーを送信して保存させる
構文
Set-Cookie: <cookie-name>=<cookie-value>[; <attributes>]使用例
Set-Cookie: session=abc123; HttpOnly; Secure; SameSite=StrictセキュアなセッションクッキーSet-Cookie: theme=dark; Max-Age=31536000; Path=/1年間有効な設定クッキーSet-Cookie: token=xyz; Domain=.example.com; Secureドメイン全体に有効なセキュアクッキーLocationリダイレクト時にクライアントを誘導するURLを示す
構文
Location: <url>使用例
Location: https://example.com/new-page絶対URLへのリダイレクト(301/302)Location: /dashboardログイン後の相対パスリダイレクトServerリクエストを処理したオリジンサーバーのソフトウェアを説明する
構文
Server: <product>使用例
Server: nginx/1.18.0nginxウェブサーバーのバージョンServer: Apache/2.4.41 (Ubuntu)Ubuntu上のApacheウェブサーバーWWW-Authenticateリソースへのアクセスに使用する認証方法を定義する
構文
WWW-Authenticate: <type> realm=<realm>[, <params>]使用例
WWW-Authenticate: Basic realm="My Site"HTTP Basic認証のプロンプトWWW-Authenticate: Bearer realm="api", error="invalid_token"エラー付きBearerトークン認証Cache-Controlリクエストとレスポンス両方のキャッシュメカニズムに対するディレクティブ
構文
Cache-Control: <directive>[, <directive>]...使用例
Cache-Control: no-cache, no-store, must-revalidateキャッシュを完全に無効化Cache-Control: public, max-age=315360001年間パブリックキャッシュ(静的アセット向け)Cache-Control: private, max-age=60010分間プライベートキャッシュETagリソースの特定バージョンを示す識別子。キャッシュ検証に使用される
構文
ETag: [W/]"<etag_value>"使用例
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"強いETag(完全一致が必要)ETag: W/"0815"弱いETag(意味的に同等)If-None-Match指定されたETagにリソースが一致しない場合にのみリクエストを実行する条件付きリクエスト
構文
If-None-Match: [W/]"<etag_value>"[, [W/]"<etag_value>"]*使用例
If-None-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"ETagが一致すれば304を返す(キャッシュヒット)If-None-Match: *既存リソースが存在しない場合のみ成功Expiresレスポンスが陳腐化する日時を指定する
構文
Expires: <http-date>使用例
Expires: Wed, 21 Oct 2025 07:28:00 GMTこの日時にキャッシュが期限切れExpires: 0すでに期限切れ(キャッシュなし)Last-Modifiedサーバー上でリソースが最後に変更された日時
構文
Last-Modified: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT使用例
Last-Modified: Wed, 21 Oct 2015 07:28:00 GMTファイルが最後に変更された日時Content-Security-Policyページで読み込めるリソースをブラウザが制御するためのポリシーを指定する
構文
Content-Security-Policy: <policy-directive>; ...使用例
Content-Security-Policy: default-src 'self'同一オリジンのリソースのみ許可Content-Security-Policy: default-src 'self'; script-src 'self' cdn.example.com自身とCDNからのスクリプトを許可Content-Security-Policy: default-src 'none'; img-src 'self' data:; style-src 'self'自身の画像とスタイルのみを許可する厳格なポリシーX-Frame-Optionsブラウザがページをフレーム内に表示することを許可するかどうかを示す
構文
X-Frame-Options: DENY | SAMEORIGIN使用例
X-Frame-Options: DENYフレーム内表示を完全に禁止(クリックジャッキング対策)X-Frame-Options: SAMEORIGIN同一オリジンからのフレーム内表示のみ許可Strict-Transport-Securityブラウザに指定期間HTTPSでの接続を強制する
構文
Strict-Transport-Security: max-age=<expire-time>[; includeSubDomains][; preload]使用例
Strict-Transport-Security: max-age=315360001年間HTTPSを強制Strict-Transport-Security: max-age=63072000; includeSubDomains; preload2年間、サブドメイン含む、HSTSプリロード対象X-Content-Type-Options宣言されたContent-Typeを尊重させてMIMEタイプスニッフィングを防ぐ
構文
X-Content-Type-Options: nosniff使用例
X-Content-Type-Options: nosniffMIMEタイプスニッフィングを無効化X-XSS-Protection旧式ブラウザでXSSフィルタリングを有効にする(現在はCSPに置き換えられつつある)
構文
X-XSS-Protection: 0 | 1[; mode=block | report=<reporting-uri>]使用例
X-XSS-Protection: 1; mode=blockXSSフィルターを有効にし、攻撃検出時はページをブロックX-XSS-Protection: 0XSSフィルターを無効化(厳格なCSPと併用)Permissions-Policyドキュメントで使用できるブラウザ機能とAPIを制御する
構文
Permissions-Policy: <feature>=(<allowlist>)[, ...]使用例
Permissions-Policy: camera=(), microphone=(), geolocation=()カメラ・マイク・位置情報を無効化Permissions-Policy: geolocation=(self "https://trusted.example.com")自身と信頼されたオリジンからの位置情報を許可Access-Control-Allow-Originクロスオリジンリクエストでリソースへのアクセスを許可するオリジンを示す
構文
Access-Control-Allow-Origin: * | <origin>使用例
Access-Control-Allow-Origin: *すべてのオリジンを許可(パブリックAPI)Access-Control-Allow-Origin: https://example.com特定のオリジンのみ許可Access-Control-Allow-MethodsCORSプリフライトレスポンスでリソースへのアクセスに許可するHTTPメソッドを指定する
構文
Access-Control-Allow-Methods: <method>[, <method>]*使用例
Access-Control-Allow-Methods: GET, POST, OPTIONSGET、POST、プリフライトOPTIONSを許可Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS一般的なRESTメソッドをすべて許可Access-Control-Allow-Headers実際のCORSリクエストで使用できるHTTPヘッダーを示す
構文
Access-Control-Allow-Headers: <header-name>[, <header-name>]*使用例
Access-Control-Allow-Headers: Content-Type, AuthorizationContent-TypeとAuthorizationヘッダーを許可Access-Control-Allow-Headers: *すべてのリクエストヘッダーを許可Access-Control-Max-Ageプリフライトリクエストの結果をキャッシュできる時間を示す
構文
Access-Control-Max-Age: <delta-seconds>使用例
Access-Control-Max-Age: 86400プリフライトレスポンスを1日キャッシュAccess-Control-Max-Age: 3600プリフライトレスポンスを1時間キャッシュHTTPヘッダーリファレンスとは
HTTPヘッダーリファレンスは、よく使うHTTPリクエスト・レスポンスヘッダーを網羅したチートシートです。汎用・リクエスト・レスポンス・キャッシュ・セキュリティ・CORSの6カテゴリに整理され、各ヘッダーの説明・構文フォーマット・実際の使用例を確認できます。
主な機能
- 6カテゴリにまたがる29の主要HTTPヘッダーを収録
- 各ヘッダーの構文フォーマットと使用例
- カテゴリ別フィルタリング(リクエスト、レスポンス、キャッシュ、セキュリティ、CORS)
- ヘッダー名や説明文のリアルタイム検索
- ヘッダー名のワンクリックコピー
こんな場面で役立ちます
- HTTPヘッダーの正しい構文を確認したいとき
- セキュリティヘッダー(CSP、HSTS、X-Frame-Options)の実装時
- クロスオリジンAPIアクセスのためのCORSヘッダー設定時
- パフォーマンス最適化のためのキャッシュヘッダー設定時
- バックエンド・フロントエンド開発中のクイックリファレンス
よくある質問
Cache-ControlとExpiresの違いは何ですか?
Cache-Controlはモダンな標準仕様で、両方が存在する場合に優先されます。max-age、no-cache、no-storeなどのディレクティブで細かい制御が可能です。Expiresは絶対日時を指定するレガシーヘッダーですが、HTTP/1.0との互換性のために今でも使われることがあります。
ETagとLast-Modifiedの違いは何ですか?
ETagはコンテンツに基づく不透明な識別子で、Last-Modifiedはタイムスタンプです。ETagの方が信頼性が高く、同じコンテンツのファイルが異なる時刻に再生成された場合でも変化します。Last-Modifiedは1秒の精度しかなく、高頻度な更新を見逃す可能性があります。
なぜサイトにセキュリティヘッダーを追加すべきなのですか?
Content-Security-Policy、X-Frame-Options、Strict-Transport-Securityなどのセキュリティヘッダーは、XSS、クリックジャッキング、プロトコルダウングレード攻撃などの一般的な攻撃から保護します。多層防御セキュリティの重要な一部であり、サーバーやCDNレベルで簡単に追加できます。
CORSのプリフライトリクエストとシンプルリクエストの違いは何ですか?
シンプルリクエスト(標準ヘッダーを使ったGET/POST)は直接送信されます。プリフライトリクエスト(OPTIONS)は、複雑なリクエスト(PUT/DELETE、カスタムヘッダー、特定のContent-Type値を使用するもの)に対してブラウザが自動的に送信し、実際のリクエストを送る前にサーバーがクロスオリジンアクセスを許可しているか確認します。
X-XSS-Protectionは使うべきですか?
X-XSS-Protectionは旧式ブラウザ向けのレガシーヘッダーです。モダンなブラウザはXSS監査機能を非推奨にしています。代わりに厳格なContent-Security-Policyヘッダーを実装してください。強固なCSPを使用する場合は、X-XSS-Protection: 0を設定することが一般的に推奨されています。
