Accept ヘッダー
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
HTTP の Accept リクエストおよびレスポンスヘッダーは、送信者が理解できるコンテンツ型(MIME タイプで表現)を示します。リクエストでは、サーバーはコンテンツネゴシエーションを使用して提案の中から 1 つを選択し、 Content-Type レスポンスヘッダーでその選択をクライアントに通知します。
レスポンスでは、リクエストされたリソースへのメッセージにおいて、サーバーが理解できるコンテンツ型に関する情報を指定します。これにより、そのコンテンツ型をリソースへの後続のリクエストで使用することができます。
ブラウザーは、リクエストのコンテキストに基づいてこのヘッダーに要求される値を設定します。 例えば、CSS スタイルシート、画像、動画、またはスクリプトを取得する際、ブラウザーはリクエスト内で異なる値を使用します。
| ヘッダー種別 | リクエストヘッダー, レスポンスヘッダー |
|---|---|
| 禁止リクエストヘッダー | いいえ |
| CORS セーフリストリクエストヘッダー | はい* |
* 値には CORS-unsafe request header bytes を入れることはできません。これには "():<>?@[\]{},、削除 0x7F、制御文字 0x00 ~ 0x19 を含みますが、タブ 0x09 は除きます。
構文
Accept: <media-type>/<MIME_subtype>
Accept: <media-type>/*
Accept: */*
// 品質値構文で重みをつけた複数の型
Accept: text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, */*;q=0.8
ディレクティブ
<media-type>/<subtype>-
単一の詳細な MIME タイプ、例えば
text/htmlです。 <media-type>/*-
MIME タイプですが、サブタイプがありません。 例えば
image/*はimage/png,image/svg,image/gif及びその他の画像型に一致します。 */*-
すべての MIME タイプ。
;q=(Q 値の重み)-
重みと呼ばれる、相対的な品質値を使用して表現される優先順位の順序で配置された値です。
例
>デフォルトの Accept リクエストヘッダーの使用
コマンドラインツール、例えば curl や wget)で発行される HTTP リクエストでは、Accept ヘッダーのデフォルト値として */* が使用されます。
GET / HTTP/1.1
Host: example.com
User-Agent: curl/8.7.1
Accept: */*
ブラウザーのナビゲーションでは通常、以下の Accept リクエストヘッダー値が設定されます。
GET /ja/ HTTP/2
Host: developer.mozilla.org
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
…
文書を送信すると、developer.mozilla.org の画像リクエストにおけるデフォルトの Accept 値は同様に次のようになります。
Accept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5
JSON レスポンスに対する Accept リクエストヘッダーの設定
API を扱うシステムでは、application/json 形式のレスポンスが一般的に要求されます。
以下は、クライアントが特定の JSON レスポンスをリクエストする GET リクエストの例です。
GET /users/123 HTTP/1.1
Host: example.com
Authorization: Bearer abcd123
Accept: application/json
仕様書
| Specification |
|---|
| HTTP Semantics> # field.accept> |
ブラウザーの互換性
関連情報
- HTTP コンテンツネゴシエーション
- デフォルトの Accept 値の一覧
- CORS セーフリストリクエストヘッダーの制約
- コンテンツネゴシエーションの結果を伴うヘッダー:
Content-Type - 他の同様のヘッダー:
TE,Accept-Encoding,Accept-Language