HTTP ヘッダー
標準的なリクエスト / レスポンスヘッダーを機能別に整理しています。各ヘッダーを開くと構文・ディレクティブ・実例を確認できます。
認証
WWW-AuthenticateWWW-Authenticate でクライアントに資格情報を要求します。401 レスポンスで Basic・Bearer・Digest などの認証方式を設定します。
AuthorizationAuthorization ヘッダーで資格情報を送ります。Basic・Bearer・Digest の各方式、構文、そしてセキュリティ上の指針を扱います。
Proxy-AuthenticateProxy-Authenticate が 407 レスポンスでプロキシ用の資格情報を要求する仕組みを理解します。認証方式、構文、そしてプロキシ連鎖の例を扱います。
Proxy-Authorization407 のチャレンジを受けた後、Proxy-Authorization ヘッダーでプロキシサーバーに資格情報を送ります。認証方式、構文、そして連鎖時の挙動を扱います。
キャッシュ
AgeAge ヘッダーでキャッシュの鮮度を測ります。CDN やプロキシがオリジンのレスポンスからの経過時間をどう報告するかを扱います。
Cache-ControlCache-Control のディレクティブでブラウザーと CDN のキャッシュを制御します。構文、実例、そしてベストプラクティスを扱います。
ExpiresExpires ヘッダーとタイムスタンプに基づくキャッシュ鮮度を理解します。Cache-Control との関係と、どちらを使うべき場面を学びます。
Clear-Site-DataClear-Site-Data でブラウザーのキャッシュ・Cookie・ストレージを消去します。ログアウトの流れ、ディレクティブ、そして導入パターンを扱います。
条件付きリクエスト
Last-ModifiedLast-Modified ヘッダーと日時に基づくキャッシュ検証を理解します。条件付きリクエストの流れで、サーバーが更新時刻をどう伝えるかを学びます。
ETagETag 識別子がキャッシュの再検証と同時実行制御を可能にする仕組みを学びます。強い ETag と弱い ETag、構文、そして条件付きリクエストのパターンを扱います。
If-MatchIf-Match ヘッダーと ETag に基づく条件付きリクエストを理解します。PUT や DELETE で楽観的同時実行制御を使い、更新の取りこぼしを防ぎます。
If-None-MatchIf-None-Match が ETag を使ってキャッシュ済みリソースを検証する仕組みを学びます。条件付きリクエストでキャッシュを再検証し、上書きを防ぎます。
If-Modified-SinceIf-Modified-Since が GET や HEAD で日時に基づくキャッシュ再検証を可能にする仕組みを学びます。条件付きレスポンスと 304 で帯域を節約します。
If-Unmodified-SinceIf-Unmodified-Since と、日時に基づく前提条件が更新の取りこぼしを防ぐ仕組みを理解します。PUT や DELETE を同時更新から守ります。
VaryVary ヘッダーでキャッシュのバリアントを制御します。どのリクエストヘッダーがレスポンスに影響するかをキャッシュに伝え、正しい表現を保存・配信させます。
コンテントネゴシエーション
AcceptAccept ヘッダーでレスポンスのメディアタイプを交渉します。品質値、ワイルドカード、コンテントネゴシエーションの流れ、そして実例を扱います。
Accept-EncodingAccept-Encoding で圧縮方式を交渉します。対応アルゴリズム、品質値、構文、そしてサーバー側の実装を扱います。
Accept-LanguageAccept-Language でコンテンツの言語を交渉します。BCP 47 のタグ、品質値、サーバー側の処理、そして実例を扱います。
Accept-CharsetAccept-Charset が非推奨となった理由と、文字セット交渉が UTF-8 に取って代わられた経緯を理解します。歴史、構文、そして移行の指針を扱います。
コンテンツ情報
Content-TypeContent-Type でメディアタイプを宣言します。MIME タイプ、charset パラメーター、コンテントネゴシエーション、そして MIME スニッフィングのリスクを扱います。
Content-LengthContent-Length でメッセージボディのサイズを宣言します。バイト数の数え方、コネクションの再利用、進捗表示、そして落とし穴を扱います。
Content-EncodingContent-Encoding でレスポンスの圧縮方式を示します。gzip・br・zstd の各アルゴリズム、サーバー設定、そして復号を扱います。
Content-LanguageContent-Language で想定読者の言語を宣言します。言語タグ、コンテントネゴシエーション、そして多言語構成を扱います。
Content-LocationContent-Location で交渉後の表現の場所を示します。Location との違い、キャッシュへの影響、そして実例を扱います。
Content-DispositionContent-Disposition でファイルのダウンロードやインライン表示を指示します。attachment、ファイル名のエンコード、そしてフォームデータでの使い方を扱います。
Content-RangeContent-Range で部分的なコンテンツを配信します。バイト範囲の構文、レジューム可能なダウンロード、メディア配信、そして 206 レスポンスの流れを扱います。
Cookie
CORS
Access-Control-Allow-OriginAccess-Control-Allow-Origin でクロスオリジンのアクセスを制御します。ワイルドカード、動的なオリジン、CORS エラー、そしてその対処を扱います。
Access-Control-Allow-MethodsAccess-Control-Allow-Methods で CORS プリフライト時に許可する HTTP メソッドを指定します。構文、ワイルドカードの規則、そしてサーバー設定を扱います。
Access-Control-Allow-HeadersAccess-Control-Allow-Headers で CORS リクエストのカスタムヘッダーを許可します。プリフライトの設定、ワイルドカード、そして実例を扱います。
Access-Control-Allow-CredentialsAccess-Control-Allow-Credentials で CORS リクエストに Cookie や資格情報を載せます。設定、落とし穴、そしてその対処を扱います。
OriginOrigin リクエストヘッダーが CORS において「どこから来たリクエストか」を示す仕組みを理解します。構文、ブラウザーの挙動、そしてサーバー側の検証を扱います。
範囲リクエスト
リダイレクト
リクエストのコンテキスト
HostHTTP/1.1 のリクエストで必須となる Host ヘッダーを理解します。バーチャルホスティングの仕組み、構文規則、そしてサーバーが対象ドメインをどう解決するかを学びます。
User-AgentUser-Agent でクライアントのソフトウェアを識別します。プロダクトトークンの解析、UA 削減(UA reduction)の理解、そしてボット検出の方針を扱います。
RefererReferer ヘッダーがリンク元ページを示す仕組みを理解します。アクセス解析、アクセス制御、プライバシー上のリスク、そして Referrer-Policy との関係を扱います。
Referrer-PolicyReferrer-Policy を導入し、ブラウザーが送るリファラー情報を制御します。ディレクティブの選択肢、プライバシーへの影響、そして導入例を扱います。
レスポンスのコンテキスト
セキュリティ
Strict-Transport-SecurityStrict-Transport-Security で HTTPS 接続を強制します。HSTS の max-age、includeSubDomains、preload を設定し、ダウングレード攻撃を防ぎます。
Content-Security-PolicyContent-Security-Policy で XSS やインジェクション攻撃を防ぎます。ディレクティブ、ソースリスト、nonce、そして導入方法を扱います。
X-Content-Type-OptionsX-Content-Type-Options: nosniff で MIME スニッフィング攻撃を防ぎます。すべてのレスポンスで、宣言された Content-Type をブラウザーに尊重させます。
X-Frame-OptionsX-Frame-Options でクリックジャッキングを防ぎます。DENY や SAMEORIGIN でフレーム埋め込みを制御し、CSP の frame-ancestors という代替も扱います。
Permissions-PolicyPermissions-Policy を導入し、サイト本体と埋め込み iframe が使えるブラウザー機能を制御します。ディレクティブ、許可リスト、そして実例を扱います。
転送コーディング
Transfer-EncodingTransfer-Encoding でメッセージボディを安全に転送できる形に符号化します。チャンク転送、ホップ単位(hop-by-hop)の意味論、そしてストリーミングレスポンスを扱います。
TETE ヘッダーで転送符号化の希望を伝えます。チャンクのトレーラーや圧縮をクライアントとサーバーの間で交渉します。
ConnectionConnection ヘッダーで TCP コネクションのライフサイクルを管理します。keep-alive、close、ホップ単位の挙動、そして HTTP/2 での変更点を扱います。
UpgradeUpgrade ヘッダーで既存のコネクション上のプロトコルを切り替えます。HTTP/1.1 の上で WebSocket、HTTP/2、TLS へのアップグレードを交渉します。