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
でヘッダーのやり取りを確認すると理解が深まります。