リクエスト
クライアントが受け入れ可能なコンテンツタイプを指定する。サーバーはこの情報に基づいてレスポンス形式を選択する。
syntaxAccept: <MIME_type>/<MIME_subtype>, <MIME_type>/*;q=<quality>
exampleAccept: text/html, application/json;q=0.9, */*;q=0.8
content negotiation
リクエスト
クライアントが対応している圧縮アルゴリズムを指定する。サーバーはレスポンスボディを圧縮して転送量を削減できる。
syntaxAccept-Encoding: gzip, deflate, br
exampleAccept-Encoding: gzip, deflate, br
compression
リクエスト
優先する自然言語を指定する。サーバーはこれをもとにローカライズされたコンテンツを返すことができる。
syntaxAccept-Language: <language>;q=<quality>
exampleAccept-Language: ja, en-US;q=0.9, en;q=0.8
i18ncontent negotiation
リクエスト
クライアントが受け入れ可能な文字セットを指定する。現在は UTF-8 が事実上の標準となり、省略されることが多い。
syntaxAccept-Charset: <charset>;q=<quality>
exampleAccept-Charset: utf-8, iso-8859-1;q=0.5
content negotiation
リクエスト
サーバーにクライアントの認証情報を送信する。Bearer トークンや Basic 認証など複数のスキームに対応する。
syntaxAuthorization: <scheme> <credentials>
exampleAuthorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
authsecurity
リクエスト
サーバーが以前に Set-Cookie ヘッダーで設定したクッキーを送信する。セッション管理や状態保持に使われる。
syntaxCookie: <name>=<value>; <name2>=<value2>
exampleCookie: sessionId=abc123; theme=dark
statesession
リクエスト
リクエスト先のサーバーのホスト名とポートを指定する。HTTP/1.1 では必須。仮想ホスティングに不可欠。
syntaxHost: <host>:<port>
exampleHost: example.com:443
routing
リクエスト
指定した日時以降にリソースが変更されている場合のみレスポンスを返すよう要求する。キャッシュの検証に使用する。
syntaxIf-Modified-Since: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
exampleIf-Modified-Since: Fri, 01 Jan 2025 00:00:00 GMT
cacheconditional
リクエスト
指定した ETag と一致しない場合のみレスポンスを返すよう要求する。ETag ベースのキャッシュ検証に使用する。
syntaxIf-None-Match: "<etag_value>"
exampleIf-None-Match: "686897696a7c876b7e"
cacheconditional
リクエスト
クロスオリジンリクエストの送信元オリジンを示す。CORS の判定で使われる。Referer と異なりパスを含まない。
syntaxOrigin: <scheme>://<host>:<port>
exampleOrigin: https://example.com
CORSsecurity
リクエスト
現在のリクエストが行われたページの URL を示す。アナリティクスやリンク元追跡に使われる。
syntaxReferer: <url>
exampleReferer: https://example.com/page.html
analytics
リクエスト
リクエストを送信しているソフトウェア(ブラウザ・OSなど)の情報を示す。コンテンツの出し分けやログ分析に利用される。
syntaxUser-Agent: <product>/<version> <comment>
exampleUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
browser
リクエスト
非標準ヘッダー。Ajax リクエストを識別するためにブラウザや JavaScript フレームワークが送信することがある。
syntaxX-Requested-With: XMLHttpRequest
exampleX-Requested-With: XMLHttpRequest
ajax
両方
リクエスト・レスポンス両方でキャッシュの動作を指定する。max-age, no-cache, no-store などのディレクティブで制御する。
syntaxCache-Control: <directive>[, <directive>...]
exampleCache-Control: max-age=3600, must-revalidate
cache
両方
リソースのメディアタイプを指定する。リクエスト時はボディの形式を、レスポンス時はコンテンツの形式をサーバーに伝える。
syntaxContent-Type: <MIME_type>/<MIME_subtype>; charset=<charset>
exampleContent-Type: application/json; charset=utf-8
content negotiation
両方
メッセージボディのバイト数を示す。サーバーがボディの終端を判断するために使用する。
syntaxContent-Length: <length>
exampleContent-Length: 348
body
両方
ボディに適用されている圧縮エンコーディングを示す。クライアントはこれを見てデコード方法を決める。
syntaxContent-Encoding: gzip | deflate | br | identity
exampleContent-Encoding: gzip
compression
両方
コンテンツの対象言語を示す。複数の言語を指定することも可能。
syntaxContent-Language: <language-tag>
exampleContent-Language: ja, en
i18n
両方
現在のトランザクション完了後にネットワーク接続を維持するかを制御する。HTTP/1.1 ではデフォルト keep-alive。
syntaxConnection: keep-alive | close
exampleConnection: keep-alive
networking
両方
ボディをユーザーに転送する際に使用するエンコード形式を指定する。chunked 転送を使うと Content-Length が不要になる。
syntaxTransfer-Encoding: chunked | gzip | deflate | identity
exampleTransfer-Encoding: chunked
bodynetworking
両方
HTTP/1.0 のキャッシュ制御ヘッダー。後方互換性のために使用。Pragma: no-cache は Cache-Control: no-cache に相当する。
syntaxPragma: no-cache
examplePragma: no-cache
cachelegacy
レスポンス
CORS でリソースへのアクセスを許可するオリジンを指定する。* で全オリジン許可、特定ドメインで制限できる。
syntaxAccess-Control-Allow-Origin: * | <origin>
exampleAccess-Control-Allow-Origin: https://example.com
CORSsecurity
レスポンス
CORS のプリフライトレスポンスで、許可する HTTP メソッドを指定する。
syntaxAccess-Control-Allow-Methods: <method>, <method>
exampleAccess-Control-Allow-Methods: GET, POST, PUT, DELETE
CORS
レスポンス
プリフライトリクエストへの応答で、実際のリクエスト時に使用できるヘッダーを指定する。
syntaxAccess-Control-Allow-Headers: <header-name>, <header-name>
exampleAccess-Control-Allow-Headers: Content-Type, Authorization
CORS
レスポンス
プリフライトリクエストの結果をキャッシュできる秒数を指定する。ブラウザが同じプリフライトを繰り返さない時間。
syntaxAccess-Control-Max-Age: <delta-seconds>
exampleAccess-Control-Max-Age: 86400
CORScache
レスポンス
オブジェクトがプロキシキャッシュに保存されてからの秒数を示す。
syntaxAge: <delta-seconds>
exampleAge: 120
cache
レスポンス
リソースに対してサポートされている HTTP メソッドの一覧を示す。405 Method Not Allowed レスポンスに含める。
syntaxAllow: <http-methods>
exampleAllow: GET, HEAD, POST
methods
レスポンス
コンテンツをインライン表示するか、ダウンロードするかを指示する。ファイルのダウンロード処理に使用する。
syntaxContent-Disposition: inline | attachment; filename="<filename>"
exampleContent-Disposition: attachment; filename="report.pdf"
download
レスポンス
Range リクエストへの応答で、送信されたデータのボディ内での位置を示す。ファイルの部分ダウンロードに使用する。
syntaxContent-Range: <unit> <range-start>-<range-end>/<size>
exampleContent-Range: bytes 200-1000/67589
range
レスポンス
リソースの特定バージョンを識別するための識別子。クライアントはこれをキャッシュ検証に使う。
syntaxETag: "<etag_value>" | W/"<etag_value>"
exampleETag: "33a64df5"
cacheconditional
レスポンス
レスポンスが陳腐化する日時を示す。Cache-Control に max-age がある場合は無視される。
syntaxExpires: <http-date>
exampleExpires: Wed, 01 Jan 2026 00:00:00 GMT
cache
レスポンス
リソースが最後に変更された日時を示す。If-Modified-Since ヘッダーによる条件付きリクエストに使われる。
syntaxLast-Modified: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
exampleLast-Modified: Mon, 01 Jul 2024 10:00:00 GMT
cacheconditional
レスポンス
リダイレクト先の URL を示す。3xx リダイレクトや 201 Created レスポンスで使用される。
syntaxLocation: <url>
exampleLocation: https://example.com/new-page
redirect
レスポンス
サービスが使用不可な場合(503)やレート制限時(429)に、次のリクエストまでの待機時間を示す。
syntaxRetry-After: <delay-seconds> | <http-date>
exampleRetry-After: 120
rate-limit
レスポンス
リクエストを処理したサーバーソフトウェアの情報を示す。セキュリティ上の理由で詳細を隠すことが推奨される。
syntaxServer: <product>
exampleServer: nginx/1.24.0
server-info
レスポンス
クライアントにクッキーを設定する。Secure・HttpOnly・SameSite などの属性でセキュリティを強化できる。
syntaxSet-Cookie: <name>=<value>; [attributes]
exampleSet-Cookie: sessionId=abc123; HttpOnly; Secure; SameSite=Strict
cookiesessionsecurity
レスポンス
キャッシュがどのリクエストヘッダーに基づいてレスポンスを変えるかを示す。CDN やプロキシキャッシュに重要。
syntaxVary: <header-name>, <header-name>
exampleVary: Accept-Encoding, Accept-Language
cache
レスポンス
401 Unauthorized レスポンスで、リソースへのアクセスに必要な認証方式を示す。
syntaxWWW-Authenticate: <scheme> realm="<realm>"
exampleWWW-Authenticate: Bearer realm="api", charset="UTF-8"
auth
レスポンス
ブラウザが読み込み可能なリソースのソースを制限する。XSS やデータインジェクション攻撃を防ぐ重要なセキュリティヘッダー。
syntaxContent-Security-Policy: <policy-directive>; <policy-directive>
exampleContent-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com
securityXSS
レスポンス
ブラウザに HTTPS のみでサーバーに接続するよう指示する(HSTS)。max-age で有効期間を指定する。
syntaxStrict-Transport-Security: max-age=<seconds>; includeSubDomains; preload
exampleStrict-Transport-Security: max-age=31536000; includeSubDomains; preload
securityHTTPSHSTS
レスポンス
ブラウザの MIME タイプスニッフィングを防止する。nosniff を指定することで宣言された Content-Type のみを使用させる。
syntaxX-Content-Type-Options: nosniff
exampleX-Content-Type-Options: nosniff
security
レスポンス
ページを iframe 内に表示することを制御する。クリックジャッキング攻撃を防ぐために使用する。
syntaxX-Frame-Options: DENY | SAMEORIGIN
exampleX-Frame-Options: SAMEORIGIN
securityclickjacking
レスポンス
古いブラウザの XSS フィルターを有効化する。CSP が普及した現在は非推奨とされているが、古いブラウザ向けに設定されることがある。
syntaxX-XSS-Protection: 0 | 1 | 1; mode=block
exampleX-XSS-Protection: 1; mode=block
securityXSSlegacy
レスポンス
Referer ヘッダーに含める情報量を制御する。プライバシー保護とデバッグ情報のバランスを取る。
syntaxReferrer-Policy: no-referrer | same-origin | strict-origin-when-cross-origin | ...
exampleReferrer-Policy: strict-origin-when-cross-origin
securityprivacy
レスポンス
ブラウザの機能や API(カメラ・マイク・位置情報など)をページや iframe で使用できるかを制御する。
syntaxPermissions-Policy: <feature>=(<allowlist>)
examplePermissions-Policy: camera=(), microphone=(), geolocation=(self)
securityprivacy