📬 HTTPヘッダーの詳細
HTTPヘッダーの詳細
HTTPヘッダーは、リクエストやレスポンスに付けられる追加情報です。
たとえば、どんな言語が好まれるか、どんなブラウザか、どれくらいのサイズのデータを扱うか、などの情報をやり取りします。
📤 リクエストヘッダー(クライアント→サーバ)
主なリクエストヘッダー一覧
| ヘッダー名 | 説明 |
|---|---|
Host |
接続先のホスト名(例: example.com) |
User-Agent |
ブラウザやアプリの情報(例: Chrome, curl) |
Accept |
受け入れ可能なMIMEタイプ(例: text/html) |
Accept-Language |
言語の優先順位(例: ja,en-US;q=0.8) |
Accept-Encoding |
圧縮形式の指定(例: gzip, deflate) |
Connection |
接続の維持を要求(例: keep-alive) |
Content-Type |
送信データの形式(例: application/json) |
Content-Length |
ボディのバイト数 |
Authorization |
認証情報(例: Bearer トークン) |
Cookie |
クライアントが持っているクッキー情報 |
📥 レスポンスヘッダー(サーバ→クライアント)
主なレスポンスヘッダー一覧
| ヘッダー名 | 説明 |
|---|---|
Content-Type |
返すデータの形式(例: text/html, application/json) |
Content-Length |
本文のバイト数 |
Set-Cookie |
クッキーを設定(例: セッションID) |
Location |
リダイレクト先URL(例: 302 Found時) |
Cache-Control |
キャッシュ制御(例: no-cache, max-age=3600) |
ETag |
コンテンツのバージョン情報(後述) |
Last-Modified |
最終更新日時(例: Wed, 17 May 2023 10:00:00 GMT) |
Access-Control-Allow-Origin |
CORS対策で外部ドメインを許可する場合に使用 |
ETagやLast-Modifiedを使うことで、「変わっていなければキャッシュを使ってOK(304 Not Modified)」という効率的な通信が可能になります。
🗃️ 分類で理解するHTTPヘッダー
🔑 認証・状態管理
📦 コンテンツ情報
-
Content-Type,Content-Length,Content-Encoding,Content-Disposition
🧭 ネゴシエーション(クライアントが好みを伝える)
-
Accept,Accept-Encoding,Accept-Language,User-Agent
📆 キャッシュ管理
-
Cache-Control,ETag,If-None-Match,Last-Modified,If-Modified-Since
🔁 接続制御
-
Connection,Keep-Alive,Transfer-Encoding
🌐 CORS(クロスオリジン対策)
-
Access-Control-Allow-Origin,Access-Control-Allow-Methods,Access-Control-Allow-Headers
CORSヘッダーを誤って設定すると、意図しない第三者にAPIを使われることがあります。セキュリティに注意!
📌 よく使われる組み合わせの例
JSON形式のAPIにPOSTする例(リクエスト)
POST /api/items HTTP/1.1
Host: example.com
Content-Type: application/json
Authorization: Bearer abc123
Content-Length: 37
{"name": "みかん", "price": 120}
それに対するレスポンス(サーバ)
HTTP/1.1 201 Created
Content-Type: application/json
Cache-Control: no-store
Set-Cookie: session_id=xyz789; HttpOnly
{"id": 42, "name": "みかん", "price": 120}
🧭 おまけ:ブラウザで確認する方法
-
Chrome:F12 → [Network] → 任意の通信を選択 → [Headers]
-
curl:
curl -I https://example.comでレスポンスヘッダーを確認
開発中はcurlやPostmanでヘッダーのやり取りを確認すると理解が深まります。