recursal/MDN huggingface dataset:
Accept-Language
===============

HTTP の **`Accept-Language`** リクエストヘッダーは、クライアントがどの言語を理解できるか、どの種類のロケールが推奨されるかを示します。 (言語というのは、英語のような自然言語を意味し、プログラミング言語ではありません。) コンテンツネゴシエーションを使用して、サーバーは提案されたものから一つを選択して使用し、 `Content-Language` レスポンスヘッダーを使用してクライアントに選択結果を知らせます。ブラウザーはユーザーインターフェイスの言語に従って、このヘッダーに適切な値を設定し、ユーザーはこれを変更することができますが、稀です (そしてフィンガープリントにつながるとして難色を示されます)。

このヘッダーはヒントであり、サーバーが言語を判別するための方法として、明示的なユーザーの選択によって制御する特定の URL など、他のものがない場合に使用されます。サーバーは明示的な決定を上書きしないことを推奨します。 `Accept-Language` の中身はユーザーが制御できないことが良くあります（旅行中で外国のインターネットカフェを使用している場合など）。ユーザーはユーザーインターフェースのロケール以外の言語によるページを訪問したがっているかもしれません。

サーバーが一致する言語を何も提供できない場合は、理論的には `406` (Not Acceptable) エラーコードを送り返すことができます。しかし、ユーザーの使い勝手をより良くするため、これはほとんど行われておらず、このような場合には一般に `Accept-Language` ヘッダーを無視するという方法が採られます。

|  |  |
| --- | --- |
| ヘッダー種別 | リクエストヘッダー |
| 禁止ヘッダー名 | いいえ |
| CORS セーフリストリクエストヘッダー | 
 はい。値が `0-9`, `A-Z`, `a-z`, space
 or `*,-.;=` のみであるという追加の制約あり。
  |

構文
--
```

Accept-Language: <language>
Accept-Language: *

// 重み値の構文によって重みづけされた複数の種別
Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5
```

ディレクティブ
-------

`<language>`

言語タグです (「ロケール識別子」とも呼ばれることがあります)。これは言語を表す 2 ～ 3 文字の基本言語タグと、任意で追加のサブタグを `'-'` で区切って続けます。追加情報の多くは言語や地域の変化形 (`'en-US'` または `'fr-CA'` など) または使用する文字の種類 (`'sr-Latn'` など) です。正書法の種類 (`'de-DE-1996'`) など他の変化形は、通常このヘッダーのコンテキストでは使用されません。

`*`

任意の言語です。 `'*'` はワイルドカードとして使用されます。

`;q=` (Q 値の重み)

*重み*と呼ばれる、相対的な品質値を使用して表現される優先順位の順序で配置された値です。

例
-
```

Accept-Language: de

Accept-Language: de-CH

Accept-Language: en-US,en;q=0.5
```

仕様書
---

| 仕様書 | 題名 |
| --- | --- |
| RFC 7231, セクション 5.3.5: Accept-Language | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context |
| BCP 47 | Tags for the Identification of Language |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* HTTP コンテンツネゴシエーション
* コンテンツネゴシエーションの結果を伴うヘッダー: `Content-Language`
* 他の同様のヘッダー: `TE` (en-US), `Accept-Encoding`, `Accept-Charset`, `Accept`
Server
======

**`Server`** ヘッダーは、リクエストを処理したオリジンサーバー、すなわち、レスポンスを生成したサーバーで使用されたソフトウェアを説明します。

**警告:** `Server` の値は、攻撃者が既知のセキュリティホールを悪用するのを (少し) 容易にする情報を暴露する可能性があるので、過度に詳細にすることは避けてください。


|  |  |
| --- | --- |
| ヘッダー種別 | レスポンスヘッダー |
| 禁止ヘッダー名 | いいえ |

構文
--
```

Server: <product>
```

ディレクティブ
-------

`<product>`

リクエストを処理したソフトウェアまたは製品の名前です。通常は `User-Agent` と似た形式です。

どのくらいの詳細を含めるかのバランスを取るのは興味深いことです。 OS のバージョンを公開することは、先ほどの過度に詳細な値についての警告で述べたように、おそらく悪い考えです。しかし、 Apache のバージョンを公開すると、あるバージョンが持つ `Content-Encoding` と `Range` を組み合わせたバグをブラウザーが回避するのに役立ちます。

例
-
```

Server: Apache/2.4.1 (Unix)
```

仕様書
---

| 仕様書 | 題名 |
| --- | --- |
| RFC 7231, セクション 7.4.2: Server | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Allow`
Keep-Alive
==========

**`Keep-Alive`** 一般ヘッダーは、送信者が接続の仕組みや、タイムアウト値と最大リクエスト数の設定に使用される可能性があることをヒントとすることができます。

**メモ:** このヘッダーが意味を持つためには、 `Connection` ヘッダーを "keep-alive" に設定する必要があります。

**警告:** `Connection` や `Keep-Alive` などの接続固有のヘッダーフィールドは HTTP/2 では禁止されています。 Chrome と Firefox は HTTP/2 レスポンスでこれらを無視しますが、 Safari は HTTP/2 仕様の要件に準拠しており、これらを含むレスポンスは読み込まれません。


|  |  |
| --- | --- |
| ヘッダー種別 | 一般ヘッダー |
| 禁止ヘッダー名 | はい |

構文
--
```

Keep-Alive: parameters
```

ディレクティブ
-------

`parameters`

カンマで区切られたパラメータのリスト。各パラメータは識別子と等号 (`'='`) で区切られた値で構成されます。以下の識別子が利用可能です。

* `timeout`: 待機状態の接続を開いたままにしておく必要のある最小時間 (秒単位) を示します。keep-alive TCP メッセージがトランスポートレベルで設定されていない場合、TCP タイムアウトよりも長いタイムアウトが無視されることに注意してください。
* `max`: 接続を閉じる前にこの接続で送信できるリクエストの最大数を示します。`0` 以外の場合、次のレスポンスで別のリクエストが送信されるため、パイプラインでない接続ではこの値は無視されます。HTTP パイプラインは、パイプラインを制限するために使用できます。

例
-

`Keep-Alive` ヘッダーを含むレスポンスです。
```

HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Thu, 11 Aug 2016 15:23:13 GMT
Keep-Alive: timeout=5, max=1000
Last-Modified: Mon, 25 Jul 2016 04:32:39 GMT
Server: Apache

(本文)
```

仕様書
---

| 仕様書 | 題名 |
| --- | --- |
| HTTP Keep-Alive Header | Keep-Alive Header (IETF Internet Draft) |
| RFC 7230, appendix A.1.2: Keep-Alive | Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Connection`
* HTTP/1.x のコネクション管理
Host
====

**`Host`** リクエストヘッダーは、リクエストが送信される先のサーバーのホスト名とポート番号を指定します。

ポート番号が指定されなかった場合は、要求されたサービスの既定のポート（例えば HTTPS の URL であれば`443`、 HTTP の URL であれば `80`）とみなされます。

`Host` ヘッダー項目はすべての HTTP/1.1 リクエストメッセージで送信する必要があります。 HTTP/1.1 リクエストメッセージに `Host` ヘッダー項目がなかったり、二つ以上あったりした場合は `400` (Bad Request) ステータスコードが返されることがあります。

|  |  |
| --- | --- |
| ヘッダー種別 | リクエストヘッダー |
| 禁止ヘッダー名 | はい |

構文
--
```

Host: <host>:<port>
```

ディレクティブ
-------

<host>

（仮想ホストの）サーバーのドメイン名。

<port> 省略可

サーバーが待受けしている TCP のポート番号。

例
-
```

Host: developer.mozilla.org
```

仕様書
---

| 仕様書 | 題名 |
| --- | --- |
| RFC 7230, セクション 5.4: Host | Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `400`
* `<base>`
Access-Control-Max-Age
======================

**`Access-Control-Max-Age`** レスポンスヘッダーは、プリフライトリクエストの結果 (つまり `Access-Control-Allow-Methods` および `Access-Control-Allow-Headers` ヘッダーに含まれる情報) をキャッシュすることができる時間の長さを示します。

|  |  |
| --- | --- |
| ヘッダー種別 | レスポンスヘッダー |
| 禁止ヘッダー名 | いいえ |

構文
--
```

Access-Control-Max-Age: <delta-seconds>
```

ディレクティブ
-------

<delta-seconds>

 結果をキャッシュすることができる最長の秒数です。
 Firefox は24 時間 (86400 秒) キャッシュすることができます。
 Chromium (v76 以前) は10 分 (600 秒) です。
 Chromium (v76 以降) は2 時間 (7200 秒) です。
 Chromium は既定値を 5 分に設定することもできます。
 **-1**の値はキャッシュを無効にし、すべての呼び出しをチェックするためにプリフライトの OPTIONS が必要になります。


例
-

プリフライト要求の結果は 10 分間キャッシュされます。
```

Access-Control-Max-Age: 600
```

仕様書
---

| Specification |
| --- |
| Fetch Standard # http-access-control-max-age |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Access-Control-Allow-Headers`
* `Access-Control-Allow-Methods`
Forwarded
=========

**`Forwarded`** ヘッダーは、リバースプロキシサーバーからの情報を含みます。リクエストの経路にプロキシーが介在している場合には、変更されたり失われたりします。

このヘッダーの代替で、事実上の標準となっているものは `X-Forwarded-For`, `X-Forwarded-Host`, `X-Forwarded-Proto` ヘッダーです。

このヘッダーは、デバッグ、統計、ロケーション依存コンテンツの生成に使用され、クライアントの IP アドレスなどの機密情報を公開します。したがって、このヘッダーを展開する際には、ユーザーのプライバシーを念頭に置く必要があります。

|  |  |
| --- | --- |
| ヘッダー種別 | リクエストヘッダー |
| 禁止ヘッダー名 | いいえ |

構文
--
```

Forwarded: by=<identifier>;for=<identifier>;host=<host>;proto=<http|https>
```

ディレクティブ
-------

<identifier>

プロキシーの使用時に変更または失われた情報を公開する識別子。これは次のいずれかです。

* IP アドレス (v4 または v6、任意でポート番号付き、 ipv6 は引用符と角括弧で囲まれます)
* 難読化された識別子 ("\_hidden" や "\_secret" など)
* または先行するエンティティが不明な場合 (およびリクエストの転送が行われたことを示したい場合) は "unknown"

by=<identifier>

リクエストがプロキシサーバーに入ってきたインターフェイス。

for=<identifier>

リクエストを発行したクライアントと、その後のプロキシーチェーン内のプロキシー。

host=<host>

プロキシーから受信したときの `Host` リクエストヘッダー。

proto=<http|https>

そのプロトコルがリクエストの作成に使用されたか (ふつうは "http" または "https")。

例
-

### `Forwarded` ヘッダーの使用
```

Forwarded: for="_mdn"

# 大文字小文字の区別なし
Forwarded: For="[2001:db8:cafe::17]:4711"

# セミコロン区切り
Forwarded: for=192.0.2.60; proto=http; by=203.0.113.43

# 複数の値をコンマで区切って追加可能
Forwarded: for=192.0.2.43, for=198.51.100.17
```

### `X-Forwarded-For` から `Forwarded` への移行

アプリケーション、サーバー、プロキシーが標準化された `Forwarded` ヘッダーに対応している場合は、 `X-Forwarded-For` を置き換えることができます。なお、 IPv6 アドレスは、 `Forwarded` では引用符と角括弧で囲む必要があります。
```

X-Forwarded-For: 123.34.567.89
Forwarded: for=123.34.567.89

X-Forwarded-For: 192.0.2.43, "[2001:db8:cafe::17]"
Forwarded: for=192.0.2.43, for="[2001:db8:cafe::17]"
```

仕様書
---

| Specification |
| --- |
| Forwarded HTTP Extension # section-4 |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `X-Forwarded-For`
* `X-Forwarded-Host`
* `X-Forwarded-Proto`
* `Via` – 接続しているクライアントではなく、プロキシー自身についての情報を提供します。
Timing-Allow-Origin
===================

**`Timing-Allow-Origin`** レスポンスヘッダーは、 Resource Timing API の機能を介して取得された属性の値の表示を許可されているオリジンを指定します。そうでない場合、クロスオリジンの制限によりゼロとして報告されます。

|  |  |
| --- | --- |
| ヘッダー種別 | レスポンスヘッダー |
| 禁止ヘッダー名 | いいえ |

構文
--
```

Timing-Allow-Origin: *
Timing-Allow-Origin: <origin>[, <origin>]*
```

ディレクティブ
-------

`*`

サーバーはワイルドカードとして "\*" を指定することができ、それによって全てのオリジンがタイミングリソースを見ることができます。

`<origin>`

タイミングリソースを表示できる URI を指定します。 複数のオリジンをカンマ区切りで指定できます。

例
-

リソースがタイミングリソースを表示できるようにする場合。
```

Timing-Allow-Origin: *
```


`https://developer.mozilla.org` がタイミングリソースを表示できるようにするには、次のように指定できます。
```

Timing-Allow-Origin: https://developer.mozilla.org
```

仕様書
---

| Specification |
| --- |
| Resource Timing # sec-timing-allow-origin |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* Resource Timing API
* Resource Timing API の使用
* `Vary`
Link
====

HTTP の **`Link`** エンティティヘッダーフィールドは、 HTTP ヘッダー内の 1 つ以上のリンクをシリアル化する手段を提供します。意味的には、 HTML の `<link>` 要素と同等です。

構文
--


```http
Link: <uri-reference>; param1=value1; param2="value2"
```


`<uri-reference>`

URI 参照。 `<` と `>` で囲む必要があります。

### 引数

リンクヘッダーには `;` で区切られた引数が含まれており、 `<link>` 要素の属性に相当します。

例
-

URI （絶対または相対）は `<` と `>` で囲む必要があります。


```http
Link: <https://example.com>; rel="preconnect"
```



```http
Link: https://bad.example; rel="preconnect"
```

### 複数リンクを指定

カンマで区切られた複数のリンクを指定できます。次に例を示します。


```http
Link: <https://one.example.com>; rel="preconnect", <https://two.example.com>; rel="preconnect", <https://three.example.com>; rel="preconnect"
```

仕様書
---

| Specification |
| --- |
| Web Linking # header |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `103 Early Hints`
Feature-Policy: ambient-light-sensor
====================================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

HTTP の `Feature-Policy` ヘッダーにおける `ambient-light-sensor` ディレクティブは、現在の文書が `AmbientLightSensor` インターフェイスを通じて端末の周囲の環境における明るさの量に関する情報を収集することを許可するかどうかを制御します。

構文
--
```

Feature-Policy: ambient-light-sensor <allowlist>;
```


<allowlist>

この機能を許可するオリジンのリストです。 `Feature-Policy` を参照してください。

既定のポリシー
-------

`ambient-light-sensor` の既定の許可リストは `'self'` です。

仕様書
---

| Specification |
| --- |
| Generic Sensor API # permissions-policy |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Feature-Policy` ヘッダー
* 機能ポリシー
* 機能ポリシーの使用
Feature-Policy: midi
====================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

HTTP の `Feature-Policy` ヘッダーにおける `midi` ディレクティブは、現在の文書が Web MIDI API を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 `Navigator.requestMIDIAccess()` から返却された `Promise` が `DOMException` で拒否されます。

構文
--
```

Feature-Policy: midi <allowlist>;
```


<allowlist>

この機能を許可するオリジンのリストです。 `Feature-Policy` を参照してください。

既定のポリシー
-------

許可リストは `'self'` です。

仕様書
---

| Specification |
| --- |
| Web MIDI API # permissions-policy-integration |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Feature-Policy` ヘッダー
* 機能ポリシー
* 機能ポリシーの使用
Feature-Policy: geolocation
===========================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

HTTP の `Feature-Policy` ヘッダーにおける `geolocation` ディレクティブは、現在の文書が `Geolocation` インターフェイスを使用することを許可するかどうかを制御します。このポリシーが有効であれば、 `getCurrentPosition()` および `watchPosition()` を呼び出すと、関数のコールバックが呼び出され、 `GeolocationPositionError` のコードが `PERMISSION_DENIED` になります。

既定では、 Geolocation API は最上位の文書およびその同じオリジンの子フレームの中で使用することができます。このディレクティブは別オリジンのフレームによる位置情報へのアクセスを許可したり拒否したりします。同じオリジンのフレームも含みます。

構文
--
```

Feature-Policy: geolocation <allowlist>;
```


<allowlist>

この機能を許可するオリジンのリストです。 `Feature-Policy` を参照してください。

既定のポリシー
-------

`geolocation` の既定の許可リストは `'self'` です。

例
-

### 一般的な例

SecureCorp Inc. が、自分自身のオリジンおよびオリジンが `https://example.com` のものを除いてすべての Geolocation API を無効にしようとしているとします。以下の機能ポリシーを設定する HTTP レスポンスヘッダーを配信することで実現できます。
```

Feature-Policy: geolocation 'self' https://example.com
```

### <iframe> 要素と

FastCorp Inc. が、特定の <iframe> を除いたすべての別オリジンの子フレームの `geolocation` を無効にしようとしているとします。以下の機能ポリシーを設定する HTTP レスポンスヘッダーを配信することで実現できます。
```

Feature-Policy: geolocation 'self'
```


それから allow 属性を `<iframe>` 要素に含めてください。


```html
<iframe src="https://other.com/map" allow="geolocation"></iframe>
```


興味深いことに、 `allow` 属性は、同じオリジンの文書を含むフレームであっても、あるフレームでは機能を有効にし、他のフレームでは機能を無効にするという選択をすることができます。

仕様書
---

| Specification |
| --- |
| Geolocation API # permissions-policy |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Feature-Policy` ヘッダー
* 機能ポリシー
* 機能ポリシーの使用
Feature-Policy: accelerometer
=============================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

HTTP の `Feature-Policy` ヘッダーにおける `accelerometer` ディレクティブは、現在の文書が `Accelerometer` インターフェイスを通じて端末の加速度に関する情報を収集することを許可するかどうかを制御します。

構文
--
```

Feature-Policy: accelerometer <allowlist>;
```


<allowlist>

この機能を許可するオリジンのリストです。 `Feature-Policy` を参照してください。

既定のポリシー
-------

この機能の `allowlist` 値の既定値は `'self'` です。

仕様書
---

| Specification |
| --- |
| Generic Sensor API # permissions-policy |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Feature-Policy` ヘッダー
* 機能ポリシー
* 機能ポリシーの使用
Feature-Policy: payment
=======================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

HTTP の `Feature-Policy` ヘッダーフィールドにおける `payment` ディレクティブは、現在の文書が Payment Request API を使用することを許可するかどうかを制御します。このポリシーが無効であれば、 `PaymentRequest()` コンストラクターで `SyntaxError` の `DOMException` が発生します。

構文
--
```

Feature-Policy: payment <allowlist>;
```


<allowlist>

この機能を許可するオリジンのリストです。 `Feature-Policy` を参照してください。

既定のポリシー
-------

`payment` 機能の既定の許可リストの値は `'self'` です。

仕様書
---

| Specification |
| --- |
| Payment Request API 1.1 # permissions-policy |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Feature-Policy` ヘッダーフィールド
* 機能ポリシー
* 機能ポリシーの使用
Feature-Policy: display-capture
===============================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

HTTP の `Feature-Policy` ヘッダーにおける `display-capture` ディレクティブは、現在の文書が Screen Capture API、すなわち `getDisplayMedia()` を使用して画面の内容をキャプチャすることを許可するかどうかを制御します。

文書で `display-capture` が無効になっていた場合、文書は `getDisplayMedia()` を通じて画面キャプチャを行うことができなくなります。

構文
--
```

Feature-Policy: display-capture <allowlist>;
```


<allowlist>

この機能を許可するオリジンのリストです。 `Feature-Policy` を参照してください。

既定のポリシー
-------

`display-capture` の許可リストの既定値は `'self'` です。

仕様書
---

| Specification |
| --- |
| Screen Capture # permissions-policy-integration |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Feature-Policy` ヘッダー
* 機能ポリシー
* 機能ポリシーの使用
* Screen Capture API
* Screen Capture API の使用
Feature-Policy: fullscreen
==========================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

HTTP の `Feature-Policy` ヘッダーにおける `fullscreen` ディレクティブは、現在の文書が `Element.requestFullScreen()` を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 返却された `Promise` が `TypeError` で拒否されます。

既定では、最上位の文書およびその同じオリジンの子フレームが全画面モードを要求し、入ることができます。このディレクティブは別オリジンのフレームが全画面モードを使用することを許可したり拒否したりします。同じオリジンのフレームも含みます。

**メモ:** このディレクティブ (つまり `allow` 属性で設定したもの) と `allowfullscreen` 属性の両方が `<iframe>` 要素に存在する場合、このディレクティブが優先されます。以前は `fullscreen` ディレクティブが `allowfullscreen` 属性と同時に存在しないと動作しないバグがありましたが、Firefox 80 では修正されています (Firefox バグ 1608358)。

構文
--
```

Feature-Policy: fullscreen <allowlist>;
```


<allowlist>

この機能を許可するオリジンのリストです。 `Feature-Policy` を参照してください。

既定のポリシー
-------

`fullscreen` の既定の許可リストは `'self'` です。

例
-

### 一般的な例

SecureCorp Inc. は、自分自身のオリジンおよびオリジンが `https://example.com` のものを除いてすべての Fullscreen API を無効にしようとしているとします。以下の機能ポリシーを設定する HTTP レスポンスヘッダーを配信することで実現できます。
```

Feature-Policy: fullscreen 'self' https://example.com
```

### <iframe> 要素と

FastCorp Inc. は、特定の <iframe> を除いたすべての別オリジンの子フレームの `fullscreen` を無効にしようとしているとします。以下の機能ポリシーを設定する HTTP レスポンスヘッダーを配信することで実現できます。
```

Feature-Policy: fullscreen 'self'
```


それから allow 属性を `<iframe>` 要素に含めます。


```html
<iframe src="https://other.com/videoplayer" allow="fullscreen"></iframe>
```


iframe の属性は、選択的に特定のフレームの機能を有効にし、その他はたとえそれらのフレームが同じオリジンからきた文書を含んでいても無効にします。

仕様書
---

| Specification |
| --- |
| Fullscreen API Standard # permissions-policy-integration |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Feature-Policy` ヘッダー
* 機能ポリシー
* 機能ポリシーの使用
Feature-Policy: battery
=======================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

HTTP の `Feature-Policy` ヘッダーにおける `battery` ディレクティブは、現在の文書で `Navigator.getBattery()` で得られる `BatteryManager` (en-US) インターフェイスを通じて、端末のバッテリーに関する情報の収集を許可するかどうかを制御します。

構文
--
```

Feature-Policy: battery <allowlist>;
```


<allowlist>

この機能を許可するオリジンのリストです。 `Feature-Policy` を参照してください。

既定のポリシー
-------

`battery` の許可リストの既定値は `'self'` です。

仕様書
---

| Specification |
| --- |
| Battery Status API # permissions-policy-integration |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Feature-Policy` ヘッダー
* 機能ポリシー
* 機能ポリシーの使用
* Battery Status API
* `Navigator.getBattery()`
* `BatteryManager` (en-US)
Feature-Policy: camera
======================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

HTTP の `Feature-Policy` ヘッダーにおける `camera` ディレクティブは、現在の文書が動画入力機器を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 `MediaDevices.getUserMedia()` から返却された `Promise` が `NotAllowedError` で拒否されます。

構文
--
```

Feature-Policy: camera <allowlist>;
```


<allowlist>

この機能を許可するオリジンのリストです。 `Feature-Policy` を参照してください。

既定のポリシー
-------

`camera` の許可リストの既定値は `'self'` です。

仕様書
---

| Specification |
| --- |
| Media Capture and Streams # permissions-policy-integration |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Feature-Policy` ヘッダー
* 機能ポリシー
* 機能ポリシーの使用
Feature-Policy: screen-wake-lock
================================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

HTTP の `Feature-Policy` ヘッダーにおける **`screen-wake-lock`** ディレクティブは、現在の文書が Screen Wake Lock API を使用して、端末が画面を暗くしたりオフにしたりしないよう指示することを許可するかどうか制御します。

**メモ:** 早期の仕様書の草稿では、このディレクティブは `wake-lock` と呼ばれていました。

構文
--
```

Feature-Policy: screen-wake-lock <allowlist>;
```


<allowlist>

この機能を許可するオリジンのリストです。 `Feature-Policy` を参照してください。

既定のポリシー
-------

`screen-wake-lock` の既定の許可リストは `'self'` です。

仕様書
---

| Specification |
| --- |
| Screen Wake Lock API # policy-control |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* Screen Wake Lock API
* `Feature-Policy` ヘッダー
* 機能ポリシー
* 機能ポリシーの使用
* 許可リストの既定値
Feature-Policy: autoplay
========================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

HTTP の `Feature-Policy` ヘッダーにおける `autoplay` ディレクティブは、現在の文書で `HTMLMediaElement` インターフェイスによってメディアの自動再生をリクエストすることを許可するかどうかを制御します。このポリシーが有効であれば、 `HTMLMediaElement.play()` から返却された `Promise` が `DOMException` で拒否されます。 `<audio>` および `<video>` 要素の `autoplay` 属性は無視されます。

自動再生や自動再生ブロックの詳細については、 メディアおよび Web Audio API の自動再生ガイド の記事を参照してください。

構文
--
```

Feature-Policy: autoplay <allowlist>;
```


<allowlist>

この機能を許可するオリジンのリストです。 `Feature-Policy` を参照してください。

既定のポリシー
-------

Google Chrome における既定値は
 `'self'` です。

仕様書
---

| Specification |
| --- |
| HTML Standard # autoplay-feature |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Feature-Policy` ヘッダー
* 機能ポリシー
* 機能ポリシーの使用
Feature-Policy: xr-spatial-tracking
===================================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

HTTP の `Feature-Policy` ヘッダーにおける `xr-spatial-tracking` ディレクティブは、現在の文書が WebXR Device API を使用することを許可するかどうかを制御します。このポリシーは、 `navigator.xr.requestSession()` (en-US) が空間追跡を必要とする `XRSession` (en-US) を返すことができるかどうか、またユーザーエージェントが `navigator.xr.isSessionSupported()` (en-US) と `devicechange` イベントを通じて空間追跡をサポートするセッションへのサポートを `navigator.xr` オブジェクトで示せるかどうかを制御します。

構文
--
```

Feature-Policy: xr-spatial-tracking <allowlist>;
```


<allowlist>

この機能を許可するオリジンのリストです。 `Feature-Policy` を参照してください。

既定のポリシー
-------

既定の許可リストは `'self'` です。

仕様書
---

| Specification |
| --- |
| WebXR Device API # permissions-policy |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* WebXR Device API
* `navigator.xr.requestSession()` (en-US), `navigator.xr.isSessionSupported()` (en-US), `navigator.xr` の `devicechange` イベント
* `Feature-Policy` ヘッダー
* 機能ポリシー
* 機能ポリシーの使用
Feature-Policy: encrypted-media
===============================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

HTTP の `Feature-Policy` ヘッダーにおける `encrypted-media` ディレクティブは、現在の文書が Encrypted Media Extensions (en-US) API (EME) を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 `Navigator.requestMediaKeySystemAccess()` (en-US) から返却された `Promise` が `DOMException` で拒否されます。

構文
--
```

Feature-Policy: encrypted-media <allowlist>;
```


<allowlist>

この機能を許可するオリジンのリストです。 `Feature-Policy` を参照してください。

既定のポリシー
-------

`encrypted-media` の既定の許可リストは `'self'` です。

仕様書
---

| Specification |
| --- |
| Encrypted Media Extensions # permissions-policy-integration |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Feature-Policy` ヘッダー
* 機能ポリシー
* 機能ポリシーの使用
Feature-Policy: microphone
==========================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

HTTP の `Feature-Policy` ヘッダーにおける `microphone` ディレクティブは、現在の文書がオーディオ入力機器を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 `MediaDevices.getUserMedia()` で返却された `Promise` が `NotAllowedError` で拒否されます。

構文
--
```

Feature-Policy: microphone <allowlist>;
```


<allowlist>

この機能を許可するオリジンのリストです。 `Feature-Policy` を参照してください。

既定のポリシー
-------

`geolocation` の既定の許可リストは `'self'` です。

仕様書
---

| Specification |
| --- |
| Media Capture and Streams # permissions-policy-integration |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Feature-Policy` ヘッダー
* 機能ポリシー
* 機能ポリシーの使用
Feature-Policy: document-domain
===============================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

HTTP の `Feature-Policy` ヘッダーにおける `document-domain` ディレクティブは、現在の文書が `document.domain` を設定することを許可するかどうかを制御します。このポリシーが無効であった場合、 `document.domain` を設定しようとすると失敗し、 `SecurityError` の `DOMException` が発生します。

構文
--
```

Feature-Policy: document-domain <allowlist>;
```


<allowlist>

この機能を許可するオリジンのリストです。 `Feature-Policy` を参照してください。

既定のポリシー
-------

`document-domain` の既定の許可リストは `*` です。

仕様書
---

| Specification |
| --- |
| HTML Standard # policy-controlled-features |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Feature-Policy` ヘッダー
* 機能ポリシー
* 機能ポリシーの使用
Feature-Policy: web-share
=========================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

HTTP の `Feature-Policy` ヘッダーにおける `web-share` ディレクティブは、減殺の文書が Web Share API の `Navigator.share()` メソッドを使用して、テキスト、リンク、画像、その他のコンテンツをユーザーが選択した任意の宛先にシェアすることを許可するかどうかを制御します。

構文
--
```

Feature-Policy: web-share <allowlist>;
```


<allowlist>

この機能を許可するオリジンのリストです。 `Feature-Policy` を参照してください。

既定のポリシー
-------

既定値は `'self'` です。

仕様書
---

| Specification |
| --- |
| Web Share API # permissions-policy |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

ブラウザーへの実装は https://github.com/w3c/web-share/issues/169 で議論されています。

関連情報
----

* `Feature-Policy` ヘッダー
* 機能ポリシー
* 機能ポリシーの使用