diff options
Diffstat (limited to 'files/ja/web/http/headers')
125 files changed, 12894 insertions, 0 deletions
diff --git a/files/ja/web/http/headers/accept-ch-lifetime/index.html b/files/ja/web/http/headers/accept-ch-lifetime/index.html new file mode 100644 index 0000000000..03626be341 --- /dev/null +++ b/files/ja/web/http/headers/accept-ch-lifetime/index.html @@ -0,0 +1,53 @@ +--- +title: Accept-CH-Lifetime +slug: Web/HTTP/Headers/Accept-CH-Lifetime +tags: + - Client hints + - HTTP + - header +translation_of: Web/HTTP/Headers/Accept-CH-Lifetime +--- +<div>{{HTTPSidebar}}{{securecontext_header}}{{SeeCompatTable}}</div> + +<p><span class="seoSummary"><strong><code>Accept-CH-Lifetime</code></strong> ヘッダーは、クライアントが後続のリクエストにどの<a href="/ja/docs/Glossary/Client_hints">クライアントヒント</a>のヘッダーを含める必要があるかを指定する {{HTTPHeader("Accept-CH")}} ヘッダーの値の永続性を指定するためにサーバーによって設定されます。</span></p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header","レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name","禁止ヘッダー名")}}</th> + <td>?</td> + </tr> + </tbody> +</table> + +<div class="blockIndicator note"> +<p><strong>注</strong>: クライアントヒントには、安全なオリジン(TLS 経由)でのみアクセスできます。 Accept-CH ヘッダーと Accept-CH-Lifetime ヘッダーは、クライアントヒントが確実に送信されるように、すべての安全なリクエストに対して永続化する必要があります。</p> +</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Accept-CH-Lifetime: <age> +</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<pre class="notranslate">Accept-CH: Viewport-Width, DPR +Accept-CH-Lifetime: 86400 +</pre> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Accept-CH-Lifetime")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Accept-CH")}}</li> + <li>{{HTTPHeader("Vary")}}</li> +</ul> diff --git a/files/ja/web/http/headers/accept-ch/index.html b/files/ja/web/http/headers/accept-ch/index.html new file mode 100644 index 0000000000..1eba06b9ad --- /dev/null +++ b/files/ja/web/http/headers/accept-ch/index.html @@ -0,0 +1,59 @@ +--- +title: Accept-CH +slug: Web/HTTP/Headers/Accept-CH +tags: + - Client hints + - HTTP + - HTTP Header +translation_of: Web/HTTP/Headers/Accept-CH +--- +<div>{{HTTPSidebar}}{{securecontext_header}}{{SeeCompatTable}}</div> + +<p><code><strong>Accept-CH</strong></code> ヘッダーはサーバーによって設定され、クライアントが後続のリクエストに含める{{glossary("Client Hints", "クライアントヒント")}}ヘッダーを指定します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header","レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name","禁止ヘッダー名")}}</th> + <td>?</td> + </tr> + </tbody> +</table> + +<div class="blockIndicator note"> +<p><strong>注:</strong> クライアントヒントには、安全なオリジン (TLS 経由) でのみアクセスできます。 Accept-CH ヘッダーと Accept-CH-Lifetime ヘッダーは、クライアントヒントが確実に送信されるように、すべての安全なリクエストに対して保持する必要があります。</p> +</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Accept-CH: <list of client hints> +</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<pre class="notranslate">Accept-CH: DPR, Viewport-Width +Accept-CH: Width +Accept-CH-Lifetime: 86400 +Vary: DPR, Viewport-Width, Width +</pre> + +<div class="blockIndicator note"> +<p><strong>注:</strong> 受け入れられたクライアントのヒントに基づいて、<a href="/en-US/docs/Glossary/Client_hints#Varying_Client_Hints">レスポンスを変更</a>することを忘れないでください。</p> +</div> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Accept-CH")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Accept-CH-Lifetime")}}</li> + <li>{{HTTPHeader("Vary")}}</li> +</ul> diff --git a/files/ja/web/http/headers/accept-charset/index.html b/files/ja/web/http/headers/accept-charset/index.html new file mode 100644 index 0000000000..374062341a --- /dev/null +++ b/files/ja/web/http/headers/accept-charset/index.html @@ -0,0 +1,94 @@ +--- +title: Accept-Charset +slug: Web/HTTP/Headers/Accept-Charset +tags: + - Content Negotiation + - HTTP + - HTTP Header + - Reference + - Request header +translation_of: Web/HTTP/Headers/Accept-Charset +--- +<div>{{HTTPSidebar}}</div> + +<p><span class="seoSummary"><strong><code>Accept-Charset</code></strong> は HTTP のリクエストヘッダーで、クライアントが理解できる{{glossary("character encoding", "文字エンコーディング")}}を広報します。</span><a href="/ja/docs/Web/HTTP/Content_negotiation">コンテンツネゴシエーション</a>を使用して、サーバーは提案の1つを選択、使用し、クライアントに選択結果を {{HTTPHeader("Content-Type")}} レスポンスヘッダー内、ふつうは <code>charset=</code> 引数の中で通知します。通常はそれぞれのリソースの既定値が正しく、これを送信すると<a href="/ja/docs/Mozilla/Firefox/Privacy/Tracking_Protection">フィンガープリンティング</a>を許してしまうことがあるため、ブラウザーは通常、このヘッダーを設定しません。</p> + +<p>サーバーが一致する文字エンコーディングを提供できない場合、理論的には {{HTTPStatus("406", "406 Not Acceptable")}} エラーコードを返すことができます。しかし、より使い勝手をよくするために、これはめったに行われず、 <code>Accept-Charset</code> ヘッダーは無視されます。</p> + +<div class="note"> +<p>HTTP/1.1 の初期のバージョンでは、既定の文字エンコーディングを ISO-8859-1 と定義していました。これはすでに推奨されなくなっており、コンテンツ型ごとに個別に既定値が設定されるようになりました。</p> + +<p>UTF-8 への対応が進み、圧倒的に推奨される文字エンコーディングになっています。<a href="https://www.eff.org/deeplinks/2010/01/primer-information-theory-and-privacy">設定に基づいたエントロピーを減少させることでより良いプライバシーを保証する</a>ために、すべてのブラウザーが <code>Accept-Charset</code> ヘッダーを省略しています。 Internet Explorer 8 以降、 Safari 5 以降、 Opera 11 以降、 Firefox 10 以降、 Chrome 27 以降は送信しなくなりました。</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Accept-Charset: <charset> + +// 複数の型を{{glossary("quality values", "品質値")}}で重みづけした構文 +Accept-Charset: utf-8, iso-8859-1;q=0.5</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code><var><charset></var></code></dt> + <dd><code>utf-8</code> または <code>iso-8859-15</code> のような文字セット。</dd> + <dt><code>*</code></dt> + <dd>ヘッダー内の他の場所に記述されていない文字セット。 <code>'*'</code> はワイルドカードとして使用されます。</dd> + <dt><code>;q=<var><weight></var></code></dt> + <dd>エンコーディングはすべて、<em>重み</em>と呼ばれる相対的な{{glossary("quality values", "品質値")}}を使用して表現された設定の順番で配置されます。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre class="notranslate">Accept-Charset: iso-8859-1 + +Accept-Charset: utf-8, iso-8859-1;q=0.5 + +Accept-Charset: utf-8, iso-8859-1;q=0.5, *;q=0.1 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "Accept-Charset", "5.3.3")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Accept-Charset")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>HTTP の<a href="/ja/docs/Web/HTTP/Content_negotiation">コンテンツネゴシエーション</a></li> + <li><a href="https://hsivonen.fi/accept-charset/">Accept-Charset is no more</a></li> + <li>コンテンツネゴシエーションの結果を含むヘッダー: {{HTTPHeader("Content-Type")}}</li> + <li>他の同様のヘッダー: {{HTTPHeader("TE")}}, {{HTTPHeader("Accept-Encoding")}}, {{HTTPHeader("Accept-Language")}}, {{HTTPHeader("Accept")}}</li> +</ul> diff --git a/files/ja/web/http/headers/accept-encoding/index.html b/files/ja/web/http/headers/accept-encoding/index.html new file mode 100644 index 0000000000..040418a77a --- /dev/null +++ b/files/ja/web/http/headers/accept-encoding/index.html @@ -0,0 +1,117 @@ +--- +title: Accept-Encoding +slug: Web/HTTP/Headers/Accept-Encoding +tags: + - Content Negotiation + - HTTP + - HTTP Header + - Reference + - Request header +translation_of: Web/HTTP/Headers/Accept-Encoding +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Accept-Encoding</code></strong> は HTTP のリクエストヘッダーで、コンテンツのエンコーディング、ふつうは圧縮アルゴリズムのどれをクライアントが理解することができるかを示します。 <a href="/ja/docs/Web/HTTP/Content_negotiation">コンテンツ交渉</a>を使用して、サーバーは提案されたものから一つを選択して使用し、 {{HTTPHeader("Content-Encoding")}} レスポンスヘッダーを使用してクライアントに選択結果を知らせます。</p> + +<p>クライアントとサーバーが同じ圧縮アルゴリズムに対応していた場合でも、 identity の値が受け付けられる場合は、サーバーはレスポンスの本文を圧縮しないことを選択する場合があります。これには主に二つの場合があります。</p> + +<ul> + <li>送信されるデータがすでに圧縮されており、二回目の圧縮によって送信するデータが小さくならないこと。一部の画像フォーマットで起こる発生する可能性があります。</li> + <li>サーバーが過負荷になってもり、圧縮に必要な計算上のオーバーヘッドの余裕がない場合。通常、 Microsoft はサーバーが計算能力の80%以上を使用している場合、圧縮しないことを推奨しています。</li> +</ul> + +<p><code>identity</code> の値、つまりエンコードをしないということは、 <code>identity;q=0</code> または <code>*;q=0</code> で <code>identity</code> とは別な値が明確に設定されていない限り、サーバーは{{HTTPStatus("406")}} <code>Not Acceptable</code> エラーを返してはいけません。</p> + +<div class="note"><strong>注:</strong> + +<ul> + <li> + <p>IANA レジストリが<a class="external" href="http://www.iana.org/assignments/http-parameters/http-parameters.xml#http-parameters-1">公式なコンテンツエンコーディングの完全なリスト</a>を管理しています。</p> + </li> + <li>他にも <code>bzip</code> および <code>bzip2</code> の二種類のエンコーディングが使用されることがありますが、標準ではありません。これはこれら二つの UNIX プログラムで使用されているアルゴリズムを実装しています。なお、前者は特許ライセンスの問題で開発終了しています。</li> +</ul> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Accept-Encoding: gzip +Accept-Encoding: compress +Accept-Encoding: deflate +Accept-Encoding: br +Accept-Encoding: identity +Accept-Encoding: * + +// 複数のアルゴリズムを {{Glossary("Quality Values", "quality value")}} で重み付けする構文: +Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code>gzip</code></dt> + <dd><a class="external external-icon" href="http://en.wikipedia.org/wiki/LZ77_and_LZ78#LZ77">Lempel-Ziv coding</a> (LZ77) と32ビット CRC を用いた圧縮形式です。</dd> + <dt><code>compress</code></dt> + <dd><a class="external external-icon" href="http://en.wikipedia.org/wiki/LZW">Lempel-Ziv-Welch</a> (LZW) アルゴリズムを用いた圧縮形式です。</dd> + <dt><code>deflate</code></dt> + <dd><a class="external external-icon" href="http://en.wikipedia.org/wiki/Zlib">zlib</a> 構造体と <a class="external external-icon" href="http://en.wikipedia.org/wiki/DEFLATE"><em>deflate</em></a> 圧縮アルゴリズムを用いた圧縮形式です。</dd> + <dt><code>br</code></dt> + <dd><a class="external external-icon" href="https://en.wikipedia.org/wiki/Brotli">Brotli</a> アルゴリズムを用いた圧縮形式です。</dd> + <dt><code>identity</code></dt> + <dd>等価関数を示します (つまり、圧縮も変更もありません)。この値は存在しなくても、常に受け付け可能とみなされます。</dd> + <dt><code>*</code></dt> + <dd>ヘッダーに挙げられていないあらゆるコンテンツエンコーディングに一致します。これはこのヘッダーがない場合の既定値です。すべてのアルゴリズムに対応しているという意味ではありません。評価される設定がないだけです。</dd> + <dt><code>;q=</code> (q 値の重みづけ)</dt> + <dd><em>weight</em> と呼ばれる相対的な<a href="/en-US/docs/Glossary/Quality_values">品質質</a>を使用して表現される設定の順序づけをするための任意の値です。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre class="notranslate">Accept-Encoding: gzip + +Accept-Encoding: gzip, compress, br + +Accept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "Accept-Encoding", "5.3.4")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Accept-Encoding")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>HTTP <a href="/docs/Web/HTTP/Content_negotiation">コンテンツ交渉</a></li> + <li>コンテンツ交渉の結果を伴うヘッダー: {{HTTPHeader("Content-Encoding")}}</li> + <li>他の同様のヘッダー: {{HTTPHeader("TE")}}, {{HTTPHeader("Accept")}}, {{HTTPHeader("Accept-Charset")}}, {{HTTPHeader("Accept-Language")}}</li> +</ul> diff --git a/files/ja/web/http/headers/accept-language/index.html b/files/ja/web/http/headers/accept-language/index.html new file mode 100644 index 0000000000..fc0bdc8b24 --- /dev/null +++ b/files/ja/web/http/headers/accept-language/index.html @@ -0,0 +1,101 @@ +--- +title: Accept-Language +slug: Web/HTTP/Headers/Accept-Language +tags: + - Accept-Language + - HTTP + - HTTP ヘッダー + - Reference + - コンテンツネゴシエーション + - リファレンス +translation_of: Web/HTTP/Headers/Accept-Language +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の <strong><code>Accept-Language</code></strong> リクエストヘッダーは、クライアントがどの言語を理解できるか、どの種類のロケールが推奨されるかを示します。 (言語というのは、英語のような自然言語を意味し、プログラミング言語ではありません。) <a href="/ja/docs/Web/HTTP/Content_negotiation">コンテンツネゴシエーション</a>を使用して、サーバーは提案されたものから一つを選択して使用し、 {{HTTPHeader("Content-Language")}} レスポンスヘッダーを使用してクライアントに選択結果を知らせます。ブラウザーはユーザーインターフェイスの言語に従って、このヘッダーに適切な値を設定し、ユーザーはこれを変更することができますが、稀です (そして指紋につながるとして難色を示されます)。</p> + +<p>このヘッダーはヒントであり、サーバーが言語を判別するための方法として、明示的なユーザーの選択によって制御する特定の URL など、他のものがない場合に使用されます。サーバーは明示的な決定を上書きしないことを推奨します。 <code>Accept-Language</code> の中身はユーザーが制御できないことが良くあります(旅行中で外国のインターネットカフェを使用している場合など)。ユーザーはユーザーインターフェースのロケール以外の言語によるページを訪問したがっているかもしれません。</p> + +<p>サーバーが一致する言語を何も提供できない場合は、理論的には {{HTTPStatus("406")}} (Not Acceptable) エラーコードを送り返すことができます。しかし、ユーザーの使い勝手をより良くするため、これはほとんど行われておらず、このような場合には一般に <code>Accept-Language</code> ヘッダーを無視するという方法が採られます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + <tr> + <th scope="row">{{Glossary("CORS セーフリストリクエストヘッダー")}}</th> + <td>はい。値が <code>0-9</code>, <code>A-Z</code>, <code>a-z</code>, space or <code>*,-.;=</code> のみであるという追加の制約あり。</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Accept-Language: <language> +Accept-Language: * + +// {{glossary("quality values", "重み値")}}の構文によって重みづけされた複数の種別 +Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code><language></code></dt> + <dd> + <p>言語タグです (「ロケール識別子」とも呼ばれることがあります)。これは言語を表す2~3文字の基本言語タグと、任意で追加のサブタグを <code>'-'</code> で区切って続けます。追加情報の多くは言語や地域の変化形 (<code>'en-US'</code> または <code>'fr-CA'</code> など) または使用する文字の種類 (<code>'sr-Latn'</code> など) です。正書法の種類 (<code>'de-DE-1996'</code>) など他の変化形は、通常このヘッダーのコンテキストでは使用されません。</p> + </dd> + <dt><code>*</code></dt> + <dd>任意の言語です。 <code>'*'</code> はワイルドカードとして使用されます。</dd> + <dt><code>;q=</code> (Q 値の重み)</dt> + <dd><em>重み</em>と呼ばれる、相対的な{{glossary("Quality values", "品質値")}}を使用して表現される優先順位の順序で配置された値です。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre class="notranslate">Accept-Language: de + +Accept-Language: de-CH + +Accept-Language: en-US,en;q=0.5 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "Accept-Language", "5.3.5")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context</td> + </tr> + <tr> + <td><a href="https://tools.ietf.org/html/bcp47">BCP 47</a></td> + <td>Tags for the Identification of Language</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Accept-Language")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>HTTP <a href="/docs/Web/HTTP/Content_negotiation">コンテンツネゴシエーション</a></li> + <li>コンテンツネゴシエーションの結果を伴うヘッダー: {{HTTPHeader("Content-Language")}}</li> + <li>他の同様のヘッダー: {{HTTPHeader("TE")}}, {{HTTPHeader("Accept-Encoding")}}, {{HTTPHeader("Accept-Charset")}}, {{HTTPHeader("Accept")}}</li> +</ul> diff --git a/files/ja/web/http/headers/accept-patch/index.html b/files/ja/web/http/headers/accept-patch/index.html new file mode 100644 index 0000000000..07bbf32d40 --- /dev/null +++ b/files/ja/web/http/headers/accept-patch/index.html @@ -0,0 +1,88 @@ +--- +title: Accept-Patch +slug: Web/HTTP/Headers/Accept-Patch +tags: + - HTTP + - Reference +translation_of: Web/HTTP/Headers/Accept-Patch +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Accept-Patch</code></strong> は HTTP のレスポンスヘッダーで、サーバーが認識できるメディアタイプを伝えます。</p> + +<p>任意のメソッドに応答する<strong><code>Accept-Patch</code></strong>は、Request-URIで識別されるリソースで、 {{HTTPMethod("PATCH")}} が許可されることを意味します。 2つの一般的なケースがこれにつながります。</p> + +<p>サポートされていないメディアタイプの {{HTTPMethod("PATCH")}} リクエストを受信したサーバーは、{{HTTPStatus("415")}} <code>Unsupported Media Type</code>と、1つ以上のサポートされているメディアタイプを参照するAccept-Patchヘッダーで応答する可能性があります。</p> + +<div class="note"><strong>注:</strong> + +<ul> + <li> + <p>IANA レジストリは、<a href="https://www.iana.org/assignments/http-parameters/http-parameters.xml#http-parameters-1">公式コンテンツエンコーディングの完全なリスト</a>を保持しています。</p> + </li> + <li>標準ではありませんが、他の2つのコンテンツエンコーディング <code>bzip</code>と<code>bzip2</code>が時々使用されます。 これらは、これら2つのUNIXプログラムで使用されるアルゴリズムを実装しています。 最初のものは、特許ライセンスの問題のために中止されたことに注意してください。</li> +</ul> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Accept-Patch: application/example, text/example +Accept-Patch: text/example;charset=utf-8 +Accept-Patch: application/merge-patch+json +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<p>なし</p> + +<h2 id="Examples" name="Examples">例</h2> + +<pre class="syntaxbox notranslate">Accept-Patch: application/example, text/example + +Accept-Patch: text/example;charset=utf-8 + +Accept-Patch: application/merge-patch+json +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("5789", "Accept-Patch", "3.1")}}</td> + <td>HTTP PATCH</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Accept-Patch")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>Http method {{HTTPMethod("PATCH")}}</li> + <li>HTTP Semantic and context {{RFC("7231", "PUT", "4.3.4")}}</li> +</ul> diff --git a/files/ja/web/http/headers/accept-ranges/index.html b/files/ja/web/http/headers/accept-ranges/index.html new file mode 100644 index 0000000000..7f6008289e --- /dev/null +++ b/files/ja/web/http/headers/accept-ranges/index.html @@ -0,0 +1,79 @@ +--- +title: Accept-Ranges +slug: Web/HTTP/Headers/Accept-Ranges +tags: + - HTTP + - HTTP ヘッダー + - Reference + - レスポンスヘッダー + - 範囲リクエスト +translation_of: Web/HTTP/Headers/Accept-Ranges +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の <code><strong>Accept-Ranges</strong></code> レスポンスヘッダーは、サーバーが部分的なリクエストに対応していることを周知するために使用するマーカーです。このフィールドの値は、範囲の定義に使用できる単位を示します。</p> + +<p><code>Accept-Ranges</code> ヘッダーがあると、ブラウザーは開始から再開するのではなく、中断されたダウンロードを再開しようとする可能性があります。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Accept-Ranges: <range-unit> +Accept-Ranges: none</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code><range-unit></code></dt> + <dd>サーバーが対応している範囲の単位を定義します。 <code>bytes</code> は {{RFC("7233")}} で公式に定義されている唯一の範囲の単位ですが、追加の範囲の単位が <a href="https://www.iana.org/assignments/http-parameters/http-parameters.xhtml#range-units">HTTP Range Unit Registry</a> に登録されている可能性があります。</dd> + <dt><code>none</code></dt> + <dd>範囲の単位には対応していないことを示し、これはヘッダー自体がないのと等価になりますので、滅多に使用されませんが、 IE9 のように一部のブラウザーでは、ダウンロードマネージャーで一時停止ボタンを無効にしたり削除したりするために使用されます。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>Accept-Ranges: bytes +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7233", "Accept-Ranges", "2.3")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Accept-Ranges")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("If-Range")}}</li> + <li>{{HTTPHeader("Range")}}</li> + <li><a href="https://www.iana.org/assignments/http-parameters/http-parameters.xhtml#range-units">IANA HTTP Range Unit Registry</a></li> +</ul> diff --git a/files/ja/web/http/headers/accept/index.html b/files/ja/web/http/headers/accept/index.html new file mode 100644 index 0000000000..a4a547373d --- /dev/null +++ b/files/ja/web/http/headers/accept/index.html @@ -0,0 +1,97 @@ +--- +title: Accept +slug: Web/HTTP/Headers/Accept +tags: + - HTTP + - HTTP Header + - Reference + - Request header +translation_of: Web/HTTP/Headers/Accept +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の <strong><code>Accept</code></strong> リクエストヘッダーは、クライアントが理解できるコンテンツタイプを <a href="/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME タイプ</a>で伝えます。 <a href="/ja/docs/Web/HTTP/Content_negotiation">コンテンツネゴシエーション</a>を使用して、サーバーは提案のうちの一つを選択し、それを使用してクライアントに {{HTTPHeader("Content-Type")}} レスポンスヘッダーで選択を伝えます。ブラウザーはリクエストを行う場面に応じて適切な値をこのヘッダーに設定します。 CSS スタイルシートを取得するときは、画像、動画、スクリプトを取得するときとは異なる値をリクエストで設定します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + <tr> + <th scope="row">{{Glossary("CORS-safelisted request header", "CORS セーフリストリクエストヘッダー")}}</th> + <td>はい、ただし、値に <em>CORS-unsafe リクエストヘッダーバイト</em>、 0x00-0x1F (0x09 (HT) を除く)、<code>"():<>?@[\]{}</code>、0x7F (DEL) を含むことができないという追加の制限があります。</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Accept: <MIME_type>/<MIME_subtype> +Accept: <MIME_type>/* +Accept: */* + +// {{glossary("quality values", "重み値")}}の構文によって重みづけされた複数の種別 +Accept: text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, */*;q=0.8 +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code><MIME_type>/<MIME_subtype></code></dt> + <dd>単一の詳細な <a href="/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME タイプ</a>、例えば <code>text/html</code> です。</dd> + <dt><code><MIME_type>/*</code></dt> + <dd>MIME タイプですが、サブタイプがありません。 <code>image/*</code> は <code>image/png</code>, <code>image/svg</code>, <code>image/gif</code> 及びその他の画像タイプに一致します。</dd> + <dt><code>*/*</code></dt> + <dd>すべての MIME タイプ</dd> + <dt><code>;q=</code> (Q 値の重み)</dt> + <dd><em>重み</em>と呼ばれる、相対的な<a href="/docs/Glossary/Quality_values">品質値</a>を使用して表現される優先順位の順序で配置された値です。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre class="notranslate">Accept: text/html + +Accept: image/* + +// 全般的な既定値 +Accept: */* + +// ナビゲーション時のリクエストの既定値 +Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "Accept", "5.3.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力したいのであれば、 <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Accept")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>HTTP <a href="/ja/docs/Web/HTTP/Content_negotiation">コンテンツネゴシエーション</a></li> + <li>コンテンツネゴシエーションの結果を伴うヘッダー: {{HTTPHeader("Content-Type")}}</li> + <li>他の同様のヘッダー: {{HTTPHeader("TE")}}, {{HTTPHeader("Accept-Encoding")}}, {{HTTPHeader("Accept-Charset")}}, {{HTTPHeader("Accept-Language")}}</li> +</ul> diff --git a/files/ja/web/http/headers/access-control-allow-credentials/index.html b/files/ja/web/http/headers/access-control-allow-credentials/index.html new file mode 100644 index 0000000000..cb82779ef6 --- /dev/null +++ b/files/ja/web/http/headers/access-control-allow-credentials/index.html @@ -0,0 +1,101 @@ +--- +title: Access-Control-Allow-Credentials +slug: Web/HTTP/Headers/Access-Control-Allow-Credentials +tags: + - Access-Control-Allow-Credentials + - CORS + - HTTP + - Reference + - credentials + - header + - レスポンスヘッダー + - 資格情報 +translation_of: Web/HTTP/Headers/Access-Control-Allow-Credentials +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Access-Control-Allow-Credentials</code></strong> レスポンスヘッダーは、リクエストの資格情報モード ({{domxref("Request.credentials")}}) が <code>include</code> である場合に、レスポンスをフロントエンドの JavaScript コードに公開するかどうかをブラウザーに指示します。</p> + +<p>証明書の資格情報モード ({{domxref("Request.credentials")}}) が <code>include</code> である場合、レスポンスがフロントエンドの JavaScript コードに公開されるのは <code>Access-Control-Allow-Credentials</code> の値が <code>true</code> である場合のみです。</p> + +<p>資格情報は Cookie、認証ヘッダー、または TLS クライアント証明書です。</p> + +<p>プリフライトリクエストに対するレスポンスの一部として使用された場合は、実際のリクエストが資格情報を使用して行われた可能性があるかどうかを示します。なお、単純な {{HTTPMethod("GET")}} リクエストはプリフライトが行われないので、資格情報を持つリソースに対してリクエストが行われた場合、このヘッダーがリソースとともに返されない場合、レスポンスはブラウザーによって無視されウェブコンテンツは返されません。</p> + +<p><code>Access-Control-Allow-Credentials</code> ヘッダーは、 {{domxref("XMLHttpRequest.withCredentials")}} プロパティまたは Fetch API の {{domxref("Request.Request()", "Request()")}} コンストラクター内の <code>credentials</code> オプションとの組み合わせで動作します。資格情報を含む CORS リクエストにおいて、ブラウザーがレスポンスを JavaScript コードに公開するようにするためには、サーバー側 (<code>Access-Control-Allow-Credentials</code> ヘッダーを使用) とクライアント側 (XHR, Fetch Ajax リクエストの資格情報モードの設定) の両方が、資格情報を含むことを承認しなければなりません。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Access-Control-Allow-Credentials: true +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt>true</dt> + <dd>このヘッダーの唯一の有効な値は <code>true</code> です (大文字小文字を区別します)。資格情報を必要としない場合は、 (値を false に設定するのではなく) このヘッダーを完全に省略します。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<p>資格情報の許可:</p> + +<pre>Access-Control-Allow-Credentials: true</pre> + +<p><a href="/ja/docs/Web/API/XMLHttpRequest">XHR</a> を資格情報付きで使用:</p> + +<pre class="brush: js">var xhr = new XMLHttpRequest(); +xhr.open('GET', 'http://example.com/', true); +xhr.withCredentials = true; +xhr.send(null);</pre> + +<p><a href="/ja/docs/Web/API/Fetch_API">Fetch</a> を資格情報付きで使用:</p> + +<pre class="brush: js">fetch(url, { + credentials: 'include' +})</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Fetch','#http-access-control-allow-credentials', 'Access-Control-Allow-Credentials')}}</td> + <td>{{Spec2("Fetch")}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Access-Control-Allow-Credentials")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{domxref("XMLHttpRequest.withCredentials")}}</li> + <li>{{domxref("Request.Request()", "Request()")}}</li> +</ul> diff --git a/files/ja/web/http/headers/access-control-allow-headers/index.html b/files/ja/web/http/headers/access-control-allow-headers/index.html new file mode 100644 index 0000000000..9c64abe4ef --- /dev/null +++ b/files/ja/web/http/headers/access-control-allow-headers/index.html @@ -0,0 +1,127 @@ +--- +title: Access-Control-Allow-Headers +slug: Web/HTTP/Headers/Access-Control-Allow-Headers +tags: + - CORS + - HTTP + - Reference + - ヘッダー + - リファレンス + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/Access-Control-Allow-Headers +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Access-Control-Allow-Headers</code></strong> レスポンスヘッダーは、 {{HTTPHeader("Access-Control-Request-Headers")}} を含む{{glossary("preflight request", "プリフライトリクエスト")}}へのレスポンスで、実際のリクエストの間に使用できる HTTP ヘッダーを示すために使用されます。</p> + +<p>このヘッダーは、リクエストに {{HTTPHeader("Access-Control-Request-Headers")}} ヘッダーが含まれている時に必要です。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Access-Control-Allow-Headers: <em><header-name></em>[, <em><header-name></em>]* +Access-Control-Allow-Headers: * +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><header-name></dt> + <dd>対応しているリクエストヘッダーの名前です。ヘッダーはコンマで区切って、任意の数のリストにすることができます。</dd> + <dt><code>*</code> (ワイルドカード)</dt> + <dd>"<code>*</code>" の値は、資格情報のないリクエスト (<a href="/en-US/docs/Web/HTTP/Cookies">HTTP Cookie</a> や HTTP の認証情報のないリクエスト) の特殊なワイルドカード値です。認証情報付きのリクエストでは、特別な意味のない "<code>*</code>" というヘッダー名として扱われます。なお、 {{HTTPHeader("Authorization")}} ヘッダーはワイルドカードで表すことができず、常に明示的に列挙する必要があります。</dd> +</dl> + +<p>{{glossary("CORS-safelisted_request_header", "CORS セーフリストリクエストヘッダー")}}, {{HTTPHeader("Accept")}}, {{HTTPHeader("Accept-Language")}}, {{HTTPHeader("Content-Language")}}, {{HTTPHeader("Content-Type")}} は常に許可されており、このヘッダーで列挙する必要はありません。しかし、これらのヘッダーを <code>Access-Control-Allow-Headers</code> に列挙することで、これらのヘッダーでも追加の制約の適用を回避することができることに注意してください。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="A_custom_header" name="A_custom_header">カスタムヘッダー</h3> + +<p><code>Access-Control-Allow-Headers</code> ヘッダーがどのように見えるかの例です。<em>CORS セーフリストリクエストヘッダー</em>に加えて、 <code>X-Custom-Header</code> という名前のカスタムヘッダーがサーバーへの CORS リクエストで対応しています。</p> + +<pre>Access-Control-Allow-Headers: X-Custom-Header</pre> + +<h3 id="Multiple_headers" name="Multiple_headers">複数のヘッダー</h3> + +<p>この例は、複数のヘッダーへの対応を指定するときの <code>Access-Control-Allow-Headers</code> を示しています。</p> + +<pre>Access-Control-Allow-Headers: X-Custom-Header, Upgrade-Insecure-Requests</pre> + +<h3 id="Bypassing_additional_restrictions" name="Bypassing_additional_restrictions">追加の制約の回避</h3> + +<p>{{glossary("CORS-safelisted_request_header", "CORS セーフリストリクエストヘッダー")}}は常に許可され、ふつうは <code>Access-Control-Allow-Headers</code> に列挙する必要はありませんが、それでも列挙すれば<a href="/en-US/docs/Glossary/CORS-safelisted_request_header#Additional_restrictions">追加の制約</a>が適用されることを回避できます。</p> + +<pre>Access-Control-Allow-Headers: Accept</pre> + +<h3 id="Example_preflight_request" name="Example_preflight_request">プリフライトリクエストの例</h3> + +<p><code>Access-Control-Allow-Headers</code> を伴うプリフライトリクエストの例を見てみましょう。</p> + +<h4 id="Request" name="Request">リクエスト</h4> + +<p>最初にリクエストです。プリフライトリクエストは {{HTTPMethod("OPTIONS")}} リクエストで、次のように3つのプリフライトリクエストヘッダー、 {{HTTPHeader("Access-Control-Request-Method")}}, {{HTTPHeader("Access-Control-Request-Headers")}}, {{HTTPHeader("Origin")}} の組み合わせを含みます。</p> + +<pre>OPTIONS /resource/foo +Access-Control-Request-Method: DELETE +Access-Control-Request-Headers: origin, x-requested-with +Origin: https://foo.bar.org</pre> + +<h4 id="Response" name="Response">レスポンス</h4> + +<p>CORS リクエストが {{HTTPMethod("DELETE")}} メソッドを使うことをサーバーが許可した場合、 {{HTTPHeader("Access-Control-Allow-Methods")}} レスポンスヘッダーで返信し、そこでは <code>DELETE</code> とともに対応するその他のメソッドのリストが含まれます。</p> + +<pre>HTTP/1.1 200 OK +Content-Length: 0 +Connection: keep-alive +Access-Control-Allow-Origin: https://foo.bar.org +Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE +Access-Control-Max-Age: 86400</pre> + +<p>要求されたメソッドに対応していない場合は、サーバーはエラーを返します。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Fetch','#http-access-control-allow-headers', 'Access-Control-Allow-Headers')}}</td> + <td>{{Spec2("Fetch")}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Access-Control-Allow-Headers")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Access-Control-Allow-Origin")}}</li> + <li>{{HTTPHeader("Access-Control-Expose-Headers")}}</li> + <li>{{HTTPHeader("Access-Control-Allow-Methods")}}</li> + <li>{{HTTPHeader("Access-Control-Request-Headers")}}</li> +</ul> diff --git a/files/ja/web/http/headers/access-control-allow-methods/index.html b/files/ja/web/http/headers/access-control-allow-methods/index.html new file mode 100644 index 0000000000..78fca60c54 --- /dev/null +++ b/files/ja/web/http/headers/access-control-allow-methods/index.html @@ -0,0 +1,82 @@ +--- +title: Access-Control-Allow-Methods +slug: Web/HTTP/Headers/Access-Control-Allow-Methods +tags: + - CORS + - HTTP + - header + - ヘッダー + - リファレンス +translation_of: Web/HTTP/Headers/Access-Control-Allow-Methods +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Access-Control-Allow-Methods</code></strong> レスポンスヘッダーは、{{glossary("preflight request", "プリフライトリクエスト")}}のレスポンスの中で、リソースにアクセスするときに利用できる1つまたは複数のメソッドを指定します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Access-Control-Allow-Methods: <method>, <method>, ... +Access-Control-Allow-Methods: * +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><method></dt> + <dd>許可された <a href="/ja/docs/Web/HTTP/Methods">HTTP リクエストメソッド</a>のコンマ区切りリスト。</dd> + <dt><code>*</code> (ワイルドカード)</dt> + <dd>"<code>*</code>" の値は、資格情報のないリクエスト (<a href="/en-US/docs/Web/HTTP/Cookies">HTTP Cookie</a> や HTTP 認証情報のないリクエスト) の特殊なワイルドカードです。資格情報付きのリクエストでは、特別な意味のない "<code>*</code>" というメソッド名として扱われます。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>Access-Control-Allow-Methods: POST, GET, OPTIONS +Access-Control-Allow-Methods: * +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Fetch','#http-access-control-allow-methods', 'Access-Control-Allow-Methods')}}</td> + <td>{{Spec2("Fetch")}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Access-Control-Allow-Methods")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Access-Control-Allow-Origin")}}</li> + <li>{{HTTPHeader("Access-Control-Expose-Headers")}}</li> + <li>{{HTTPHeader("Access-Control-Allow-Headers")}}</li> + <li>{{HTTPHeader("Access-Control-Request-Method")}}</li> +</ul> diff --git a/files/ja/web/http/headers/access-control-allow-origin/index.html b/files/ja/web/http/headers/access-control-allow-origin/index.html new file mode 100644 index 0000000000..a5d5e57488 --- /dev/null +++ b/files/ja/web/http/headers/access-control-allow-origin/index.html @@ -0,0 +1,107 @@ +--- +title: Access-Control-Allow-Origin +slug: Web/HTTP/Headers/Access-Control-Allow-Origin +tags: + - Access Control + - Access-Control-Allow-Origin + - CORS + - Dealing with CORS + - HTTP + - HTTP Header + - How to Fix CORS + - Reference + - Security + - cross-origin issue + - header + - origin +translation_of: Web/HTTP/Headers/Access-Control-Allow-Origin +--- +<div>{{HTTPSidebar}}</div> + +<p><code><strong>Access-Control-Allow-Origin</strong></code> レスポンスヘッダーは、指定された{{glossary("origin", "オリジン")}}からのリクエストを行うコードでレスポンスが共有できるかどうかを示します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Access-Control-Allow-Origin: * +Access-Control-Allow-Origin: <origin> +Access-Control-Allow-Origin: null +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code>*</code></dt> + <dd><em>資格情報がない</em>リクエストでは、リテラル値 "<code>*</code>" をワイルドカードとして指定することができます。この値はブラウザーに、すべてのオリジンからのリクエストコードにリソースへのアクセスを許可するように指示します。資格情報がある時にワイルドカードを使用すると、<a href="/ja/docs/Web/HTTP/CORS/Errors/CORSNotSupportingCredentials">エラーを返します</a>。</dd> + <dt><code><origin></code></dt> + <dd>オリジンを指定します。1つのオリジンだけを指定することができます。サーバーが複数のオリジンからのクライアントに対応している場合、リクエストを行った特定のクライアントのオリジンを返さなければなりません。</dd> + <dt><code>null</code></dt> + <dd>オリジンを "null" に指定します。 + <div class="note"><strong>注:</strong> <code>null</code> は<a href="https://w3c.github.io/webappsec-cors-for-developers/#avoid-returning-access-control-allow-origin-null">使用しないでください</a>。「<code>Access-Control-Allow-Origin: "null"</code> を返すと安全であるように見えますが、リソースのオリジンが階層的ではないスキーム (例えば <code>data:</code> や <code>file:</code>) を使用しており、サンドボックス化された文書はすべて "null" となるように定義されています。多くのユーザーエージェントはそのような文書に <code>Access-Control-Allow-Origin: "null"</code> ヘッダーが付いているとアクセスを許可するので、あらゆるオリジンが "null" を持つ悪意のある文書を生成することができます。したがって、 ACAO ヘッダーで "null" 値を使用することは避けるべきです。」</div> + </dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<p>あらゆるオリジンからのコードにリソースへのアクセスを許可するようブラウザーに指示するレスポンスには、次のような行を含めてください。</p> + +<pre class="notranslate">Access-Control-Allow-Origin: *</pre> + +<p><code>https://developer.mozilla.org</code> のオリジンからリクエストを行うコードに対して、リソースへのアクセスを許可するようブラウザーに指示するレスポンスには、次のような行を含めてください。</p> + +<pre class="notranslate">Access-Control-Allow-Origin: https://developer.mozilla.org</pre> + +<p><code>Access-Control-Allow-Origin</code> の値で複数のオリジンに許可を限定するには、サーバー側で {{HTTPHeader("Origin")}} リクエストヘッダーの値をチェックし、許可するオリジンのリストと比較して、 {{HTTPHeader("Origin")}} の値がリスト中にあれば、 <code>Access-Control-Allow-Origin</code> の値に {{HTTPHeader("Origin")}} と同じ値を設定してください。</p> + +<h3 id="CORS_and_caching" name="CORS_and_caching">CORS とキャッシング</h3> + +<p><code>Access-Control-Allow-Origin</code> の値が ("<code>*</code>" ワイルドカードではなく) 具体的なオリジンであるレスポンスをサーバーが送信する場合、レスポンスには {{HTTPHeader("Vary")}} レスポンスヘッダーに <code>Origin</code> という値を設定して、 <code>Origin</code> リクエストヘッダーの値によって値が変わることをブラウザーに対して示してください。</p> + +<pre class="notranslate">Access-Control-Allow-Origin: https://developer.mozilla.org +Vary: Origin</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Fetch','#http-access-control-allow-origin', 'Access-Control-Allow-Origin')}}</td> + <td>{{Spec2("Fetch")}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Access-Control-Allow-Origin")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Origin")}}</li> + <li>{{HTTPHeader("Vary")}}</li> + <li><a href="/ja/docs/Web/HTTP/CORS">Cross-Origin Resource Sharing (CORS)</a></li> + <li>{{httpheader("Cross-Origin-Resource-Policy")}}</li> +</ul> diff --git a/files/ja/web/http/headers/access-control-expose-headers/index.html b/files/ja/web/http/headers/access-control-expose-headers/index.html new file mode 100644 index 0000000000..42c62b5b57 --- /dev/null +++ b/files/ja/web/http/headers/access-control-expose-headers/index.html @@ -0,0 +1,107 @@ +--- +title: Access-Control-Expose-Headers +slug: Web/HTTP/Headers/Access-Control-Expose-Headers +tags: + - CORS + - HTTP + - Reference + - ヘッダー + - リファレンス +translation_of: Web/HTTP/Headers/Access-Control-Expose-Headers +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Access-Control-Expose-Headers</code></strong> レスポンスヘッダーは、レスポンスの一部としてどのヘッダーを公開するかを、その名前を列挙して示します。</p> + +<p>既定では、公開される {{Glossary("CORS-safelisted response header", "CORS セーフリストレスポンスヘッダー")}}は7つだけです。</p> + +<ul> + <li>{{HTTPHeader("Cache-Control")}}</li> + <li>{{HTTPHeader("Content-Language")}}</li> + <li>{{HTTPHeader("Content-Length")}}</li> + <li>{{HTTPHeader("Content-Type")}}</li> + <li>{{HTTPHeader("Expires")}}</li> + <li>{{HTTPHeader("Last-Modified")}}</li> + <li>{{HTTPHeader("Pragma")}}</li> +</ul> + +<p>クライアントが他のヘッダーにアクセスできるようにするには、 <code>Access-Control-Expose-Headers</code> ヘッダーを使用してヘッダーを列挙する必要があります。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Access-Control-Expose-Headers: <header-name>, <header-name>, ... +Access-Control-Expose-Headers: * +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><header-name></dt> + <dd>ゼロ個以上の<a href="/ja/docs/Web/HTTP/Headers">ヘッダー名</a>の一覧で、 {{Glossary("CORS-safelisted response header", "CORS セーフリストレスポンスヘッダー")}}に含まれないものであり、リソースが使用する可能性があり、公開される可能性があるものです。</dd> + <dt><code>*</code> (ワイルドカード)</dt> + <dd>"<code>*</code>" の値は、資格情報のないリクエスト (<a href="/en-US/docs/Web/HTTP/Cookies">HTTP Cookie</a> や HTTP の資格情報のないリクエスト) の特殊なワイルドカード値です。資格情報付きのリクエストでは、特別な意味のない "<code>*</code>" というヘッダー名として扱われます。<br> + なお、 {{HTTPHeader("Authorization")}} ヘッダーはワイルドカードで表すことができず、常に明示的に列挙する必要があります。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<p>CORS セーフリストにないレスポンスヘッダーを公開するには、次のように指定します。</p> + +<pre>Access-Control-Expose-Headers: Content-Length</pre> + +<p><code>X-Kuma-Revision</code> のようなカスタムヘッダーをさらに公開するには、複数のヘッダーをカンマで区切って指定することができます。</p> + +<pre>Access-Control-Expose-Headers: Content-Length, X-Kuma-Revision</pre> + +<p>資格情報のないリクエストでは、ワイルドカード値を使うこともできます。</p> + +<pre>Access-Control-Expose-Headers: *</pre> + +<p>但し、 {{HTTPHeader("Authorization")}} ヘッダーはワイルドカードの対象にならないので、明示的に列挙する必要があります。</p> + +<pre>Access-Control-Expose-Headers: *, Authorization</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Fetch','#http-access-control-expose-headers', 'Access-Control-Expose-Headers')}}</td> + <td>{{Spec2("Fetch")}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Access-Control-Expose-Headers")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Access-Control-Allow-Headers")}}</li> + <li>{{HTTPHeader("Access-Control-Allow-Origin")}}</li> +</ul> diff --git a/files/ja/web/http/headers/access-control-max-age/index.html b/files/ja/web/http/headers/access-control-max-age/index.html new file mode 100644 index 0000000000..01ac17a758 --- /dev/null +++ b/files/ja/web/http/headers/access-control-max-age/index.html @@ -0,0 +1,81 @@ +--- +title: Access-Control-Max-Age +slug: Web/HTTP/Headers/Access-Control-Max-Age +tags: + - CORS + - HTTP + - Reference + - header +translation_of: Web/HTTP/Headers/Access-Control-Max-Age +--- +<p>{{HTTPSidebar}}</p> + +<p><strong><code>Access-Control-Max-Age</code></strong> レスポンスヘッダーは、{{glossary("preflight request", "プリフライトリクエスト")}}の結果 (つまり {{HTTPHeader("Access-Control-Allow-Methods")}} および {{HTTPHeader("Access-Control-Allow-Headers")}} ヘッダーに含まれる情報) をキャッシュすることができる時間の長さを示します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Access-Control-Max-Age: <delta-seconds> +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><delta-seconds></dt> + <dd>結果をキャッシュすることができる最長の秒数です。<br> + Firefox は<a href="https://dxr.mozilla.org/mozilla-central/rev/7ae377917236b7e6111146aa9fb4c073c0efc7f4/netwerk/protocol/http/nsCORSListenerProxy.cpp#1131">24時間</a> (86400秒) キャッシュすることができます。<br> + Chromium (v76 以前) は<a href="https://cs.chromium.org/chromium/src/services/network/public/cpp/cors/preflight_result.cc?l=36&rcl=52002151773d8cd9ffc5f557cd7cc880fddcae3e">10分</a> (600秒) です。<br> + Chromium (v76 以降) は<a href="https://cs.chromium.org/chromium/src/services/network/public/cpp/cors/preflight_result.cc?l=31&rcl=49e7c0b4886cac1f3d09dc046bd528c9c811a0fa">2時間</a> (7200秒) です。<br> + Chromium は既定値を5分に設定することもできます。<br> + <strong>-1</strong>の値はキャッシュを無効にし、すべての呼び出しをチェックするためにプリフライトの OPTIONS が必要になります。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<p>プリフライト要求の結果は10分間キャッシュされます。</p> + +<pre class="notranslate">Access-Control-Max-Age: 600 </pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Fetch','#http-access-control-max-age', 'Access-Control-Max-Age')}}</td> + <td>{{Spec2("Fetch")}}</td> + <td>初回定義。</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Access-Control-Max-Age")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Access-Control-Allow-Headers")}}</li> + <li>{{HTTPHeader("Access-Control-Allow-Methods")}}</li> +</ul> diff --git a/files/ja/web/http/headers/access-control-request-headers/index.html b/files/ja/web/http/headers/access-control-request-headers/index.html new file mode 100644 index 0000000000..bfac1b311f --- /dev/null +++ b/files/ja/web/http/headers/access-control-request-headers/index.html @@ -0,0 +1,73 @@ +--- +title: Access-Control-Request-Headers +slug: Web/HTTP/Headers/Access-Control-Request-Headers +tags: + - CORS + - HTTP + - Reference + - header +translation_of: Web/HTTP/Headers/Access-Control-Request-Headers +--- +<p>{{HTTPSidebar}}</p> + +<p><strong><code>Access-Control-Request-Headers</code></strong> リクエストヘッダーは{{glossary("preflight request", "プリフライトリクエスト")}}を発行する際にブラウザーが使用し、実際のリクエストが行う際にどの <a href="/ja/docs/Web/HTTP/Headers">HTTP ヘッダー</a>を使用するかをサーバーに知らせます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Access-Control-Request-Headers: <header-name>, <header-name>, ... +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><header-name></dt> + <dd>リクエストに含まれる <a href="/ja/docs/Web/HTTP/Headers">HTTP ヘッダー</a>のカンマ区切りのリスト。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre class="notranslate">Access-Control-Request-Headers: X-PINGOTHER, Content-Type</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Fetch','#http-access-control-request-headers', 'Access-Control-Request-Headers')}}</td> + <td>{{Spec2("Fetch")}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Access-Control-Request-Headers")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Access-Control-Request-Method")}}</li> +</ul> diff --git a/files/ja/web/http/headers/access-control-request-method/index.html b/files/ja/web/http/headers/access-control-request-method/index.html new file mode 100644 index 0000000000..70edb0736b --- /dev/null +++ b/files/ja/web/http/headers/access-control-request-method/index.html @@ -0,0 +1,73 @@ +--- +title: Access-Control-Request-Method +slug: Web/HTTP/Headers/Access-Control-Request-Method +tags: + - CORS + - HTTP + - Reference + - header +translation_of: Web/HTTP/Headers/Access-Control-Request-Method +--- +<p>{{HTTPSidebar}}</p> + +<p><strong><code>Access-Control-Request-Method</code></strong> リクエストヘッダーは、{{glossary("preflight request", "プリフライトリクエスト")}}を発行する際にブラウザーが使用し、実際のリクエストが行われた際にどの HTTP メソッドが使用されるかをサーバーに知らせるために使用されます。プリフライトリクエストは常に OPTIONS であり、実際のリクエストとは同じメソッドを使用しないため、このヘッダーが必要です。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Access-Control-Request-Method: <method> +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><method></dt> + <dd><a href="/ja/docs/Web/HTTP/Methods">HTTP リクエストメソッド</a>の1つ。例えば {{HTTPMethod("GET")}}, {{HTTPMethod("POST")}}, {{HTTPMethod("DELETE")}} など。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre class="notranslate">Access-Control-Request-Method: POST</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Fetch','#http-access-control-request-method', 'Access-Control-Request-Method')}}</td> + <td>{{Spec2("Fetch")}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Access-Control-Request-Method")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Access-Control-Request-Headers")}}</li> +</ul> diff --git a/files/ja/web/http/headers/age/index.html b/files/ja/web/http/headers/age/index.html new file mode 100644 index 0000000000..f495fa7f7f --- /dev/null +++ b/files/ja/web/http/headers/age/index.html @@ -0,0 +1,74 @@ +--- +title: Age +slug: Web/HTTP/Headers/Age +tags: + - Caching + - HTTP + - ヘッダー + - レスポンス +translation_of: Web/HTTP/Headers/Age +--- +<div>{{HTTPSidebar}}</div> + +<p><code><strong>Age</strong></code> ヘッダーには、プロキシーのキャッシュに入ってからの経過時間(秒)が含まれています。</p> + +<p><code>Age</code> ヘッダーは通常0に近い値となっています。もし <code>Age: 0</code> であるなら、 おそらくオリジンサーバーからフェッチされただけでしょう。 それ以外の場合は、一般的にプロキシーの現在の日時とHTTPレスポンスに含まれていた{{HTTPHeader("Date")}} ヘッダーとの差分から算出されます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header","レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="構文">構文</h2> + +<pre class="syntaxbox">Age: <delta-seconds> +</pre> + +<h2 id="ディレクティブ">ディレクティブ</h2> + +<dl> + <dt><delta-seconds></dt> + <dd> + <p>オブジェクトがプロキシキャッシュに入っていた時間 (秒単位) を表す負でない整数。</p> + </dd> +</dl> + +<h2 id="例">例</h2> + +<pre>Age: 24</pre> + +<h2 id="仕様">仕様</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様書</th> + <th scope="col">タイトル</th> + </tr> + <tr> + <td>{{RFC("7234", "Age", "5.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Caching</td> + </tr> + </tbody> +</table> + +<h2 id="ブラウザの互換性">ブラウザの互換性</h2> + +<p class="hidden">このページの互換表は構造化データから生成されます。データに貢献したい場合は <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックし、プルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Age")}}</p> + +<h2 id="関連情報">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Cache-Control")}}</li> + <li>{{HTTPHeader("Expires")}}</li> +</ul> diff --git a/files/ja/web/http/headers/allow/index.html b/files/ja/web/http/headers/allow/index.html new file mode 100644 index 0000000000..62098566bd --- /dev/null +++ b/files/ja/web/http/headers/allow/index.html @@ -0,0 +1,67 @@ +--- +title: Allow +slug: Web/HTTP/Headers/Allow +tags: + - Entity header + - HTTP + - HTTP Header + - Reference + - header +translation_of: Web/HTTP/Headers/Allow +--- +<div>{{HTTPSidebar}}</div> + +<p><code><strong>Allow</strong></code> ヘッダーは、あるリソースが対応しているメソッドの一覧を示します。</p> + +<p>このヘッダーは、サーバーが {{HTTPStatus("405")}} <code>Method Not Allowed</code> ステータスコードで返答する場合、使用することができるリクエストメソッドを示すために送信する必要があります。 <code>Allow</code> ヘッダーが空である場合、リソースが許可しているリクエストメソッドがないことを示し、例えば指定されたリソースにおいて一時的に発生する可能性があります。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Entity header", "エンティティヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name","禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Allow: <http-methods> +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><http-methods></dt> + <dd>許可されている <a href="/ja/docs/Web/HTTP/Methods">HTTP リクエストメソッド</a>の一覧。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre class="notranslate">Allow: GET, POST, HEAD</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + </tr> + <tr> + <td>{{RFC("7231", "Allow", "7.4.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </thead> +</table> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPStatus("405")}}</li> + <li>{{HTTPHeader("Server")}}</li> +</ul> diff --git a/files/ja/web/http/headers/alt-svc/index.html b/files/ja/web/http/headers/alt-svc/index.html new file mode 100644 index 0000000000..b0630eecf0 --- /dev/null +++ b/files/ja/web/http/headers/alt-svc/index.html @@ -0,0 +1,72 @@ +--- +title: Alt-Svc +slug: Web/HTTP/Headers/Alt-Svc +tags: + - HTTP + - HTTP Header + - NeedsCompatTable + - Reference +translation_of: Web/HTTP/Headers/Alt-Svc +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Alt-Svc</code></strong> は HTTP のレスポンスヘッダーで、同じリソースに到達できる代替サービスを宣伝するために使用します。 代替サービスは、プロトコル/ホスト/ポートの組み合わせによって定義します。</p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Alt-Svc: clear +Alt-Svc: <var><protocol-id></var>=<em><alt-authority></em>; ma=<var><max-age></var> +Alt-Svc: <var><protocol-id></var>=<em><alt-authority></em>; ma=<var><max-age></var>; persist=1</pre> + +<dl> + <dt><code>clear</code></dt> + <dd>特別な値 <code>clear</code> は、そのオリジンのすべての代替を無効にすることをオリジンが要求することを示します。</dd> + <dt><code><protocol-id></code></dt> + <dd>{{Glossary("ALPN")}} プロトコル識別子。 例には、HTTP/2 の h2 および HTTP/3 プロトコルのドラフト 25 の h3-25 が含まれています。</dd> + <dt><code><alt-authority></code></dt> + <dd>任意のホストのオーバーライド、コロン、および必須のポート番号で構成される代替機関を指定する引用符付きの文字列。</dd> + <dt><code>ma=<max-age></code>{{Optional_Inline}}</dt> + <dd>代替サービスが新鮮であると見なす秒数。 省略した場合のデフォルトは24時間です。 代替サービスのエントリは、最大で <em><max-age></em> から({{ httpheader("Age") }} ヘッダーからの)レスポンスの経過時間を差し引いた秒数までキャッシュできます。 キャッシュされたエントリが期限切れになると、クライアントは新しい接続にこの代替サービスを使用できなくなります。</dd> + <dt><code>persist=1</code>{{Optional_Inline}}</dt> + <dd>通常、キャッシュされた代替サービスエントリは、ネットワーク構成の変更時にクリアされます。 persist=1 パラメータを使用すると、そのような変更によってエントリが削除されなくなります。</dd> +</dl> + +<p>区切り文字としてカンマを使用して、単一の <code>Alt-Svc</code> ヘッダーで複数のエントリを指定できます。 その場合、早期のエントリーがより望ましいと考えられます。</p> + +<h2 id="Example" name="Example">例</h2> + +<pre class="notranslate">Alt-Svc: h2=":443"; ma=2592000; +Alt-Svc: h2=":443"; ma=2592000; persist=1 +Alt-Svc: h2="alt.example.com:443", h2=":443" +Alt-Svc: h3-25=":443"; ma=3600, h2=":443"; ma=3600</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC(7838)}}</td> + <td><span class="spec-RFC">IETF RFC</span></td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Alt-Svc")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="/ja/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web">ウェブ上のリソースの識別</a></li> +</ul> diff --git a/files/ja/web/http/headers/authorization/index.html b/files/ja/web/http/headers/authorization/index.html new file mode 100644 index 0000000000..eb2c53a8a2 --- /dev/null +++ b/files/ja/web/http/headers/authorization/index.html @@ -0,0 +1,92 @@ +--- +title: Authorization +slug: Web/HTTP/Headers/Authorization +tags: + - HTTP + - HTTP ヘッダー + - ヘッダー + - リクエストヘッダー + - リファレンス +translation_of: Web/HTTP/Headers/Authorization +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の <strong><code>Authorization</code></strong> 要求ヘッダーは、ユーザーエージェントがサーバーから認証を受けるための証明書を保持し、ふつうはサーバーが {{HTTPStatus("401")}} <code>Unauthorized</code> 状態と {{HTTPHeader("WWW-Authenticate")}} ヘッダーを返した後に使われます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Authorization: <type> <credentials></pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><type></dt> + <dd><a href="/ja/docs/Web/HTTP/Authentication#Authentication_schemes">認証の種類</a>。一般的には <a href="/ja/docs/Web/HTTP/Authentication#Basic_authentication_scheme">"Basic"</a> です。それ以外の種類は以下に記述されています。 + <ul> + <li><a href="http://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml">認証方法の IANA レジストリ</a></li> + <li><a href="http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html">AWS サーバーの認証 (<code>AWS4-HMAC-SHA256</code>)</a></li> + </ul> + </dd> + <dt><credentials></dt> + <dd>"Basic" 認証方式を使用している場合、認証情報は次のように構築されます。 + <ul> + <li>コロンで結合したユーザー名とパスワード (<code>aladdin:opensesame</code>)。</li> + <li>結果の文字列は <a href="/ja/docs/Web/API/WindowBase64/Base64_encoding_and_decoding">Base64</a> でエンコードされます (<code>YWxhZGRpbjpvcGVuc2VzYW1l</code>)。</li> + </ul> + + <div class="note"> + <p><strong>メモ</strong>: Base64 エンコードは暗号化でもハッシュでもありません。この方法の安全性はクリアテキストで認証情報を送るのと同等です (Base64 は可逆エンコーディングです)。 Basic 認証は HTTPS との組み合わせで使用することをお勧めします。</p> + </div> + </dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l +</pre> + +<p>Apache や nginx サーバーで HTTP Basic 認証を使用してサイトを保護する方法の例については、 <a href="/ja/docs/Web/HTTP/Authentication">HTTP authentication</a> を参照してください。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7235", "Authorization", "4.2")}}</td> + <td>HTTP/1.1: Authentication</td> + </tr> + <tr> + <td>{{RFC("7617")}}</td> + <td>The 'Basic' HTTP Authentication Scheme</td> + </tr> + </tbody> +</table> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="/ja/docs/Web/HTTP/Authentication">HTTP 認証</a></li> + <li>{{HTTPHeader("WWW-Authenticate")}}</li> + <li>{{HTTPHeader("Proxy-Authorization")}}</li> + <li>{{HTTPHeader("Proxy-Authenticate")}}</li> + <li>{{HTTPStatus("401")}}, {{HTTPStatus("403")}}, {{HTTPStatus("407")}}</li> +</ul> diff --git a/files/ja/web/http/headers/cache-control/index.html b/files/ja/web/http/headers/cache-control/index.html new file mode 100644 index 0000000000..c0de619b14 --- /dev/null +++ b/files/ja/web/http/headers/cache-control/index.html @@ -0,0 +1,230 @@ +--- +title: Cache-Control +slug: Web/HTTP/Headers/Cache-Control +tags: + - Cache-Control + - HTTP + - HTTP ヘッダー + - Reference + - 一般ヘッダー +translation_of: Web/HTTP/Headers/Cache-Control +--- +<div>{{HTTPSidebar}}</div> + +<p><span class="seoSummary"><strong><code>Cache-Control</code></strong> は HTTP のヘッダーで、リクエストとレスポンスの両方で<a href="/ja/docs/Web/HTTP/Caching">キャッシュ</a>のための<em>ディレクティブ</em> (指示) が格納されています。リクエストで指定されたディレクティブは、レスポンスでも同じディレクティブを使用しなければならないということではありません。</span></p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("General header", "一般ヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + <tr> + <th scope="row">{{Glossary("CORS-safelisted response header", "CORS セーフリストレスポンスヘッダー")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p>キャッシュのディレクティブには、以下のような規則があります。</p> + +<ul> + <li>大文字小文字の区別はありませんが、小文字が推奨されています。</li> + <li>複数のディレクティブはカンマで区切ります。</li> + <li>ディレクティブによってはオプションの引数があり、<em>トークン</em>または <em>quoted-string</em> のどちらかで指定します。 (定義については仕様書を参照)</li> +</ul> + +<h3 id="Cache_request_directives" name="Cache_request_directives">リクエスト時のキャッシュディレクティブ</h3> + +<p>クライアントからの HTTP リクエストで使用される可能性がある、標準的な <code>Cache-Control</code> ディレクティブです。</p> + +<pre class="syntaxbox notranslate">Cache-Control: max-age=<seconds> +Cache-Control: max-stale[=<seconds>] +Cache-Control: min-fresh=<seconds> +Cache-Control: no-cache +Cache-Control: no-store +Cache-Control: no-transform +Cache-Control: only-if-cached +</pre> + +<h3 id="Cache_response_directives" name="Cache_response_directives">レスポンス時のキャッシュディレクティブ</h3> + +<p>サーバーからの HTTP レスポンスで使用される可能性がある、標準的な <code>Cache-Control</code> ディレクティブです。</p> + +<pre class="syntaxbox notranslate">Cache-Control: must-revalidate +Cache-Control: no-cache +Cache-Control: no-store +Cache-Control: no-transform +Cache-Control: public +Cache-Control: private +Cache-Control: proxy-revalidate +Cache-Control: max-age=<seconds> +Cache-Control: s-maxage=<seconds> +</pre> + +<h3 id="Extension_Cache-Control_directives" name="Extension_Cache-Control_directives">Cache-Control ディレクティブの拡張</h3> + +<p><code>Cache-Control</code> ディレクティブの拡張は、 HTTP キャッシュ標準のコアドキュメントには含まれていません。対応状況については<a href="#Browser_compatibility">互換性一覧表</a>を確認してください。解釈できないユーザーエージェントはこれらを無視します。</p> + +<pre class="syntaxbox notranslate">Cache-Control: immutable +Cache-Control: stale-while-revalidate=<seconds> +Cache-Control: stale-if-error=<seconds> +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<h3 id="Cacheability" name="Cacheability">キャッシュ可能性</h3> + +<p>ブラウザーがレスポンスをキャッシュするのは通常以下の場合です。</p> + +<ul> + <li>ステータスコードが {{HTTPStatus("301")}}, {{HTTPStatus("302")}}, {{HTTPStatus("307")}}, {{HTTPStatus("308")}}, {{HTTPStatus("410")}} の何れかで、<strong>かつ</strong></li> + <li><code>Cache-Control</code> に <code>no-store</code> がないか、 もし<em>プロキシの場合は</em> <code>private</code> がなく、 <strong>かつ</strong></li> + <li>{{HTTPHeader("Authorization")}} が設定されていない</li> + <li>以下の何れかに該当する場合 + <ul> + <li>ステータスコードが {{HTTPStatus("301")}}, {{HTTPStatus("302")}}, {{HTTPStatus("307")}}, {{HTTPStatus("308")}}, {{HTTPStatus("410")}} の何れか、<strong>または</strong></li> + <li><code>public</code>, <code>max-age</code> <code>s-maxage</code> の何れかが <code>Cache-Control</code> に指定されている、<strong>または</strong></li> + <li>{{HTTPHeader("Expires")}} が設定されている</li> + </ul> + </li> +</ul> + +<dl> + <dt><code>public</code></dt> + <dd>レスポンスが通常はキャッシュ可能でなくても、レスポンスを<em>どの</em>キャッシュにも格納することができます。</dd> + <dt><code>private</code></dt> + <dd>レスポンスが通常はキャッシュ可能でなくても、<em>ブラウザーの</em>キャッシュにのみ格納することができます。<strong>レスポンスがどのキャッシュにも保存されないようにするには、代わりに <code>no-store</code> を使用してください。</strong><em>このディレクティブにはレスポンスがキャッシュに保存されないようにする効果はありません。</em></dd> + <dt><code>no-cache</code></dt> + <dd>レスポンスが通常はキャッシュ可能でなくても、レスポンスを<em>どの</em>キャッシュにも格納することができます。しかし、格納されたレスポンスは使用する前に<em>常に</em>元のサーバーとの検証を通さなければならないので、 <code>no-cache</code> を <code>immutable</code> と組み合わせて使用することはできません。<strong>レスポンスがどのキャッシュにも保存されないようにするには、代わりに <code>no-store</code> を使用してください。</strong><em>このディレクティブにはレスポンスがキャッシュに保存されないようにする効果はありません。</em></dd> + <dt><code>no-store</code></dt> + <dd>レスポンスをキャッシュに保存することは<strong>できません</strong>。他のディレクティブを設定することもできますが、最近のブラウザーでは<em>レスポンスがキャッシュされることを防ぐために必要なディレクティブはこれだけ</em>です。 <code>max-age=0</code> <strong>が暗黙で含まれます</strong>。 <code>must-revalidate</code> <strong>は意味を持ちません</strong>。再検証を行うにはレスポンスがキャッシュに格納されている必要がありますが、 <code>no-store</code> はこれを抑止するからです。</dd> +</dl> + +<h3 id="Expiration" name="Expiration">有効期限</h3> + +<dl> + <dt><code>max-age=<seconds></code></dt> + <dd>リソースが新しいとみなされる最長の時間です。 <code>Expires</code> とは異なり、このディレクティブはリクエスト時刻からの相対時間です。</dd> + <dt><code>s-maxage=<seconds></code></dt> + <dd><code>max-age</code> または <code>Expires</code> ヘッダーを上書きしますが、共有キャッシュ (プロキシなど) だけのためのものです。プライベートキャッシュでは無視されます。</dd> + <dt><code>max-stale[=<seconds>]</code></dt> + <dd>クライアントが古くなったレスポンスを受け入れることを示します。オプションの値は秒単位で、クライアントが受け入れる古さの上限を示します。</dd> + <dt><code>min-fresh=<seconds></code></dt> + <dd>クライアントが、<em>少なくとも</em>指定された秒数の間は新しいままのレスポンスを要求していることを示します。</dd> + <dt><code>stale-while-revalidate=<seconds></code> {{Experimental_Inline}}</dt> + <dd>クライアントが古いレスポンスを受け入れ、新しいレスポンスをバックグラウンドで非同期にチェックすることを示します。 <em>seconds</em> の値は、クライアントが古いレスポンスを受け入れる時間を示します。詳細については、「<a href="https://web.dev/stale-while-revalidate">Keeping things fresh with <code>stale-while-revalidate</code></a>」を参照してください。</dd> + <dt><code>stale-if-error=<seconds></code> {{Experimental_Inline}}</dt> + <dd>新しいレスポンスのチェックに失敗した場合に、クライアントが古いレスポンスを受け入れることを示します。 <em>seconds</em> の値は、当初の有効期限が切れた後に、クライアントが古いレスポンスを受け入れる時間を示します。</dd> +</dl> + +<h3 id="Revalidation_and_reloading" name="Revalidation_and_reloading">再検証と再読み込み</h3> + +<dl> + <dt><code>must-revalidate</code></dt> + <dd>一度リソースが古くなると、キャッシュは元のサーバーでの<a href="/ja/docs/Web/HTTP/Caching#Cache_validation">検証</a>が成功しない限り、古くなったコピーを使用してはならないことを示します。</dd> + <dt><code>proxy-revalidate</code></dt> + <dd><code>must-revalidate</code> と似ていますが、共有キャッシュ (プロキシなど) にのみ適用されます。プライベートキャッシュでは無視されます。</dd> + <dt><code>immutable</code></dt> + <dd>時間が経ってもレスポンスの本文が<strong>変化しない</strong>ことを示します。リソースは、<em>期限切れでない限り</em>、サーバー上で変化していないため、クライアントは、たとえユーザーが明示的にページを更新した場合でも、更新をチェックするために条件付きの再検証 (<code>If-None-Match</code> や <code>If-Modified-Since</code> など) を送ってはいけません。この拡張機能を実装していないクライアントは、 HTTP の仕様に従ってこれらの拡張機能を無視しなければなりません。 Firefox では、 <code>immutable</code> は <code>https://</code> トランザクションでのみ有効です。詳しくは、こちらの<a href="https://bitsup.blogspot.de/2016/05/cache-control-immutable.html">ブログ記事</a>を参照してください。</dd> +</dl> + +<h3 id="Other" name="Other">その他</h3> + +<dl> + <dt><code>no-transform</code></dt> + <dd>中間キャッシュやプロキシが、レスポンスの本文、 {{HTTPHeader("Content-Encoding")}}, {{HTTPHeader("Content-Range")}}, {{HTTPHeader("Content-Type")}} を変更してはいけません。したがって、 <a href="https://support.google.com/webmasters/answer/6211428">Google’s Web Light</a> のようなプロキシやブラウザーの機能を使用して、キャッシュの格納や遅いコネクションにおいてデータを最小化するために画像を変換してはいけません。</dd> + <dt><code>only-if-cached</code></dt> + <dd><em>クライアント</em>によって設定され、レスポンスのために「ネットワークを使用しない」ことを示します。キャッシュは、保存されたレスポンスを使用して応答するか、 {{HTTPStatus("504")}} ステータスコードで応答する必要があります。 <code>If-None-Match</code> などの条件付きヘッダーは設定すべきではありません。サーバーがレスポンスの一部として <code>only-if-cached</code> を設定しても効果はありません。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Preventing_caching" name="Preventing_caching">キャッシュの防止</h3> + +<p>リソースのキャッシュを無効にするには、以下のレスポンスヘッダーを送ることができます。</p> + +<dl> + <dt>良い例:</dt> + <dd> + <pre class="example-good brush: http no-line-numbers notranslate">Cache-Control: no-store</pre> + + <div class="blockIndicator note"> + <p> <code>no-store</code> ディレクティブは、新しいリソースがキャッシュされることを防ぎますが、過去のリクエストの結果としてキャッシュ済みの古いリソースが応答するのを防ぐことはできません。 <code>max-age=0</code> を設定すると、キャッシュが強制的に再検証されます(キャッシュがクリアされます)。</p> + + <pre class="syntaxbox notranslate">Cache-Control: no-store, max-age=0 +</pre> + </div> + </dd> + <dt>悪い例:</dt> + <dd> + <pre class="example-bad brush: http no-line-numbers notranslate">Cache-Control: private,no-cache,no-store,max-age=0,must-revalidate,pre-check=0,post-check=0</pre> + </dd> +</dl> + +<h3 id="Caching_static_assets" name="Caching_static_assets">静的な資産のキャッシュ</h3> + +<p>変更されないアプリケーション内のファイルについては、通常、以下のレスポンスヘッダーを送信することで積極的にキャッシュを行うことができます。これには、例えば画像、 CSS ファイル、 JavaScript ファイルなど、アプリケーションによって提供される静的なファイルが含まれます。加えて、 {{HTTPHeader("Expires")}} ヘッダーも参照してください。</p> + +<pre class="brush: http no-line-numbers notranslate">Cache-Control: public, max-age=604800, immutable +</pre> + +<h3 id="Requiring_revalidation" name="Requiring_revalidation">再検証の要求</h3> + +<p><code>no-cache</code> または <code>max-age=0</code> を指定すると、クライアントはリソースをキャッシュすることができ、それを使用する前に毎回再検証をしなければならないことを示します。これは、 HTTP リクエストが毎回発生することを意味しますが、コンテンツが有効であれば、 HTTP 本文のダウンロードを飛ばすことができます。</p> + +<pre class="brush: http no-line-numbers notranslate">Cache-Control: no-cache +Cache-Control: no-cache, max-age=0 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC(8246, "HTTP Immutable Responses")}}</td> + <td><span class="spec-RFC">IETF RFC</span></td> + <td></td> + </tr> + <tr> + <td>{{RFC(7234, "Hypertext Transfer Protocol (HTTP/1.1): Caching")}}</td> + <td><span class="spec-RFC">IETF RFC</span></td> + <td></td> + </tr> + <tr> + <td>{{RFC(5861, "HTTP Cache-Control Extensions for Stale Content")}}</td> + <td><span class="spec-RFC">IETF RFC</span></td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Cache-Control")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="/ja/docs/Web/HTTP/Caching_FAQ">HTTP キャッシュ FAQ</a></li> + <li><a href="https://www.mnot.net/cache_docs/">Caching Tutorial for Web Authors and Webmasters</a></li> + <li>Guide: <em><a href="https://csswizardry.com/2019/03/cache-control-for-civilians"><code>Cache-Control</code> for civilians</a></em></li> + <li>{{HTTPHeader("Age")}}</li> + <li>{{HTTPHeader("Expires")}}</li> + <li>{{HTTPHeader("Pragma")}}</li> +</ul> diff --git a/files/ja/web/http/headers/clear-site-data/index.html b/files/ja/web/http/headers/clear-site-data/index.html new file mode 100644 index 0000000000..9357426f38 --- /dev/null +++ b/files/ja/web/http/headers/clear-site-data/index.html @@ -0,0 +1,117 @@ +--- +title: Clear-Site-Data +slug: Web/HTTP/Headers/Clear-Site-Data +tags: + - HTTP + - HTTP Header + - HTTP ヘッダー + - Reference + - Response Header + - ヘッダー + - リファレンス + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/Clear-Site-Data +--- +<p>{{HTTPSidebar}}</p> + +<p><strong><code>Clear-Site-Data</code></strong> ヘッダーは、リクエストしているウェブサイトに関連付けられた閲覧用データ (クッキー、ストレージ、キャッシュ) を消去します。ウェブ開発者がそのオリジンのためにブラウザーがローカルに保存したデータをより制御できます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p><code>Clear-Site-Data</code> ヘッダーは、1つまたは複数のディレクティブを受け付けます。すべての種類のデータを消去する場合は、ワイルドカードのディレクティブ (<code>"*"</code>) を使用することができます。</p> + +<pre class="notranslate">// 単一のディレクティブ +Clear-Site-Data: "cache" + +// 複数のディレクティブ (カンマ区切り) +Clear-Site-Data: "cache", "cookies" + +// ワイルドカード +Clear-Site-Data: "*" +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<p class="note">すべてのディレクティブは<a href="https://tools.ietf.org/html/rfc7230#section-3.2.6">引用符で囲まれた文字列の文法r</a>に従わなければなりません。二重引用符を含まないディレクティブは無効です。</p> + +<dl> + <dt id="cache"><code>"cache"</code></dt> + <dd>サーバーが、レスポンス URL のオリジンに関するローカルにキャッシュされたデータ (つまり、ブラウザーキャッシュ、<a href="/ja/docs/Web/HTTP/Caching">HTTP キャッシュ</a>を参照) の消去を望んでいることを示します。ブラウザーによっては、予備レンダリングページ、スクリプトキャッシュ、 WebGL シェーダーキャッシュ、アドレスバーのサジェスト等のようなものも消去します。</dd> + <dt id="cookies"><code>"cookies"</code></dt> + <dd>サーバーが、レスポンス URL のオリジンに関するすべてのクッキーの消去を望んでいることを示します。これは登録されたドメインにサブドメインを含め影響します。ですから、 https://example.com と同様に https://stage.example.com のクッキーも消去されます。</dd> + <dt id="storage"><code>"storage"</code></dt> + <dd>サーバーが、レスポンス URL のオリジンに関するすべての DOM ストレージの消去を望んでいることを示します。これは以下のようなストレージ機構を含みます。 + <ul> + <li>localStorage (<code>localStorage.clear</code> を実行)</li> + <li>sessionStorage (<code>sessionStorage.clear</code> を実行)</li> + <li>IndexedDB (それぞれのデータベースに {{domxref("IDBFactory.deleteDatabase")}} を実行)</li> + <li>サービスワーカーの登録 (登録されたそれぞれのサービスワーカーに対して、 {{domxref("ServiceWorkerRegistration.unregister")}} を実行)</li> + <li><a href="/ja/docs/Web/HTML/Using_the_application_cache">AppCache</a></li> + <li>WebSQL データベース</li> + <li><a href="/ja/docs/Web/API/File_and_Directory_Entries_API">FileSystem API のデータ</a></li> + <li>プラグインのデータ (<code><a href="https://wiki.mozilla.org/NPAPI:ClearSiteData">NPP_ClearSiteData</a></code> によって消去)</li> + </ul> + </dd> + <dt id="executionContexts"><code>"executionContexts"</code></dt> + <dd>サーバーが、レスポンスのオリジンに関するすべての閲覧コンテキストの再読み込みを望んでいることを示します。 ({{domxref("Location.reload")}})</dd> + <dt><code>"*"</code> (ワイルドカード)</dt> + <dd>サーバーが、レスポンスのオリジンに関するすべての種類のデータの消去を望んでいることを示します。このヘッダーの将来のバージョンでデータの種類が追加された場合、それも消去します。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Sign_out_of_web_site" name="Sign_out_of_web_site">ウェブサイトのログアウト</h3> + +<p>ユーザーがウェブサイトやサービスからログアウトした場合、ローカルに保存されているデータを削除したい場合があります。サイトからのログアウトが正常に完了したことを確認するページ (https://example.com/logout など)を送信する際に <code>Clear-Site-Data</code> ヘッダーを追加することで、これを実現することができます。</p> + +<pre class="notranslate">Clear-Site-Data: "cache", "cookies", "storage", "executionContexts"</pre> + +<h3 id="Clearing_cookies" name="Clearing_cookies">クッキーの消去</h3> + +<p>以下のヘッダーが https://example.com/clear-cookies のレスポンスで配信された場合、同じドメイン https://example.com 及びあらゆるサブドメイン (https://stage.example.com など) が消去されます。</p> + +<pre class="notranslate">Clear-Site-Data: "cookies"</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="https://w3c.github.io/webappsec-clear-site-data">Clear Site Data</a></td> + <td>Working Draft</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Clear-Site-Data")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Cache-Control")}}</li> +</ul> diff --git a/files/ja/web/http/headers/connection/index.html b/files/ja/web/http/headers/connection/index.html new file mode 100644 index 0000000000..de5d3b5f91 --- /dev/null +++ b/files/ja/web/http/headers/connection/index.html @@ -0,0 +1,53 @@ +--- +title: Connection +slug: Web/HTTP/Headers/Connection +tags: + - Connection + - HTTP + - Reference + - Web + - ヘッダー + - 一般ヘッダー +translation_of: Web/HTTP/Headers/Connection +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Connection</code></strong> 一般ヘッダーは、現在のトランザクションが完了したあとも、ネットワーク接続を開いたままにするかどうかを制御します。もし送信された値が <code>keep-alive</code> であった場合は、接続が維持されて閉じられなくなり、同一のサーバーに送るべき後続のリクエストで再利用されます。</p> + +<div class="note"><a href="https://tools.ietf.org/html/rfc7540#section-8.1.2.2"><code>Connection</code> などの接続固有のヘッダーフィールドは HTTP/2 で使用しないでください。</a></div> + +<p>標準のホップバイホップヘッダー ({{HTTPHeader("Keep-Alive")}}, {{HTTPHeader("Transfer-Encoding")}}, {{HTTPHeader("TE")}}, {{HTTPHeader("Connection")}}, {{HTTPHeader("Trailer")}}, {{HTTPHeader("Upgrade")}}, {{HTTPHeader("Proxy-Authorization")}}, {{HTTPHeader("Proxy-Authenticate")}}) に対しては別の用途でこのヘッダーが利用されます。この <code>Connection</code> ヘッダーにはカンマ区切りで、これらのホップバイホップヘッダーの名前が設定されます。このヘッダーに列挙されたヘッダーは最初のプロキシーで消費されるべきもの、という指示になり、後続のサーバーには転送されなくなります。標準のホップバイホップヘッダーの名前をカンマ区切りのリストに入れることができます (ほとんどの場合では {{HTTPHeader("Keep-Alive")}} が設定されますが、これは必須ではありません)。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("General header", "一般ヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Connection: keep-alive +Connection: close +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code>close</code></dt> + <dd>クライアントあるいはサーバーが接続を閉じたい意思を表明します。これは HTTP/1.0 リクエストの既定の動作です。</dd> + <dt>カンマ区切りの HTTP ヘッダーのリスト [通常は <code>keep-alive</code> のみ]</dt> + <dd>クライアント側が接続を維持したい意思があることを表明します。接続の維持は HTTP/1.1 のデフォルトの動作です。ヘッダー名のリストは、接続の間に挟まる、最初の非透過プロキシーやキャッシュが削除すべきヘッダー名です。これらのヘッダーは最終的な宛先ノードではなく、送信者と最初のエンティティ間の接続の定義に利用します。</dd> +</dl> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Connection")}}</p> diff --git a/files/ja/web/http/headers/content-disposition/index.html b/files/ja/web/http/headers/content-disposition/index.html new file mode 100644 index 0000000000..188bba560a --- /dev/null +++ b/files/ja/web/http/headers/content-disposition/index.html @@ -0,0 +1,136 @@ +--- +title: Content-Disposition +slug: Web/HTTP/Headers/Content-Disposition +tags: + - HTTP + - Reference + - header +translation_of: Web/HTTP/Headers/Content-Disposition +--- +<div>{{HTTPSidebar}}</div> + +<p>通常の HTTP レスポンスにおける <code><strong>Content-Disposition</strong></code> レスポンスヘッダーは、コンテンツがブラウザーで<em>インライン</em>で表示されることを求められているか、つまり、ウェブページとして表示するか、ウェブページの一部として表示するか、ダウンロードしてローカルに保存する<em>添付ファイル</em>とするかを示します。</p> + +<p>本文が <code>multipart/form-data</code> である場合、 <strong><code>Content-Disposition</code></strong> ヘッダーは、マルチパートを構成する各サブパートに付与され、そのフィールドに関する情報を示します。サブパートは{{HTTPHeader("Content-Type")}} ヘッダーで定義された <em>boundary</em> によって区切られます。マルチパートの本文自体に付与した場合、 <code>Content-Disposition</code> は何の意味も持ちません。</p> + +<p><code>Content-Disposition</code> ヘッダーはメールにおける MIME メッセージのより広い用途で定義されたものですが、 HTTP のフォームと {{HTTPMethod("POST")}} リクエストに利用可能な引数は一部だけです。ヘッダーの値である <code>form-data</code> と、省略可能なディレクティブ <code>name</code> と <code>filename</code> のみが HTTP の用途で使用することができます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}} (本文の場合)<br> + {{Glossary("General header", "一般ヘッダー")}} (マルチパート本文の一部の場合)</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<h3 id="As_a_response_header_for_the_main_body" name="As_a_response_header_for_the_main_body">本文に適用するレスポンスヘッダーとして</h3> + +<p>この用法では、<code>inline</code> (既定値。ウェブページの一部として、またはウェブページとして表示可能であることを示します)、もしくは <code>attachment</code> (ダウンロードすべきであることを示します。多くのブラウザーは <code>filename</code> 引数の値を使い、「名前を付けて保存」ダイアログを表示します) を最初の引数して指定します。</p> + +<pre class="syntaxbox notranslate">Content-Disposition: inline +Content-Disposition: attachment +Content-Disposition: attachment; filename="filename.jpg"</pre> + +<h3 id="As_a_header_for_a_multipart_body" name="As_a_header_for_a_multipart_body">マルチパート本文で使うヘッダーとして</h3> + +<p>この用法では最初の引数は常に <code>form-data</code> です。追加のパラメーターは大文字小文字を区別せず、 <code>'='</code> 記号に続けてクォートされた文字列で引数を指定します。複数の引数はセミコロン (<code>';'</code>) で区切ります。</p> + +<pre class="syntaxbox notranslate">Content-Disposition: form-data +Content-Disposition: form-data; name="fieldName" +Content-Disposition: form-data; name="fieldName"; filename="filename.jpg"</pre> + +<h3 id="Directives" name="Directives">ディレクティブ</h3> + +<dl> + <dt><code>name</code></dt> + <dd>このサブパートの内容が参照するフォームの HTML フィールドの名前を含む文字列が続きます。同じフィールド内の複数のファイルを扱う場合 (例えば、 <code>{{HTMLElement("input","<input type=\"file\">")}}</code> 要素の {{htmlattrxref("multiple", "input")}} 属性)、同じ名前を持つ複数のサブパートが存在することがあります。</dd> + <dd><code>name</code> の値が <code>'_charset_'</code> という値である場合は、その部分が HTML フィールドではなく、明示的な文字セット情報のない部分に使用される既定の文字セットであることを示します。</dd> + <dt><code>filename</code></dt> + <dd>送信された元のファイル名を含む文字列を指定します。このファイル名は常に任意であり、アプリケーションで使用する際は注意が必要です。例えばパス情報を取り除いたり、サーバーのファイルシステムに合わせてファイル名の変換を行ったりすべきです。この引数は、ほとんどの情報を提供します。 <code>Content-Disposition: attachment</code> と組み合わせて使用すると、ユーザーに表示される「名前を付けて保存」ダイアログの既定のファイル名として使用されます。</dd> + <dt><code>filename*</code></dt> + <dd> + <p>引数の <code>filename</code> と <code>filename*</code> の違いは、 <code>filename*</code> が <a href="https://tools.ietf.org/html/rfc5987">RFC 5987</a> で定義されているエンコーディングを使用するという点のみです。単一のヘッダーフィールドの値に <code>filename</code> と <code>filename*</code> の両方が存在する場合は、両方が解釈できる場合、 <code>filename*</code> が <code>filename</code> よりも優先されます。</p> + </dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<p>「ファイル名を付けて保存」ダイアログを起動するレスポンスです。</p> + +<pre class="notranslate">200 OK +Content-Type: text/html; charset=utf-8 +Content-Disposition: attachment; filename="cool.html" +Content-Length: 21 + +<HTML>Save me!</HTML> + +</pre> + +<p>このサンプル HTML ファイルは、ブラウザーに表示されるのではなく、通常のダウンロードとして保存されます。ほとんどのブラウザーは、 (既定で) <code>cool.html</code> というファイル名で保存することを提案します。</p> + +<p><code>multipart/form-data</code> 形式を使用して送信された HTML フォームの例で、 <code>Content-Disposition</code> ヘッダーを使用したものです。</p> + +<pre class="notranslate">POST /test.html HTTP/1.1 +Host: example.org +Content-Type: multipart/form-data;boundary="boundary" + +--boundary +Content-Disposition: form-data; name="field1" + +value1 +--boundary +Content-Disposition: form-data; name="field2"; filename="example.txt" + +value2 +--boundary--</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + <tr> + <td>{{RFC("7578")}}</td> + <td>Returning Values from Forms: multipart/form-data</td> + </tr> + <tr> + <td>{{RFC("6266")}}</td> + <td>Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)</td> + </tr> + <tr> + <td>{{RFC("2183")}}</td> + <td>Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Content-Disposition")}}</p> + +<h2 id="Compatibility_notes" name="Compatibility_notes">互換性の注意</h2> + +<ul> + <li>Firefox 5 は、 <code>Content-Disposition</code> レスポンスヘッダーで <code>filename</code> と <code>filename*</code> の両引数が提供されている場合、より効果的に処理します。 <code>filename</code> 引数が先にあった場合でも、提供されたすべての名前を調べ、利用可能な場合は <code>filename*</code> 引数を使用します。以前は、先に一致した引数がより適切な名前が使われていませんでした。 {{bug(588781)}} を参照してください。</li> +</ul> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="/ja/docs/Web/Guide/HTML/Forms">HTML Forms</a></li> + <li>{{HTTPHeader("Content-Type")}}: マルチパート本文の境界を定義</li> + <li>{{domxref("FormData")}} インターフェイス: {{domxref("XMLHttpRequest")}} API でフォームデータを操作するために使用</li> +</ul> diff --git a/files/ja/web/http/headers/content-encoding/index.html b/files/ja/web/http/headers/content-encoding/index.html new file mode 100644 index 0000000000..572f8c437e --- /dev/null +++ b/files/ja/web/http/headers/content-encoding/index.html @@ -0,0 +1,110 @@ +--- +title: Content-Encoding +slug: Web/HTTP/Headers/Content-Encoding +tags: + - HTTP + - HTTP ヘッダー + - Reference + - エンティティヘッダー + - ヘッダー + - リファレンス +translation_of: Web/HTTP/Headers/Content-Encoding +--- +<div>{{HTTPSidebar}}</div> + +<p> <strong><code>Content-Encoding</code></strong> エンティティヘッダーは、圧縮のメディア種別に使用します。存在する場合、値はエンティティ本体にどのエンコーディングが適用されているかを示します。これはクライアントに、 <code>Content-Type</code> ヘッダーで参照されるメディア種別を得るためにデコードする方法を知らせます。</p> + +<p>可能な限りデータを圧縮してこのフィールドを使用することを推奨しますが、 JPEG 画像などの一部のリソースは、すでに圧縮されています。時には、さらに圧縮をしても長さが短縮されないどころか、かえって長くなることもあります。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Entity header", "エンティティヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Content-Encoding: gzip +Content-Encoding: compress +Content-Encoding: deflate +Content-Encoding: identity +Content-Encoding: br + +// 複数の場合、適用された順序 +Content-Encoding: gzip, identity +Content-Encoding: deflate, gzip +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code>gzip</code></dt> + <dd><a class="external" href="http://en.wikipedia.org/wiki/LZ77_and_LZ78#LZ77">Lempel-Ziv coding</a> (LZ77) を使用し、32ビットの CRC が付いた形式です。これは UNIX の <em>gzip</em> プログラムの独自形式です。 HTTP/1.1 標準は、この Content-Encoding に対応するサーバーは、互換性の面から <code>x-gzip</code> もエイリアスとして解釈するよう推奨しています。</dd> + <dt><code>compress</code></dt> + <dd><a class="external" href="http://en.wikipedia.org/wiki/LZW">Lempel-Ziv-Welch</a> (LZW) アルゴリズムを使用した形式です。この値の名前は、このアルゴリズムを実装している UNIX の <em>compress</em> プログラムから取られました。特許問題 (2003年に期限切れ) を一因として、 compress プログラムが多くの UNIX ディストリビューションから削除されたのと同様に、この Content-Encoding は現在では多くのブラウザーから削除されています。</dd> + <dt><code>deflate</code></dt> + <dd><a class="external" href="http://en.wikipedia.org/wiki/Zlib">zlib</a> 構造 (<a class="external" href="http://tools.ietf.org/html/rfc1950">RFC 1950</a> で定義) の <a class="external" href="http://en.wikipedia.org/wiki/DEFLATE"><em>deflate</em></a> 圧縮アルゴリズム (<a class="external" href="http://tools.ietf.org/html/rfc1952">RFC 1951</a> で定義) を使用します。</dd> + <dt><code>identity</code></dt> + <dd>等価関数 (つまり、圧縮も変更もなし) を示します。このトークンは、明示的に指定された場合を除き、常に受け入れられます。</dd> + <dt><code>br</code></dt> + <dd> <a href="https://en.wikipedia.org/wiki/Brotli">Brotli</a> アルゴリズムを使用した形式です。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Compressing_with_gzip" name="Compressing_with_gzip">gzip での圧縮</h3> + +<p>クライアント側では、送信で使用してほしい圧縮方式のリストを HTTP 要求で示すことができます。 {{HTTPHeader("Accept-Encoding")}} ヘッダーを使用して、コンテンツのエンコード方式の交渉が行われます。</p> + +<pre>Accept-Encoding: gzip, deflate</pre> + +<p>サーバーは応答に使用したエンコード方式を、 <code>Content-Encoding</code> レスポンスヘッダーで示します。</p> + +<pre>Content-Encoding: gzip</pre> + +<p>なお、サーバーはどの圧縮方式も使用することを義務づけられていません。圧縮はサーバー設定や使用しているサーバージュールに強く依存します。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7932", "Brotli Compressed Data Format")}}</td> + <td>Brotli 圧縮データ形式</td> + </tr> + <tr> + <td>{{RFC("7231", "Content-Encoding", "3.1.2.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + <tr> + <td>{{RFC("2616", "Content-Encoding", "14.11")}}</td> + <td>Content-Encoding</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Content-Encoding")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Accept-Encoding")}}</li> + <li>{{HTTPHeader("Transfer-Encoding")}}</li> +</ul> diff --git a/files/ja/web/http/headers/content-language/index.html b/files/ja/web/http/headers/content-language/index.html new file mode 100644 index 0000000000..ae91ab8c9d --- /dev/null +++ b/files/ja/web/http/headers/content-language/index.html @@ -0,0 +1,105 @@ +--- +title: Content-Language +slug: Web/HTTP/Headers/Content-Language +tags: + - HTTP + - Headers + - Reference +translation_of: Web/HTTP/Headers/Content-Language +--- +<p>{{HTTPSidebar}}</p> + +<p><strong><code>Content-Language</code></strong> は {{Glossary("entity header", "エンティティヘッダー")}} で、ユーザが自分の好みの言語に応じて区別できるように、オーディエンス向けの言語を記述するために使用されます。</p> + +<p>たとえば、"<code>Content-Language: de-DE</code>" が設定されている場合、その文書はドイツ語のスピーカーを対象としてます (ただし、文書がドイツ語で記述されていることを示すわけではありません。 たとえば、ドイツ語スピーカーのための語学コースの一部としての英語が書かれているかもしれません。文書が記述されている言語を示す場合は、代わりに <a href="/ja/docs/Web/HTML/Global_attributes/lang"><code>lang</code> 属性</a>を使用します)。</p> + +<p><code>Content-Language</code> が指定されていない場合、既定ではコンテンツがすべての言語のオーディエンスを対象としています。<code>Content-Language</code> ヘッダーをテキスト形式の文書やさまざまな種類のメディアに適用するだけでなく、複数の言語タグを使用することもできます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Entity header", "エンティティヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + <tr> + <th scope="row">{{Glossary("CORS-safelisted response header", "CORS セーフリストレスポンスヘッダー")}}</th> + <td>はい</td> + </tr> + <tr> + <th scope="row">{{Glossary("CORS-safelisted request header", "CORS セーフリストリクエストヘッダー")}}</th> + <td>はい、値を <code>0-9</code>, <code>A-Z</code>, <code>a-z</code>, 空白、 <code>*,-.;=</code> のみに限定するという追加の制限があります。</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Content-Language: de-DE +Content-Language: en-US +Content-Language: de-DE, en-CA +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code>language-tag</code></dt> + <dd>複数の言語タグはカンマで区切られています。各言語タグはハイフン文字 ("<code>-</code>", <code>%x2D</code>) で区切られた、大文字小文字を区別しない1つ以上のサブタグのシーケンスです。ほとんどの場合、言語タグは関連する言語の広いファミリを識別するプライマリ言語サブタグ (たとえば、"<code>en</code>" = 英語) で構成され、オプションとして、その言語の範囲を絞り込むか狭める一連のサブタグ ("<code>en-CA</code>" = カナダで伝達される英語の種類) が続きます。</dd> +</dl> + +<div class="note"> +<p><strong>メモ:</strong> 言語タグは、使用される<a href="https://en.wikipedia.org/wiki/Language_code">言語コード</a>の <a href="https://en.wikipedia.org/wiki/ISO_639">ISO 639</a> 規格 (<a href="https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes">ISO 639-1 のコードリスト</a>であることが多い) に依存する、<a href="https://tools.ietf.org/html/rfc5646">RFC 5646</a> でフォーマットが定義されています。</p> +</div> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Indicating_the_language_a_document_is_written_in" name="Indicating_the_language_a_document_is_written_in">文書が書かれている言語を示す</h3> + +<p>グローバル <code><a href="/ja/docs/Web/HTML/Global_attributes/lang">lang</a></code> 属性は、HTML 要素全体またはその一部の言語を示すために HTML 要素で使用されます。</p> + +<pre class="brush: html notranslate"><html lang="de"></pre> + +<p>文書の言語を記述するために、このような meta 要素を以下のように使用<strong>しないで</strong>ください。</p> + +<pre class="brush: html example-bad notranslate"><!-- /!\ This is bad practice --> +<meta http-equiv="content-language" content="de"></pre> + +<h3 id="Indicating_a_target_audience_for_a_resource" name="Indicating_a_target_audience_for_a_resource">リソースのターゲットオーディエンスを示す</h3> + +<p><code>Content-Language</code> ヘッダーは、<strong>ページの対象読者</strong>を指定するために使用され、複数の言語であることを示すことができます。</p> + +<pre class="notranslate">Content-Language: de, en</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "Content-Language", "3.1.3.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力したいのであれば、 <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Content-Language")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Accept-Language")}}</li> + <li><a href="https://www.w3.org/International/questions/qa-http-and-lang.en">HTTP headers, meta elements and language information</a></li> + <li><a href="/ja/docs/Web/HTML/Global_attributes/lang">HTML の <code>lang</code> 属し得</a></li> +</ul> diff --git a/files/ja/web/http/headers/content-length/index.html b/files/ja/web/http/headers/content-length/index.html new file mode 100644 index 0000000000..7966f1b79f --- /dev/null +++ b/files/ja/web/http/headers/content-length/index.html @@ -0,0 +1,68 @@ +--- +title: Content-Length +slug: Web/HTTP/Headers/Content-Length +tags: + - HTTP + - Reference + - エンティティヘッダー + - ヘッダー + - リファレンス +translation_of: Web/HTTP/Headers/Content-Length +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Content-Length</code></strong> エンティティヘッダーは、受信者に送信されるエンティティ本文の長さをバイト単位で示します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Entity header", "エンティティヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Content-Length: <length> +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><length></dt> + <dd>オクテット列の長さの10進数表記。</dd> +</dl> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7230", "Content-Length", "3.3.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Content-Length")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Transfer-Encoding")}}</li> +</ul> diff --git a/files/ja/web/http/headers/content-location/index.html b/files/ja/web/http/headers/content-location/index.html new file mode 100644 index 0000000000..32b3c4dd8a --- /dev/null +++ b/files/ja/web/http/headers/content-location/index.html @@ -0,0 +1,162 @@ +--- +title: Content-Location +slug: Web/HTTP/Headers/Content-Location +tags: + - HTTP + - Reference + - エンティティヘッダー + - ヘッダー + - リファレンス +translation_of: Web/HTTP/Headers/Content-Location +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Content-Location</code></strong> ヘッダーは、返されるデータの代替場所を示します。主な用途は<a href="/ja/docs/Web/HTTP/Content_negotiation">コンテンツネゴシエーション</a>の結果として送信されたリソースの URL を示すことです。</p> + +<p>{{HTTPHeader("Location")}} と <code>Content-Location</code> は異なります。<code>Location</code> はリダイレクトの URL を示し、<code>Content-Location</code> は今後のコンテンツネゴシエーションなしでリソースへのアクセスに使用する直接 URL を示します。 <code>Location</code> はレスポンスに関連付けられたヘッダーで、 <code>Content-Location</code> は返されたデータに関連付けられます。この区別は<a href="#Examples">例</a>がないと抽象的に見えるかもしれません。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Entity header", "エンティティヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Content-Location: <url> +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><url></dt> + <dd>(リクエスト URL に対する) <a href="/ja/docs/Learn/Common_questions/What_is_a_URL#Examples_of_relative_URLs">相対</a> URL または<a href="/ja/docs/Learn/Common_questions/What_is_a_URL#Examples_of_absolute_URLs">絶対</a> URL。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Requesting_data_from_a_server_in_different_formats" name="Requesting_data_from_a_server_in_different_formats">サーバーからのデータのリクエストを様々な形式で行う</h3> + +<p>たとえば、サイトの API が {{glossary("JSON")}}, {{glossary("XML")}}, または <a href="https://en.wikipedia.org/wiki/Comma-separated_values">CSV</a> 形式でデータを返すとします。特定の文書の URL が <code>https://example.com/documents/foo</code> である場合、サイトはリクエストの {{HTTPHeader("Accept")}} ヘッダーに応じて <code>Content-Location</code> 用に異なる URL を返すことができます。</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">リクエストヘッダー</th> + <th scope="col">レスポンスヘッダー</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>Accept: application/json, text/json</code></td> + <td><code>Content-Location: /documents/foo.json</code></td> + </tr> + <tr> + <td><code>Accept: application/xml, text/xml</code></td> + <td><code>Content-Location: /documents/foo.xml</code></td> + </tr> + <tr> + <td><code>Accept: text/plain, text/*</code></td> + <td><code>Content-Location: /documents/foo.txt</code></td> + </tr> + </tbody> +</table> + +<p>これらの URL は例です。サイトではクエリ文字列パラメータ:<code>/documents/foo?format=json</code>、<code>/documents/foo?format=xml</code> など、任意の URL パターンでさまざまなファイルタイプを提供できます。</p> + +<p>その後クライアントはその特定の URL で JSON バージョンが利用可能であることを覚えて、次に文書を要求するときにコンテンツのネゴシエーションをスキップします。</p> + +<p>サーバーは {{HTTPHeader("Accept-Language")}} のような他の<a href="/ja/docs/Web/HTTP/Content_negotiation">コンテンツネゴシエーション</a>ヘッダーを考慮することもできます。</p> + +<h3 id="Pointing_to_a_new_document_HTTP_201_Created" name="Pointing_to_a_new_document_HTTP_201_Created">新しい文書を指す (HTTP 201 Created)</h3> + +<p>サイトの API を通じて新しいブログ投稿を作成しているとします。</p> + +<pre>PUT /new/post +Host: example.com +Content-Type: text/markdown + +# My first blog post! + +I made this through `example.com`'s API. I hope it worked. +</pre> + +<p>サイトは投稿が公開されたことを確認する一般的な成功メッセージを返します。サーバーは <code>Content-Location</code> を使用して新しい投稿がどこにあるかを指定します。</p> + +<pre>HTTP/1.1 201 Created +Content-Type: text/plain; charset=utf-8 +Content-Location: /my-first-blog-post + +✅ Success! +</pre> + +<h3 id="Indicating_the_URL_of_a_transactions_result" name="Indicating_the_URL_of_a_transactions_result">トランザクションの結果の URL を示す</h3> + +<p>サイトの別のユーザーに送金するための <code><a href="/ja/docs/Web/HTML/Element/form"><form></a></code> があるとします。</p> + +<pre class="brush: html"><form action="/send-payment" method="post"> + <p> + <label>Who do you want to send the money to? + <input type="text" name="recipient"> + </label> + </p> + + <p> + <label>How much? + <input type="number" name="amount"> + </label> + </p> + + <button type="submit">Send Money</button> +</form> +</pre> + +<p>フォームが送信されると、サイトは取引の領収書を生成します。サーバーは <code>Content-Location</code> を使用して、将来のアクセスのために領収書の URL を示すことができます。</p> + +<pre>HTTP/1.1 200 OK +Content-Type: text/html; charset=utf-8 +Content-Location: /my-receipts/38 + +<!doctype html> +<em>(Lots of HTML…)</em> + +<p>You sent $38.00 to ExampleUser.</p> + +<em>(Lots more HTML…)</em> +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "Content-Location", "3.1.4.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Content-Location")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Location")}}</li> +</ul> diff --git a/files/ja/web/http/headers/content-range/index.html b/files/ja/web/http/headers/content-range/index.html new file mode 100644 index 0000000000..8b0f71bf53 --- /dev/null +++ b/files/ja/web/http/headers/content-range/index.html @@ -0,0 +1,89 @@ +--- +title: Content-Range +slug: Web/HTTP/Headers/Content-Range +tags: + - HTTP + - HTTPヘッダー + - ヘッダー + - リファレンス + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/Content-Range +--- +<p>{{HTTPSidebar}}</p> + +<p><strong><code>Content-Range</code></strong> レスポンスの HTTP ヘッダーは、全体のメッセージのどこにメッセージが含まれているかを示します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダータイプ</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>いいえ</td> + </tr> + <tr> + <th scope="row">{{Glossary("Simple response header", "CORS-safelisted response-header")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="構文">構文</h2> + +<pre class="syntaxbox">Content-Range: <unit> <range-start>-<range-end>/<size> +Content-Range: <unit> <range-start>-<range-end>/* +Content-Range: <unit> */<size></pre> + +<h2 id="ディレクティブ">ディレクティブ</h2> + +<dl> + <dt><unit></dt> + <dd>範囲を指定する単位。これは通常 <code>bytes</code> です。</dd> +</dl> + +<dl> + <dt><range-start></dt> + <dd>指定された単位の整数で、リクエスト範囲の開始を示します。</dd> + <dt><range-end></dt> + <dd>リクエストされた範囲の終わりを示す指定された単位の整数。</dd> + <dt><size></dt> + <dd>ドキュメントの合計サイズ (または未知の場合は <code>'*'</code> )。</dd> +</dl> + +<h2 id="例">例</h2> + +<pre>Content-Range: bytes 200-1000/67589 +</pre> + +<h2 id="仕様">仕様</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様書</th> + <th scope="col">タイトル</th> + </tr> + <tr> + <td>{{RFC("7233", "Content-Range", "4.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td> + </tr> + </tbody> +</table> + +<h2 id="ブラウザの互換性">ブラウザの互換性</h2> + +<p class="hidden">このページの互換表は構造化データから生成されます。データに貢献したい場合は <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックし、プルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Content-Range")}}</p> + +<h2 id="関連情報">関連情報</h2> + +<ul> + <li>{{HTTPHeader("If-Range")}}</li> + <li>{{HTTPHeader("Range")}}</li> + <li>{{HTTPHeader("Content-Type")}}</li> + <li>{{HTTPStatus("206")}} <code>Partial Content</code></li> + <li>{{HTTPStatus("416")}} <code>Range Not Satisfiable</code></li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy-report-only/index.html b/files/ja/web/http/headers/content-security-policy-report-only/index.html new file mode 100644 index 0000000000..2ca4d78e44 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy-report-only/index.html @@ -0,0 +1,154 @@ +--- +title: Content-Security-Policy-Report-Only +slug: Web/HTTP/Headers/Content-Security-Policy-Report-Only +tags: + - CSP + - HTTP + - HTTPS + - Reference + - Security + - header +translation_of: Web/HTTP/Headers/Content-Security-Policy-Report-Only +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の <strong><code>Content-Security-Policy-Report-Only</code></strong> レスポンスヘッダーにより、ウェブ開発者はポリシーの効果を監視する (ただし強制はしない) ことによりポリシーを試行することができます。これらの違反レポートは {{Glossary("JSON")}} の文書で構成され、 HTTP の <code>POST</code> リクエストを通して指定された URI に送信されます。</p> + +<p>詳細については、<a href="/ja/docs/Web/HTTP/CSP">コンテンツセキュリティポリシー (CSP)</a> のこの記事も参照してください。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + <tr> + <th colspan="2" scope="row">This header is not supported inside a {{HTMLElement("meta")}} element.</th> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Content-Security-Policy-Report-Only: <policy-directive>; <policy-directive> +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<p>{{HTTPHeader("Content-Security-Policy")}} ヘッダーのディレクティブは <code>Content-Security-Policy-Report-Only</code> にも適用することができます。</p> + +<p>CSP の {{CSP("report-uri")}} ディレクティブをこのヘッダーで使用しないと、このヘッダーは負荷が高く何もしない機械となります。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<p>このヘッダーは発生した違反を報告します。これを使用して、コンテンツセキュリティポリシーを反復的に処理できます。サイトがどのように動作するのかを観察したり、違反レポートや<a href="https://secure.wphackedhelp.com/blog/wordpress-malware-redirect-hack-cleanup/">マルウエアリダイレクト</a>を監視したりして、 {{HTTPHeader("Content-Security-Policy")}} ヘッダーで強制することが要求されるポリシーを選択します。</p> + +<pre class="notranslate">Content-Security-Policy-Report-Only: default-src https:; report-uri /csp-violation-report-endpoint/</pre> + +<p>レポートを受信し続けながら、ポリシーの強制も行いたい場合は、 {{HTTPHeader("Content-Security-Policy")}} ヘッダーに {{CSP("report-uri")}} ディレクティブを指定して使用してください。</p> + +<pre class="notranslate">Content-Security-Policy: default-src https:; report-uri /csp-violation-report-endpoint/</pre> + +<h2 id="Violation_report_syntax" name="Violation_report_syntax">違反レポートの構文</h2> + +<p>レポート JSON オブジェクトには、次のデータが含まれています。</p> + +<dl> + <dt><code>blocked-uri</code></dt> + <dd>The URI of the resource that was blocked from loading by the Content Security Policy. If the blocked URI is from a different origin than the document-uri, then the blocked URI is truncated to contain just the scheme, host, and port.</dd> + <dt><code>disposition</code></dt> + <dd>Either <code>"enforce"</code> or <code>"report"</code> depending on whether the {{HTTPHeader("Content-Security-Policy")}} header or the <code>Content-Security-Policy-Report-Only</code> header is used.</dd> + <dt><code>document-uri</code></dt> + <dd>The URI of the document in which the violation occurred.</dd> + <dt><code>effective-directive</code></dt> + <dd>The directive whose enforcement caused the violation.</dd> + <dt><code>original-policy</code></dt> + <dd>The original policy as specified by the <code>Content-Security-Policy-Report-Only</code> HTTP header.</dd> + <dt><code>referrer</code></dt> + <dd>The referrer of the document in which the violation occurred.</dd> + <dt><code>script-sample</code></dt> + <dd>The first 40 characters of the inline script, event handler, or style that caused the violation.</dd> + <dt><code>status-code</code></dt> + <dd>The HTTP status code of the resource on which the global object was instantiated.</dd> + <dt><code>violated-directive</code></dt> + <dd>The name of the policy section that was violated.</dd> +</dl> + +<h2 id="Sample_violation_report" name="Sample_violation_report">違反レポートのサンプル</h2> + +<div>Let's consider a page located at <code>http://example.com/signup.html</code>. It uses the following policy, disallowing everything but stylesheets from <code>cdn.example.com</code>.</div> + +<div> +<pre class="notranslate">Content-Security-Policy-Report-Only: default-src 'none'; style-src cdn.example.com; report-uri /_/csp-reports</pre> +</div> + +<div>The HTML of <code>signup.html</code> looks like this:</div> + +<pre class="brush: html notranslate"><!DOCTYPE html> +<html> + <head> + <title>Sign Up</title> + <link rel="stylesheet" href="css/style.css"> + </head> + <body> + ... Content ... + </body> +</html></pre> + +<div>Can you spot the violation? Stylesheets are only allowed to be loaded from <code>cdn.example.com</code>, yet the website tries to load one from its own origin (<code>http://example.com</code>). A browser capable of enforcing CSP will send the following violation report as a POST request to <code>http://example.com/_/csp-reports</code>, when the document is visited:</div> + +<pre class="brush: js notranslate">{ + "csp-report": { + "document-uri": "http://example.com/signup.html", + "referrer": "", + "blocked-uri": "http://example.com/css/style.css", + "violated-directive": "style-src cdn.example.com", + "original-policy": "default-src 'none'; style-src cdn.example.com; report-uri /_/csp-reports", + "disposition": "report" + } +}</pre> + +<p>As you can see, the report includes the full path to the violating resource in <code>blocked-uri</code>. This is not always the case. For example, when the <code>signup.html</code> would attempt to load CSS from <code>http://anothercdn.example.com/stylesheet.css</code>, the browser would <em>not</em> include the full path but only the origin (<code>http://anothercdn.example.com</code>). This is done to prevent leaking sensitive information about cross-origin resources.</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("CSP 3.0")}}</td> + <td>{{Spec2('CSP 3.0')}}</td> + <td>変更なし</td> + </tr> + <tr> + <td>{{specName("CSP 1.1")}}</td> + <td>{{Spec2('CSP 1.1')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Content-Security-Policy-Report-Only")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>CSP {{CSP("report-uri")}} ディレクティブ</li> + <li><a href="/ja/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy">WebExtensions のコンテンツセキュリティ</a></li> + <li><a href="/ja/docs/Tools/GCLI/Display_security_and_privacy_policies">Display security and privacy policies In Firefox Developer Tools</a></li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/base-uri/index.html b/files/ja/web/http/headers/content-security-policy/base-uri/index.html new file mode 100644 index 0000000000..95e5a39ca6 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/base-uri/index.html @@ -0,0 +1,108 @@ +--- +title: 'CSP: base-uri' +slug: Web/HTTP/Headers/Content-Security-Policy/base-uri +tags: + - CSP + - Directive + - Document directive + - HTTP + - Security +translation_of: Web/HTTP/Headers/Content-Security-Policy/base-uri +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP {{HTTPHeader("Content-Security-Policy")}} の <strong><code>base-uri</code></strong> ディレクティブは、ドキュメントの要素 {{HTMLElement("base")}} で、使用できる URL を制限します。この値が存在しない場合は、任意の URI が許可されます。このディレクティブが存在しない場合、ユーザーエージェントは、{{HTMLElement("base")}} 要素の値を使用します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">CSP version</th> + <td>2</td> + </tr> + <tr> + <th scope="row">Directive type</th> + <td>{{Glossary("Document directive")}}</td> + </tr> + <tr> + <th scope="row">{{CSP("default-src")}} fallback</th> + <td>設定しないと、任意の URL が許可されます。</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p>1 つまたは複数のソースを base-uri ポリシーに使用:</p> + +<pre class="syntaxbox">Content-Security-Policy: base-uri <source>; +Content-Security-Policy: base-uri <source> <source>; +</pre> + +<h3 id="Sources" name="Sources">ソース</h3> + +<p>このディレクティブは他の CSP ディレクティブと同じ引数を使用しますが、キーワードの <code>'unsafe-inline'</code> や <code>'strict-dynamic'</code> などは意味がありません。</p> + +<p>{{page("ja/docs/Web/HTTP/Headers/Content-Security-Policy/default-src", "Sources")}}</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Meta_tag_configuration" name="Meta_tag_configuration">Meta タグの設定</h3> + +<pre class="brush: html"><meta http-equiv="Content-Security-Policy" content="base-uri 'self'"></pre> + +<h3 id="Apache_configuration" name="Apache_configuration">Apache の設定</h3> + +<pre class="brush: bash"><IfModule mod_headers.c> +Header set Content-Security-Policy "base-uri 'self'"; +</IfModule></pre> + +<h3 id="Nginx_configuration" name="Nginx_configuration">Nginx の設定</h3> + +<pre class="brush: bash">add_header Content-Security-Policy "base-uri 'self';"</pre> + +<h3 id="Violation_case" name="Violation_case">違反になる場合</h3> + +<p>ドメインが <code>example.com</code> でないので、<code>https://example.com</code> に設定された {{HTMLElement("base")}} 要素の <code>href</code> が CSP 違反になります。</p> + +<pre class="brush: html; example-bad"><meta http-equiv="Content-Security-Policy" content="base-uri 'self'"> +<base href="https://example.com/"> + +// Error: Refused to set the document's base URI to 'https://example.com/' +// because it violates the following Content Security Policy +// directive: "base-uri 'self'"</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + <tr> + <td>{{specName("CSP 3.0", "#directive-base-uri", "base-uri")}}</td> + <td>{{Spec2('CSP 3.0')}}</td> + <td>変更無し</td> + </tr> + <tr> + <td>{{specName("CSP 1.1", "#directive-base-uri", "base-uri")}}</td> + <td>{{Spec2('CSP 1.1')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザー実装状況</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.csp.base-uri")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPheader("Content-Security-Policy")}}</li> + <li>{{HTMLElement("base")}}</li> + <li>{{domxref("Node.baseURI")}}</li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/block-all-mixed-content/index.html b/files/ja/web/http/headers/content-security-policy/block-all-mixed-content/index.html new file mode 100644 index 0000000000..534a71ec82 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/block-all-mixed-content/index.html @@ -0,0 +1,72 @@ +--- +title: 'CSP: block-all-mixed-content' +slug: Web/HTTP/Headers/Content-Security-Policy/block-all-mixed-content +tags: + - CSP + - Content-Security-Policy + - Directive + - HTTP + - Mixed Content + - Reference + - Security + - block-all-mixed-content + - セキュリティ + - ディレクティブ + - 混合コンテンツ +translation_of: Web/HTTP/Headers/Content-Security-Policy/block-all-mixed-content +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) <code><strong>block-all-mixed-content</strong></code> ディレクティブは、ページが HTTPS を使用しているときに HTTP で資産を読み込むことを防ぎます。</p> + +<p>能動的および受動的の両方を含む、すべての<a href="/ja/docs/Web/Security/Mixed_content">混合コンテンツ</a>リソースのリクエストがブロックされます。これは {{HTMLElement("iframe")}} の文書にも適用され、ページ全体で混合コンテンツがないことを保証します。</p> + +<p class="note">{{CSP("upgrade-insecure-requests")}} ディレクティブが <code>block-all-mixed-content</code> の前に評価されます。前者が設定されていれば、後者は何もしません。どちらかのディレクティブを設定してください。 HTTP にリダイレクトした後で HTTPS を強制することができない古いブラウザーで HTTPS を強制させたくない限り、両方の効果はありません。</p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Content-Security-Policy: block-all-mixed-content;</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<pre class="notranslate">Content-Security-Policy: block-all-mixed-content; + +<meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> +</pre> + +<p>もっと細かい水準で資産の http を禁止するには、個別のディレクティブを <code>https:</code> に設定することができます。安全ではない HTTP の画像を許可しないようにするには次のようにします。</p> + +<pre class="notranslate">Content-Security-Policy: img-src https:</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("Mixed Content", "#block-all-mixed-content", "block-all-mixed-content")}}</td> + <td>{{Spec2('Mixed Content')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.csp.Content-Security-Policy.block-all-mixed-content")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>{{CSP("upgrade-insecure-requests")}}</li> + <li><a href="/ja/docs/Web/Security/Mixed_content">混合コンテンツ</a></li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/connect-src/index.html b/files/ja/web/http/headers/content-security-policy/connect-src/index.html new file mode 100644 index 0000000000..6557b4e671 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/connect-src/index.html @@ -0,0 +1,130 @@ +--- +title: 'CSP: connect-src' +slug: Web/HTTP/Headers/Content-Security-Policy/connect-src +tags: + - CSP + - Content-Security-Policy + - Directive + - HTTP + - Reference + - Security + - connect-src + - source + - セキュリティ + - ディレクティブ +translation_of: Web/HTTP/Headers/Content-Security-Policy/connect-src +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) の <code><strong>connect-src</strong></code> ディレクティブは、スクリプトインターフェイスを使用して読み込むことができる URL を制限します。以下の API が制限の対象となります。</p> + +<ul> + <li>{{HTMLElement("a")}} の {{htmlattrxref("ping", "a")}} 属性</li> + <li>{{domxref("Fetch")}}</li> + <li>{{domxref("XMLHttpRequest")}}</li> + <li>{{domxref("WebSocket")}}</li> + <li>{{domxref("EventSource")}}</li> + <li>{{domxref("Navigator.sendBeacon()")}}</li> +</ul> + +<div class="note"> +<p><strong>注:</strong> <code>connect-src 'self'</code> はすべてのブラウザーで websocket スキーマを解決するわけではありません、詳細はこちら: <a href="https://github.com/w3c/webappsec-csp/issues/7">https://github.com/w3c/webappsec-csp/issues/7</a></p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">CSP バージョン</th> + <td>1</td> + </tr> + <tr> + <th scope="row">ディレクティブ種別</th> + <td>{{Glossary("Fetch directive", "フェッチディレクティブ")}}</td> + </tr> + <tr> + <th scope="row">{{CSP("default-src")}} による代替</th> + <td>あり。このディレクティブがない場合、ユーザーエージェントは <code>default-src</code> ディレクティブを探します。</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p>connect-src ポリシーには、1 つ以上のソースが許可されています。</p> + +<pre class="syntaxbox notranslate">Content-Security-Policy: connect-src <source>; +Content-Security-Policy: connect-src <source> <source>; +</pre> + +<h3 id="Sources" name="Sources">ソース</h3> + +<p>{{page("/ja/docs/Web/HTTP/Headers/Content-Security-Policy/default-src", "common_sources")}}</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Violation_cases" name="Violation_cases">違反の場合</h3> + +<p>以下の CSP ヘッダーを指定した場合、</p> + +<pre class="brush: bash notranslate">Content-Security-Policy: connect-src https://example.com/</pre> + +<p>以下のコネクションはブロックされ、読み込まれません。</p> + +<pre class="brush: html notranslate"><a ping="https://not-example.com"> + +<script> + var xhr = new XMLHttpRequest(); + xhr.open('GET', 'https://not-example.com/'); + xhr.send(); + + var ws = new WebSocket("https://not-example.com/"); + + var es = new EventSource("https://not-example.com/"); + + navigator.sendBeacon("https://not-example.com/", { ... }); +</script></pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("CSP 3.0", "#directive-connect-src", "connect-src")}}</td> + <td>{{Spec2('CSP 3.0')}}</td> + <td>変更なし</td> + </tr> + <tr> + <td>{{specName("CSP 1.1", "#directive-connect-src", "connect-src")}}</td> + <td>{{Spec2('CSP 1.1')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p>{{Compat("http.headers.csp.Content-Security-Policy.connect-src")}}</p> + +<h2 id="Compatibility_notes" name="Compatibility_notes">互換性のメモ</h2> + +<ul> + <li>Firefox 23 以前では、<code>xhr-src</code> が <code>connect-src</code> ディレクティブの代わりに、{{domxref("XMLHttpRequest")}} を制限するだけのために使用されていました。</li> +</ul> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>{{HTMLElement("a")}} の {{htmlattrxref("ping", "a")}} 属性</li> + <li>{{domxref("Fetch")}}</li> + <li>{{domxref("XMLHttpRequest")}}</li> + <li>{{domxref("WebSocket")}}</li> + <li>{{domxref("EventSource")}}</li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/default-src/index.html b/files/ja/web/http/headers/content-security-policy/default-src/index.html new file mode 100644 index 0000000000..bd529cb56d --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/default-src/index.html @@ -0,0 +1,183 @@ +--- +title: 'CSP: default-src' +slug: Web/HTTP/Headers/Content-Security-Policy/default-src +tags: + - CSP + - Content-Security-Policy + - Directive + - HTTP + - Reference + - Security + - default + - default-src + - source + - コンテンツセキュリティポリシー +translation_of: Web/HTTP/Headers/Content-Security-Policy/default-src +--- +<div>{{HTTPSidebar}}</div> + +<p><span class="seoSummary">HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) <strong><code>default-src</code></strong> ディレクティブは、他の CSP {{Glossary("fetch directive", "フェッチディレクティブ")}}のフォールバックとして提供します。</span>以下のディレクティブがいずれかが存在しないと、ユーザーエージェントは <code>default-src</code> ディレクティブを探して、この値を使用します。</p> + +<ul> + <li>{{CSP("child-src")}}</li> + <li>{{CSP("connect-src")}}</li> + <li>{{CSP("font-src")}}</li> + <li>{{CSP("frame-src")}}</li> + <li>{{CSP("img-src")}}</li> + <li>{{CSP("manifest-src")}}</li> + <li>{{CSP("media-src")}}</li> + <li>{{CSP("object-src")}}</li> + <li>{{CSP("prefetch-src")}}</li> + <li>{{CSP("script-src")}}</li> + <li>{{CSP("script-src-elem")}}</li> + <li>{{CSP("script-src-attr")}}</li> + <li>{{CSP("style-src")}}</li> + <li>{{CSP("style-src-elem")}}</li> + <li>{{CSP("style-src-attr")}}</li> + <li>{{CSP("worker-src")}}</li> +</ul> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">CSP バージョン</th> + <td>1</td> + </tr> + <tr> + <th scope="row">ディレクティブ種別</th> + <td>{{Glossary("Fetch directive", "フェッチディレクティブ")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p><code>default-src</code> ポリシーには、1つまたは複数のソースが許可されています。</p> + +<pre class="syntaxbox notranslate">Content-Security-Policy: default-src <source>; +Content-Security-Policy: default-src <source> <source>; +</pre> + +<h3 id="Sources" name="Sources">ソース</h3> + +<div id="common_sources"> +<p><source> は以下のうちの一つを取ることができます。</p> + +<dl> + <dt><host-source></dt> + <dd>ホスト名または IP アドレスによるインターネットホストで、任意で <a href="/ja/docs/URIs_and_URLs">URL スキーム</a>やポート番号を付けることができます。サイトのアドレスはワイルドカード (アスタリスク文字、<code>'*'</code>) で始めることができ、更にポート番号にワイルドカード (<code>'*'</code>) を使ってすべての有効なポート番号をソースとして示すことができます。<br> + 例: + <ul> + <li><code>http://*.example.com</code>: <code>http:</code> のスキームを使用した、example.com のすべてのサブドメインからのすべての読み込みの試行に一致します。</li> + <li><code>mail.example.com:443</code>: mail.example.com の 443番ポートへのアクセスの試行に一致します。</li> + <li><code>https://store.example.com</code>: <code>https:</code> を使用した store.example.com へのアクセスの試行に一致します。</li> + <li><code>*.example.com</code>: 現在のプロトコルを使用した example.com のすべてのサブドメインからの読み込みのすべての試行に一致します。</li> + </ul> + </dd> + <dt><scheme-source></dt> + <dd><code>http:</code> または <code>https:</code> のようなスキームです。コロンは必要です。以下の他の値とは異なり、単一引用符は使用しないでください。data スキームも指定することができます (非推奨)。 + <ul> + <li><code>data:</code> コンテンツのソースとして <a href="/ja/docs/Web/HTTP/Basics_of_HTTP/Data_URIs"><code>data:</code> の URI</a> を使うことができるようにします。<em>これは安全ではありません。攻撃者は任意の data: URI を挿入することもできます。使用は控え、スクリプトには絶対に使用しないでください。</em></li> + <li><code>mediastream:</code> <a href="/ja/docs/Web/API/MediaStream_API"><code>mediastream:</code> の URI</a> をコンテンツのソースとして使用することができるようにします。</li> + <li><code>blob:</code> <a href="/ja/docs/Web/API/Blob"><code>blob:</code> の URI</a> をコンテンツのソースとして使用することができるようにします。</li> + <li><code>filesystem:</code> <a href="/ja/docs/Web/API/FileSystem"><code>filesystem:</code> の URI</a> をコンテンツのソースとして使用することができるようにします。</li> + </ul> + </dd> + <dt><code>'self'</code></dt> + <dd>保護された文書が提供されたオリジンを、同じ URL スキームおよびポート番号で参照します。単一引用符が必要です。ブラウザーによっては source ディレクティブから <code>blob</code> および <code>filesystem</code> を独自に除外していることがあります。これらのコンテンツ種別を許可する必要があるサイトは、Data 属性を使用して指定することができます。</dd> + <dt><code>'unsafe-eval'</code></dt> + <dd>文字列からコードを生成する <code>eval()</code> および同様のメソッドの利用を許可します。単一引用符が必要です。</dd> + <dt id="unsafe-hashes"><code>'unsafe-hashes'</code></dt> + <dd>特定のインラインの<a href="/ja/docs/Web/Guide/Events/Event_handlers">イベントハンドラー</a>を許可します。インラインイベントハンドラーを許可したいが、インラインの {{HTMLElement("script")}} 要素や <code>javascript:</code> URL は不要な場合、これは <code>unsafe-inline</code> を使うよりも安全なメソッドです。</dd> + <dt><code>'unsafe-inline'</code></dt> + <dd>インラインの {{HTMLElement("script")}} 要素、<code>javascript:</code> の URL、インラインイベントハンドラー、インライン {{HTMLElement("style")}} 要素のような、インラインリソースの使用を許可します。単一引用符が必要です。</dd> + <dt><code>'none'</code></dt> + <dd>空のセットを参照します。つまり、一致する URL はありません。単一引用符が必要です。</dd> + <dt>'nonce-<base64-value>'</dt> + <dd>暗号化ノンス (一度だけ使われる数値) を使用する特定のインラインスクリプトのための許可リストです。サーバーはポリシーを転送するたびに固有のノンスを生成する必要があります。リソースのポリシーを回避することを難しくするため、推測できないノンスを提供することが重要です。例えば<a href="/ja/docs/Web/HTTP/Headers/Content-Security-Policy/script-src#Unsafe_inline_script">安全でないインラインスクリプト</a>を参照してください。ノンスを指定すると、最近のブラウザーは、ノンスの対応がない古いブラウザーのために設定されている可能性がある <code>'unsafe-inline'</code> を無視するようになります。</dd> + <dt>'<hash-algorithm>-<base64-value>'</dt> + <dd>スクリプトまたはスタイルの sha256, sha384, sha512 の何れかのハッシュです。このソースは、ハッシュを生成するために使用する暗号化アルゴリズムと、スクリプトまたはスタイルのハッシュを base64 でエンコードしたものの二つの部分をダッシュで区切ったもので構成されます。ハッシュを生成するときは、<script> または <style> タグを含めないようにし、大文字・小文字の区別と、ホワイトスペースの扱い (先頭や末尾のホワイトスペースを含む) に注意してください。例えば<a href="/ja/docs/Web/HTTP/Headers/Content-Security-Policy/script-src#Unsafe_inline_script">安全でないインラインスクリプト</a>を参照してください。 CSP 2.0 では、これはインラインスクリプトにのみ適用されます。 CSP 3.0 では <code>script-src</code> で外部スクリプトが指定された場合にも利用できます。</dd> +</dl> +</div> + +<div id="strict-dynamic"> +<dl> + <dt>'strict-dynamic'</dt> + <dd><code>strict-dynamic</code> ソース表現は、ノンスやハッシュを付加して、それらがルートスクリプトに読み込まれるすべてのスクリプトに伝搬することで、マークアップ内のスクリプトに明示的な信用を指定します。それと同時に、<code>'self'</code> や <code>'unsafe-inline'</code> といった、あらゆる許可リストやソース表現が無視されます。<a href="/ja/docs/Web/HTTP/Headers/Content-Security-Policy/script-src#strict-dynamic">script-src</a> の例を見てください。</dd> +</dl> +</div> + +<div id="report-sample"> +<dl> + <dt>'report-sample'</dt> + <dd>違反レポートに入れる違反コードのサンプルを要求します。</dd> +</dl> +</div> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="No_inheritance_with_default-src" name="No_inheritance_with_default-src">default-src で継承されない</h3> + +<p>他のディレクティブが指定されている場合、<code>default-src</code> は影響しません。</p> + +<pre class="brush: bash notranslate">Content-Security-Policy: default-src 'self'; script-src https://example.com</pre> + +<p>は、下記のものと同じです。</p> + +<pre class="brush: bash notranslate">Content-Security-Policy: connect-src 'self'; + font-src 'self'; + frame-src 'self'; + img-src 'self'; + manifest-src 'self'; + media-src 'self'; + object-src 'self'; + script-src https://example.com; + style-src 'self'; + worker-src 'self'</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("CSP 3.0", "#directive-default-src", "default-src")}}</td> + <td>{{Spec2('CSP 3.0')}}</td> + <td>既定として <code>frame-src</code>, <code>manifest-src</code>, <code>worker-src</code> を追加。</td> + </tr> + <tr> + <td>{{specName("CSP 1.1", "#directive-default-src", "default-src")}}</td> + <td>{{Spec2('CSP 1.1')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、<a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.csp.Content-Security-Policy.default-src")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>CSP directives (<a href="https://www.w3.org/TR/CSP/#csp-directives">https://www.w3.org/TR/CSP/#csp-directives</a>): + <ul> + <li>{{Glossary("Fetch directive")}}</li> + <li>{{Glossary("Document directive")}}</li> + <li>{{Glossary("Navigation directive")}}</li> + <li>{{Glossary("Reporting directive")}}</li> + <li><code><a href="/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests">upgrade-insecure-requests</a></code></li> + <li><code><a href="/docs/Web/HTTP/Headers/Content-Security-Policy/block-all-mixed-content">block-all-mixed-content</a></code></li> + <li><code><a href="/docs/Web/HTTP/Headers/Content-Security-Policy/require-sri-for">require-sri-for</a></code> {{experimental_inline}}</li> + </ul> + </li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/frame-ancestors/index.html b/files/ja/web/http/headers/content-security-policy/frame-ancestors/index.html new file mode 100644 index 0000000000..3e2dbed062 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/frame-ancestors/index.html @@ -0,0 +1,127 @@ +--- +title: 'CSP: frame-ancestors' +slug: Web/HTTP/Headers/Content-Security-Policy/frame-ancestors +tags: + - Ancestors + - CSP + - Content-Security-Policy + - Directive + - Frame + - HTTP + - Security + - frame-ancestors +translation_of: Web/HTTP/Headers/Content-Security-Policy/frame-ancestors +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) である <code><strong>frame-ancestors</strong></code> ディレクティブは {{HTMLElement("frame")}}、 {{HTMLElement("iframe")}}、 {{HTMLElement("object")}} 、 {{HTMLElement("embed")}}、 {{HTMLElement("applet")}} などを使ってページを埋め込むことのできる親を指定します。</p> + +<p>このディレクティブを <code>'none'</code> にすることは、 {{HTTPHeader("X-Frame-Options")}}<code>: deny</code> (これは古いブラウザーも同様に対応しています) を設定するのに似ています。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">CSP バージョン</th> + <td>2</td> + </tr> + <tr> + <th scope="row">ディレクティブ種別</th> + <td>{{Glossary("Navigation directive", "ナビゲーションディレクティブ")}}</td> + </tr> + <tr> + <th scope="row">{{CSP("default-src")}} による代替</th> + <td>なし。設定しない場合はすべてを許可します。</td> + </tr> + <tr> + <th colspan="2" scope="row">このディレクティブは {{HTMLElement("meta")}} 要素では対応していません。</th> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p><code>frame-ancestors</code> ポリシーをこのように一つ以上セットできます。</p> + +<pre class="syntaxbox notranslate">Content-Security-Policy: frame-ancestors <source>; +Content-Security-Policy: frame-ancestors <source> <source>; +</pre> + +<h3 id="Sources" name="Sources">ソース</h3> + +<p><source> は以下のうちのいずれかです。</p> + +<div class="note"> +<p><code>frame-ancestors</code> ディレクティブの構文は他のソースリスト ({{CSP("default-src")}} など) のものと同様ですが、 <code>'unsafe-eval'</code> や <code>'unsafe-inline'</code> などは許可されていません。また、これは <code>default-src</code> の設定にフォールバックすることもありません。下記に示されたソースのみが許可されます。</p> +</div> + +<dl> + <dt><host-source></dt> + <dd>スペースで区切られた、<a href="/ja/docs/URIs_and_URLs">URL scheme</a>やポート番号をふくむことができるIPアドレスや名前によるインターネットホスト名です。サイトのアドレスの前にワイルドカード (アスタリスク、 <code>'*'</code>)を含めることができ、さらにすべてのポートがソースとして有効であることを示すためにポート番号としてワイルドカード (<code>'*'</code>) を使うこともできます。ホスト名をシングルクオートで囲うことはできません。<br> + 例: + <ul> + <li><code>http://*.example.com</code>: <code>http:</code> のスキームを使用した、example.com のすべてのサブドメインからのすべての読み込みの試行に一致します。</li> + <li><code>mail.example.com:443</code>: mail.example.com の 443番ポートへのアクセスの試行に一致します。</li> + <li><code>https://store.example.com</code>: <code>https:</code> を使用した store.example.com へのアクセスの試行に一致します。</li> + </ul> + + <div class="blockIndicator warning"> + <p><code>host-source</code> にURLスキームが指定されておらず、 iframe が <code>https</code> URLから読み込まれている場合、 iframe を読み込んでいるページの URL も <code>https</code> でなければなりません。 W3C 仕様書の <a href="https://w3c.github.io/webappsec-csp/2/#match-source-expression">matching source expressions</a> によるものです。</p> + </div> + </dd> + <dt><scheme-source></dt> + <dd><code>http:</code> または <code>https:</code> のようなスキームです。コロンは必要です。以下の他の値とは異なり、単一引用符は使用しないでください。data スキームも指定することができます (非推奨)。 + <ul> + <li><code>data:</code> コンテンツのソースとして <a href="/ja/docs/Web/HTTP/Basics_of_HTTP/Data_URIs"><code>data:</code> の URI</a> を使うことができるようにします。<em>これは安全ではありません。攻撃者は任意の data: URI を挿入することもできます。使用は控え、スクリプトには絶対に使用しないでください。</em></li> + <li><code>mediastream:</code> <a href="/ja/docs/Web/API/MediaStream_API"><code>mediastream:</code> の URI</a> をコンテンツのソースとして使用することができるようにします。</li> + <li><code>blob:</code> <a href="/ja/docs/Web/API/Blob"><code>blob:</code> の URI</a> をコンテンツのソースとして使用することができるようにします。</li> + <li><code>filesystem:</code> <a href="/ja/docs/Web/API/FileSystem"><code>filesystem:</code> の URI</a> をコンテンツのソースとして使用することができるようにします。</li> + </ul> + </dd> + <dt><code>'self'</code></dt> + <dd>保護された文書が提供されたオリジンを、同じ URL スキームおよびポート番号で参照します。単一引用符が必要です。ブラウザーによっては source ディレクティブから <code>blob</code> および <code>filesystem</code> を独自に除外していることがあります。これらのコンテンツ種別を許可する必要があるサイトは、Data 属性を使用して指定することができます。</dd> + <dt><code>'none'</code></dt> + <dd>空のセットを参照します。つまり、一致する URL はありません。単一引用符が必要です。</dd> +</dl> + +<h2 id="例">例</h2> + +<pre class="brush: bash notranslate">Content-Security-Policy: frame-ancestors 'none'; + +Content-Security-Policy: frame-ancestors 'self' https://www.example.org;</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("CSP 3.0", "#directive-frame-ancestors", "frame-ancestors")}}</td> + <td>{{Spec2('CSP 3.0')}}</td> + <td>変更なし</td> + </tr> + <tr> + <td>{{specName("CSP 1.1", "#directive-frame-ancestors", "frame-ancestors")}}</td> + <td>{{Spec2('CSP 1.1')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、<a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.csp.Content-Security-Policy.frame-ancestors")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>{{HTTPHeader("X-Frame-Options")}}</li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/frame-src/index.html b/files/ja/web/http/headers/content-security-policy/frame-src/index.html new file mode 100644 index 0000000000..98a6061b79 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/frame-src/index.html @@ -0,0 +1,99 @@ +--- +title: 'CSP: frame-src' +slug: Web/HTTP/Headers/Content-Security-Policy/frame-src +tags: + - CSP + - Content-Security-Policy + - Directive + - Frame + - HTTP + - Reference + - Security + - frame-src + - source + - セキュリティ + - ディレクティブ + - フレーム +translation_of: Web/HTTP/Headers/Content-Security-Policy/frame-src +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) における <code><strong>frame-src</strong></code> ディレクティブは、 {{HTMLElement("frame")}} や {{HTMLElement("iframe")}} のような要素を使用した内部の閲覧コンテキストの読み込みに有効なソースを指定します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">CSP バージョン</th> + <td>1</td> + </tr> + <tr> + <th scope="row">ディレクティブ種別</th> + <td>{{Glossary("Fetch directive", "フェッチディレクティブ")}}</td> + </tr> + <tr> + <th scope="row">代替</th> + <td>このディレクティブがない場合、ユーザーエージェントは {{CSP("child-src")}} ディレクティブを探す (さらにこの代替は {{CSP("default-src")}} ディレクティブである)。</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p><code>frame-src</code> ポリシーには、1つ以上のソースが許可されています。</p> + +<pre class="syntaxbox">Content-Security-Policy: frame-src <source>; +Content-Security-Policy: frame-src <source> <source>; +</pre> + +<h3 id="Sources" name="Sources">ソース</h3> + +<p>{{page("/ja/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src", "Sources")}}</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Violation_cases" name="Violation_cases">違反例</h3> + +<p>この CSP ヘッダーがある場合、</p> + +<pre class="brush: bash">Content-Security-Policy: frame-src https://example.com/</pre> + +<p>以下の {{HTMLElement("iframe")}} はブロックされ、読み込まれません。</p> + +<pre class="brush: html"><iframe src="https://not-example.com/"></iframe></pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("CSP 3.0", "#directive-frame-src", "frame-src")}}</td> + <td>{{Spec2('CSP 3.0')}}</td> + <td><code>frame-src</code> の非推奨化を解除</td> + </tr> + <tr> + <td>{{specName("CSP 1.1", "#directive-frame-src", "frame-src")}}</td> + <td>{{Spec2('CSP 1.1')}}</td> + <td><code>frame-src</code> を非推奨化</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.csp.Content-Security-Policy.frame-src")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>{{HTMLElement("frame")}} および {{HTMLElement("iframe")}}</li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/img-src/index.html b/files/ja/web/http/headers/content-security-policy/img-src/index.html new file mode 100644 index 0000000000..5d02035fe9 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/img-src/index.html @@ -0,0 +1,99 @@ +--- +title: 'CSP: img-src' +slug: Web/HTTP/Headers/Content-Security-Policy/img-src +tags: + - CSP + - Content-Security-Policy + - Directive + - HTTP + - Image + - Reference + - Security + - img-src + - source + - セキュリティ + - ディレクティブ + - 画像 +translation_of: Web/HTTP/Headers/Content-Security-Policy/img-src +--- +<div>{{HTTPSidebar}}</div> + +<p><span class="seoSummary">HTTP の {{HTTPHeader("Content-Security-Policy")}} における <code><strong>img-src</strong></code> ディレクティブは、画像やファビコンの有効なソースを指定します。</span></p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">CSP バージョン</th> + <td>1</td> + </tr> + <tr> + <th scope="row">ディレクティブ種別</th> + <td>{{Glossary("Fetch directive", "フェッチディレクティブ")}}</td> + </tr> + <tr> + <th scope="row">{{CSP("default-src")}} による代替</th> + <td>あり。このディレクティブがない場合、ユーザーエージェントは <code>default-src</code> ディレクティブを探します。</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p><code>img-src</code> ポリシーには、1つ以上のソースが許可されています。</p> + +<pre class="syntaxbox">Content-Security-Policy: img-src <source>; +Content-Security-Policy: img-src <source> <source>; +</pre> + +<h3 id="Sources" name="Sources">ソース</h3> + +<p>{{page("/ja/docs/Web/HTTP/Headers/Content-Security-Policy/default-src", "Sources")}}</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Violation_cases" name="Violation_cases">違反例</h3> + +<p>この CSP ヘッダーがある場合、</p> + +<pre class="brush: bash">Content-Security-Policy: img-src https://example.com/</pre> + +<p>以下の {{HTMLElement("img")}} の各要素はブロックされ、読み込まれません。</p> + +<pre class="brush: html"><img src="https://not-example.com/foo.jpg" alt="example picture"></pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("CSP 3.0", "#directive-img-src", "img-src")}}</td> + <td>{{Spec2('CSP 3.0')}}</td> + <td>変更なし</td> + </tr> + <tr> + <td>{{specName("CSP 1.1", "#directive-img-src", "img-src")}}</td> + <td>{{Spec2('CSP 1.1')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.csp.Content-Security-Policy.img-src")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>{{HTMLElement("img")}}</li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/index.html b/files/ja/web/http/headers/content-security-policy/index.html new file mode 100644 index 0000000000..2abcbd7d1b --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/index.html @@ -0,0 +1,262 @@ +--- +title: Content-Security-Policy +slug: Web/HTTP/Headers/Content-Security-Policy +tags: + - CSP + - HTTP + - Reference + - Security + - header + - セキュリティ +translation_of: Web/HTTP/Headers/Content-Security-Policy +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の <strong><code>Content-Security-Policy</code></strong> レスポンスヘッダーは、ウェブサイト管理者が、あるページにユーザーエージェントが読み込みを許可されたリソースを管理できるようにします。いくつかの例外を除いて、大半のポリシーにはサーバーオリジンとスクリプトエンドポイントの指定を含んでいます。これはクロスサイトスクリプティング攻撃 ({{Glossary("XSS")}}) を防ぐのに役立ちます。</p> + +<p>より詳細な情報は、 <a href="/ja/docs/Web/HTTP/CSP">Content Security Policy (CSP)</a> の入門記事を参照してください。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Content-Security-Policy: <policy-directive>; <policy-directive> +</pre> + +<p>ここで、 <code><policy-directive></code> は次の要素で構成されます: <code><directive> <value></code> 内部の句読点なし。</p> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<h3 id="Fetch_directives" name="Fetch_directives">{{Glossary("Fetch directive", "フェッチディレクティブ")}}</h3> + +<p>フェッチディレクティブは、特定のリソース種別がロードされうる場所を制御します。</p> + +<h4 id="List_of_Content_Security_Policy_Fetch_directives" name="List_of_Content_Security_Policy_Fetch_directives">Content Security Policy フェッチディレクティブの一覧</h4> + +<dl> + <dt>{{CSP("child-src")}}</dt> + <dd><a href="/ja/docs/Web/API/Web_Workers_API">ウェブワーカー</a>と、 {{HTMLElement("frame")}} や {{HTMLElement("iframe")}} のような要素によってロードされる入れ子状の閲覧コンテキストに対する有効なソースを定義します。 + <div class="warning"> + <p>複合した閲覧コンテキストやワーカーを制御するには、 それぞれ {{CSP("frame-src")}} および {{CSP("worker-src")}} を <strong><code>child-src</code></strong> の代わりに使用してください。</p> + </div> + </dd> + <dt>{{CSP("connect-src")}}</dt> + <dd>script インターフェースによってロードされる URL を制限します。</dd> + <dt>{{CSP("default-src")}}</dt> + <dd>別の {{Glossary("Fetch directive", "Fetch ディレクティブ")}}に対する代替として提供します。</dd> + <dt>{{CSP("font-src")}}</dt> + <dd>{{cssxref("@font-face")}} によってロードされるフォントに対する有効なソースを指定します。</dd> + <dt>{{CSP("frame-src")}}</dt> + <dd>{{HTMLElement("frame")}} や {{HTMLElement("iframe")}} のような要素によってロードされる入れ子状のコンテンツの閲覧に対する有効なソースを指定します。</dd> + <dt>{{CSP("img-src")}}</dt> + <dd>画像や favicon に対する有効なソースを定義します。</dd> + <dt>{{CSP("manifest-src")}}</dt> + <dd>アプリケーションのマニフェストファイルに対する有効なソースを指定します。</dd> + <dt>{{CSP("media-src")}}</dt> + <dd>{{HTMLElement("audio")}}、{{HTMLElement("video")}} や {{HTMLElement("track")}} 要素によってロードするメディアに対する有効なソースを指定します。</dd> + <dt>{{CSP("object-src")}}</dt> + <dd>{{HTMLElement("object")}}、 {{HTMLElement("embed")}} や {{HTMLElement("applet")}} 要素に対する有効なソースを指定します。</dd> + <dd class="note"><code>object-src</code> で制御される要素は、おそらく古い HTML 要素に該当すると見なされ、新しい標準機能が利用できません (セキュリティ属性の <code>sandbox</code> や <code><iframe></code> の <code>allow</code> など)。従って、このフェッチディレクティブで制限を掛けることが<strong>推奨されます</strong> (例えば、可能であれば <code>object-src 'none'</code> を設定するなど)。</dd> + <dt>{{CSP("prefetch-src")}}{{experimental_inline}}</dt> + <dd>事前にフェッチされるか描画される有効なソースを指定します。</dd> + <dt>{{CSP("script-src")}}</dt> + <dd>JavaScript に対する有効なソースを指定します。</dd> + <dt>{{CSP("script-src-elem")}}{{experimental_inline}}</dt> + <dd>JavaScript の {{HTMLElement("script")}} 要素に対する有効なソースを指定します。</dd> + <dt>{{CSP("script-src-attr")}}{{experimental_inline}}</dt> + <dd>JavaScript のインラインイベントハンドラーに対する有効なソースを指定します。</dd> +</dl> + +<dl> + <dt>{{CSP("style-src")}}</dt> + <dd>スタイルシートに対する有効なソースを指定します。</dd> + <dt>{{CSP("style-src-elem")}}{{experimental_inline}}</dt> + <dd>スタイルシートの {{HTMLElement("style")}} および {{HTMLElement("link")}} 要素に <code>rel="stylesheet"</code> がついたもののに対する有効なソースを指定します。</dd> + <dt>{{CSP("style-src-attr")}}{{experimental_inline}}</dt> + <dd>個々の DOM 要素に適用されるインラインスタイルの有効なソースを指定します。</dd> + <dt>{{CSP("worker-src")}}{{experimental_inline}}</dt> + <dd>{{domxref("Worker")}}, {{domxref("SharedWorker")}}, {{domxref("ServiceWorker")}} スクリプトに対する有効なソースを指定します。</dd> +</dl> + +<h3 id="Document_directives" name="Document_directives">{{Glossary("Document directive", "文書ディレクティブ")}}</h3> + +<p>文書ディレクティブは、ポリシーが適用される文書もしくは <a href="/ja/docs/Web/API/Web_Workers_API">Worker</a> 環境のプロパティを管理します。</p> + +<h4 id="List_of_Content_Security_Policy_Document_directives" name="List_of_Content_Security_Policy_Document_directives">Content Security Policy 文書ディレクティブの一覧</h4> + +<dl> + <dt>{{CSP("base-uri")}}</dt> + <dd>文書の {{HTMLElement("base")}} 要素で使用される URL を制限します。</dd> + <dt>{{CSP("plugin-types")}}</dt> + <dd>ロードされるリソースのタイプを限定することで、文書に埋め込まれるプラグインの組を制限します。</dd> + <dt>{{CSP("sandbox")}}</dt> + <dd>{{HTMLElement("iframe")}} と {{htmlattrxref("sandbox", "iframe")}} 属性に類似した要求リソースに対してサンドボックスを有効にします。</dd> +</dl> + +<h3 id="Navigation_directives" name="Navigation_directives">{{Glossary("Navigation directive", "ナビゲーションディレクティブ")}}</h3> + +<p>ナビゲーションディレクティブは、例えばユーザーが移動する場所やフォームを送信する場所を管理します。</p> + +<h4 id="List_of_Content_Security_Policy_Navigation_directives" name="List_of_Content_Security_Policy_Navigation_directives">Content Security Policy ナビゲーションディレクティブの一覧</h4> + +<dl> + <dt>{{CSP("form-action")}}</dt> + <dd>指定のコンテキストからフォームの送信先として使用される URL を制限します。</dd> + <dt>{{CSP("frame-ancestors")}}</dt> + <dd>{{HTMLElement("frame")}}, {{HTMLElement("iframe")}}, {{HTMLElement("object")}}, {{HTMLElement("embed")}}, もしくは {{HTMLElement("applet")}} によってページに埋め込まれた有効な親を指定します。</dd> + <dt>{{CSP("navigate-to")}}{{experimental_inline}}</dt> + <dd>{{HTMLElement("form")}} ({{CSP("form-action")}} が指定されていない場合), {{HTMLElement("a")}}, {{DOMxRef("window.location")}}, {{DOMxRef("window.open")}}, など、あらゆる方法で文書からナビゲーションを行うことができる URL を制限します。</dd> +</dl> + +<h3 id="Reporting_directives" name="Reporting_directives">{{Glossary("Reporting directive", "報告ディレクティブ")}}</h3> + +<p>報告ディレクティブは CSP 違反の報告過程を制御します。 {{HTTPHeader("Content-Security-Policy-Report-Only")}} ヘッダーも参照してください。</p> + +<h4 id="List_of_Content_Security_Policy_Reporting_directives" name="List_of_Content_Security_Policy_Reporting_directives">Content Security Policy 報告ディレクティブの一覧</h4> + +<dl> + <dt>{{CSP("report-uri")}}{{deprecated_inline}}</dt> + <dd>ユーザーエージェントにコンテンツセキュリティポリシーの違反を報告するよう指示します。これらの違反の報告は、 {{Glossary("JSON")}} 文書を HTTP の <code>POST</code> リクエストで指定された URI に送信することで行われます。 + <div class="warning"> + <p>{{CSP("report-to")}} ディレクティブは非推奨の <code><strong>report-uri</strong></code> ディレクティブを置き換えることを意図していますが、 {{CSP("report-to")}} はまだ多くのブラウザーで対応されていません。そのため、ブラウザーで {{CSP("report-to")}} の対応が行われるまでは現在のブラウザーとの互換性のため、 <code><strong>report-uri</strong></code> および {{CSP("report-to")}} の両方を指定することができます。</p> + + <pre class="syntaxbox notranslate">Content-Security-Policy: ...; report-uri https://endpoint.example.com; report-to groupname</pre> + + <p>{{CSP("report-to")}} に対応したブラウザーでは、 <code><strong>report-uri</strong></code> ディレクティブは無視されます。</p> + </div> + </dd> + <dt>{{CSP("report-to")}}{{experimental_inline}}</dt> + <dd><code>SecurityPolicyViolationEvent</code> を発生させます。</dd> +</dl> + +<h3 id="Other_directives" name="Other_directives">その他のディレクティブ</h3> + +<dl> + <dt>{{CSP("block-all-mixed-content")}}</dt> + <dd>ページが HTTPS を使用して読み込まれた際に、 HTTP を使用して資産を読み込むことを防止します。</dd> + <dt>{{CSP("referrer")}}{{deprecated_inline}}{{non-standard_inline}}</dt> + <dd>ページから離れる際の Referer ヘッダー内の情報を指定するために使用されていました。代わりに {{HTTPHeader("Referrer-Policy")}} ヘッダーを使用してください。</dd> + <dt>{{CSP("require-sri-for")}}{{experimental_inline}}</dt> + <dd>ページ上のスクリプトやスタイルに {{Glossary("SRI")}} の使用を要求します。</dd> + <dt>{{CSP("require-trusted-types-for")}}{{experimental_inline}}</dt> + <dd>DOM XSS インジェクションシンクで <a href="https://w3c.github.io/webappsec-trusted-types/dist/spec/">Trusted Types</a> を強制します。</dd> +</dl> + +<dl> + <dt>{{CSP("trusted-types")}}{{experimental_inline}}</dt> + <dd><a href="https://w3c.github.io/webappsec-trusted-types/dist/spec/">Trusted Types</a> ポリシーのホワイトリストを指定するために使用します (Trusted Types は、アプリケーションが DOM XSS インジェクションシンクをロックダウンして、文字列の代わりにスプーフィング不可能な型付きの値のみを受け入れるようにします)。</dd> +</dl> + +<dl> + <dt>{{CSP("upgrade-insecure-requests")}}</dt> + <dd>安全でない URL (HTTP で提供されているもの) をすべて安全な URL (HTTPS で提供されているもの) に置き換えたかのように扱うようにユーザエージェントに指示します。このディレクティブは、書き換えが必要な安全でない古い URL が大量にあるウェブサイトを対象としています。</dd> +</dl> + +<h2 id="CSP_in_workers" name="CSP_in_workers">Worker 内の CSP</h2> + +<p><a href="/ja/docs/Web/API/Worker">Worker</a> は、一般的に文書 (もしくは親 Worker) の Content Security Policy によって管理されません。Worker に対する Content Security Policy を指定するには、Worker スクリプト自身が要求したリクエストに対して <code>Content-Security-Policy</code> レスポンスヘッダーを設定して下さい。</p> + +<p>Worker スクリプトのオリジンがグローバルで一意の識別子の場合、(例えば、URL がデータやブロブのスキーマの場合)、例外に当たります。この場合、Worker は文書もしくは作成元の Worker の Content Security Policy を継承します。</p> + +<h2 id="Multiple_content_security_policies" name="Multiple_content_security_policies">複数の CSP</h2> + +<p>CSP では、<code>Content-Security-Policy</code> ヘッダー、{{HTTPHeader("Content-Security-Policy-Report-Only")}} ヘッダーや {{HTMLElement("meta")}} 要素を経由したものを含む、リソースに対して複数のポリシーを指定することができます。</p> + +<p>以下の例のように、 <code>Content-Security-Policy</code> ヘッダーを複数回使うことができます。ここでは {{CSP("connect-src")}} ディレクティブに特に注意してください。2つ目のポリシーでは接続を許可しているにもかかわらず、1つ目のポリシーには <code>connect-src 'none'</code> が含まれています。追加のポリシーを追加すると、保護されたリソースの機能が<em>さらに制限することができる</em>だけで、接続は許可されず、最も厳密なポリシーとして <code>connect-src 'none'</code> が強制されます。</p> + +<pre class="notranslate">Content-Security-Policy: default-src 'self' http://example.com; + connect-src 'none'; +Content-Security-Policy: connect-src http://example.com/; + script-src http://example.com/</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<p>例: 安全でない inline/eval を無効にし、https 経由でのリソース (画像、フォント、スクリプトなど) のロードを許します。</p> + +<pre class="notranslate">// ヘッダー +Content-Security-Policy: default-src https: + +// メタタグ +<meta http-equiv="Content-Security-Policy" content="default-src https:"> +</pre> + +<p>例: 修正のためにインラインコードを多用している既存のサイトで、https 経由でのみロードされるリソースを明確にし、プラグインを無効にします。</p> + +<pre class="notranslate">Content-Security-Policy: default-src https: 'unsafe-eval' 'unsafe-inline'; object-src 'none'</pre> + +<p>例: 上記のポリシーを実装せず、代わりに、発生するであろう違反を報告します。</p> + +<pre class="notranslate">Content-Security-Policy-Report-Only: default-src https:; report-uri /csp-violation-report-endpoint/</pre> + +<p>その他の例は、 <a href="https://infosec.mozilla.org/guidelines/web_security#Examples_5">Mozilla Web Security Guidelines</a> を参照して下さい。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("CSP 3.0")}}</td> + <td>{{Spec2("CSP 3.0")}}</td> + <td><code>manifest-src</code>, <code>navigate-to</code>, <code>report-to</code>, <code>strict-dynamic</code>, <code>worker-src</code> を追加。 <code>frame-src</code> の非推奨を解除。 <code>report-uri</code> を <code>report-to</code> の代わりに非推奨化。</td> + </tr> + <tr> + <td>{{specName("Mixed Content")}}</td> + <td>{{Spec2("Mixed Content")}}</td> + <td><code>block-all-mixed-content</code> を追加。</td> + </tr> + <tr> + <td>{{specName("Subresource Integrity")}}</td> + <td>{{Spec2("Subresource Integrity")}}</td> + <td><code>require-sri-for</code> を追加。</td> + </tr> + <tr> + <td>{{specName("Upgrade Insecure Requests")}}</td> + <td>{{Spec2("Upgrade Insecure Requests")}}</td> + <td><code>upgrade-insecure-requests</code> を追加。</td> + </tr> + <tr> + <td>{{specName("CSP 1.1")}}</td> + <td>{{Spec2("CSP 1.1")}}</td> + <td><code>base-uri</code>, <code>child-src</code>, <code>form-action</code>, <code>frame-ancestors</code>, <code>plugin-types</code>, <code>referrer</code>, <code>report-uri</code> を追加。 <code>frame-src</code> を非推奨化。</td> + </tr> + <tr> + <td>{{specName("CSP 1.0")}}</td> + <td>{{Spec2("CSP 1.0")}}</td> + <td><code>connect-src</code>, <code>default-src</code>, <code>font-src</code>, <code>frame-src</code>, <code>img-src</code>, <code>media-src</code>, <code>object-src</code>, report-uri, <code>sandbox</code>, <code>script-src,</code>, <code>style-src</code> を定義。</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.csp.Content-Security-Policy")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy-Report-Only")}}</li> + <li><a href="/ja/docs/Web/HTTP/CSP">コンテンツセキュリティポリシーを学ぶ</a></li> + <li><a href="/ja/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy">WebExtensions のコンテンツセキュリティ</a></li> + <li><a href="https://csp.withgoogle.com/docs/strict-csp.html">Adopting a strict policy</a></li> + <li><a href="https://github.com/google/csp-evaluator">CSP Evaluator</a> - コンテンツセキュリティポリシーを評価する</li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/manifest-src/index.html b/files/ja/web/http/headers/content-security-policy/manifest-src/index.html new file mode 100644 index 0000000000..e5678daf69 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/manifest-src/index.html @@ -0,0 +1,95 @@ +--- +title: 'CSP: manifest-src' +slug: Web/HTTP/Headers/Content-Security-Policy/manifest-src +tags: + - CSP + - Content-Security-Policy + - Directive + - HTTP + - Manifest + - Reference + - Security + - manifest-src + - source + - セキュリティ + - ディレクティブ + - マニフェスト +translation_of: Web/HTTP/Headers/Content-Security-Policy/manifest-src +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の {{HTTPHeader("Content-Security-Policy")}}<code>: <strong>manifest-src</strong></code> ディレクティブは、どの<a href="/ja/docs/Web/Manifest">マニフェスト</a>がリソースに適用されるかを指定します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">CSP バージョン</th> + <td>3</td> + </tr> + <tr> + <th scope="row">ディレクティブ種別</th> + <td>{{Glossary("Fetch directive", "フェッチディレクティブ")}}</td> + </tr> + <tr> + <th scope="row">{{CSP("default-src")}} による代替</th> + <td>あり。このディレクティブがない場合、ユーザーエージェントは <code>default-src</code> ディレクティブを探します。</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p><code>manifest-src</code> ポリシーには、1つ以上のソースが許可されています。</p> + +<pre class="syntaxbox">Content-Security-Policy: manifest-src <source>; +Content-Security-Policy: manifest-src <source> <source>; +</pre> + +<h3 id="Sources" name="Sources">ソース</h3> + +<p>{{page("/ja/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src", "Sources")}}</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Violation_cases" name="Violation_cases">違反例</h3> + +<p>この CSP ヘッダーがある場合、</p> + +<pre class="brush: bash">Content-Security-Policy: manifest-src https://example.com/</pre> + +<p>以下の {{HTMLElement("link")}} の各要素はブロックされ、読み込まれません。</p> + +<pre class="brush: html"><link rel="manifest" href="https://not-example.com/manifest"></pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("CSP 3.0", "#directive-manifest-src", "manifest-src")}}</td> + <td>{{Spec2('CSP 3.0')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.csp.Content-Security-Policy.manifest-src")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li><a href="/ja/docs/Web/Manifest">ウェブアプリマニフェスト</a></li> + <li>{{HTMLElement("link")}}</li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/media-src/index.html b/files/ja/web/http/headers/content-security-policy/media-src/index.html new file mode 100644 index 0000000000..a3d3caf71e --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/media-src/index.html @@ -0,0 +1,103 @@ +--- +title: 'CSP: media-src' +slug: Web/HTTP/Headers/Content-Security-Policy/media-src +tags: + - CSP + - Content-Security-Policy + - Directive + - HTTP + - Media + - Reference + - Security + - media-src + - source + - セキュリティ + - ディレクティブ + - メディア +translation_of: Web/HTTP/Headers/Content-Security-Policy/media-src +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) における <code><strong>media-src</strong></code> ディレクティブは、 {{HTMLElement("audio")}} および {{HTMLElement("video")}} 要素を使用して読み込むメディアの有効なソースを指定します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">CSP バージョン</th> + <td>1</td> + </tr> + <tr> + <th scope="row">ディレクティブ種別</th> + <td>{{Glossary("Fetch directive", "フェッチディレクティブ")}}</td> + </tr> + <tr> + <th scope="row">{{CSP("default-src")}} による代替</th> + <td>あり。このディレクティブがない場合、ユーザーエージェントは <code>default-src</code> ディレクティブを探します。</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p><code>media-src</code> ポリシーには、1つ以上のソースが許可されています。</p> + +<pre class="syntaxbox">Content-Security-Policy: media-src <source>; +Content-Security-Policy: media-src <source> <source>; +</pre> + +<h3 id="Sources" name="Sources">ソース</h3> + +<p>{{page("/ja/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src", "Sources")}}</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Violation_cases" name="Violation_cases">違反例</h3> + +<p>この CSP ヘッダーがある場合、</p> + +<pre class="brush: bash">Content-Security-Policy: media-src https://example.com/</pre> + +<p>以下の {{HTMLElement("audio")}}, {{HTMLElement("video")}}, {{HTMLElement("track")}} の各要素はブロックされ、読み込まれません。</p> + +<pre class="brush: html"><audio src="https://not-example.com/audio"></audio> + +<video src="https://not-example.com/video"> + <track kind="subtitles" src="https://not-example.com/subtitles"> +</video></pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("CSP 3.0", "#directive-media-src", "media-src")}}</td> + <td>{{Spec2('CSP 3.0')}}</td> + <td>変更なし</td> + </tr> + <tr> + <td>{{specName("CSP 1.1", "#directive-media-src", "media-src")}}</td> + <td>{{Spec2('CSP 1.1')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.csp.Content-Security-Policy.media-src")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>{{HTMLElement("audio")}}, {{HTMLElement("video")}}, {{HTMLElement("track")}}</li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/object-src/index.html b/files/ja/web/http/headers/content-security-policy/object-src/index.html new file mode 100644 index 0000000000..ebff246395 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/object-src/index.html @@ -0,0 +1,105 @@ +--- +title: 'CSP: object-src' +slug: Web/HTTP/Headers/Content-Security-Policy/object-src +tags: + - CSP + - Content-Security-Policy + - Directive + - HTTP + - Object + - Reference + - Security + - object-src + - source + - セキュリティ + - ディレクティブ +translation_of: Web/HTTP/Headers/Content-Security-Policy/object-src +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の {{HTTPHeader("Content-Security-Policy")}} の <code><strong>object-src</strong></code> ディレクティブは、 {{HTMLElement("object")}}, {{HTMLElement("embed")}}, {{HTMLElement("applet")}} の各要素の妥当なソースを指定します。</p> + +<p>{{HTMLElement("object")}}, {{HTMLElement("embed")}}, {{HTMLElement("applet")}} の各要素の許可される種類を設定するには、 {{CSP("plugin-types")}} ディレクティブを使用してください。</p> + +<p class="note"><code>object-src</code> で制御される要素は、おそらく偶然にも古い HTML 要素と見なされており、新しい標準機能が搭載されていません (<code><iframe></code> の <code>sandbox</code> や <code>allow</code> などのセキュリティ属性など)。したがって、このフェッチディレクティブで制限することを<a href="https://csp.withgoogle.com/docs/strict-csp.html">推奨します</a> (例えば、可能であれば明示的に <code>object-src 'none'</code> を設定するなど)。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">CSP バージョン</th> + <td>1</td> + </tr> + <tr> + <th scope="row">ディレクティブ種別</th> + <td>{{Glossary("Fetch directive", "フェッチディレクティブ")}}</td> + </tr> + <tr> + <th scope="row">{{CSP("default-src")}} による代替</th> + <td>あり。このディレクティブがない場合、ユーザーエージェントは <code>default-src</code> ディレクティブを探します。</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p>object-src ポリシーには、1つまたは複数のソースが許可されています。</p> + +<pre class="syntaxbox">Content-Security-Policy: object-src <source>; +Content-Security-Policy: object-src <source> <source>; +</pre> + +<h3 id="Sources" name="Sources">ソース</h3> + +<p>{{page("/ja/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src", "Sources")}}</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Violation_case" name="Violation_case">違反例</h3> + +<p>この CSP ヘッダーがある場合、</p> + +<pre class="brush: bash">Content-Security-Policy: object-src https://example.com/</pre> + +<p>以下の {{HTMLElement("object")}}, {{HTMLElement("embed")}}, {{HTMLElement("applet")}} の各要素はブロックされ、読み込まれません。</p> + +<pre class="brush: html"><embed src="https://not-example.com/flash"></embed> +<object data="https://not-example.com/plugin"></object> +<applet archive="https://not-example.com/java"></applet></pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("CSP 3.0", "#directive-object-src", "object-src")}}</td> + <td>{{Spec2('CSP 3.0')}}</td> + <td>変更なし</td> + </tr> + <tr> + <td>{{specName("CSP 1.1", "#directive-object-src", "object-src")}}</td> + <td>{{Spec2('CSP 1.1')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.csp.Content-Security-Policy.object-src")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>{{HTMLElement("object")}}, {{HTMLElement("embed")}}, and {{HTMLElement("applet")}}</li> + <li>{{CSP("plugin-types")}}</li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/plugin-types/index.html b/files/ja/web/http/headers/content-security-policy/plugin-types/index.html new file mode 100644 index 0000000000..e0c4814eff --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/plugin-types/index.html @@ -0,0 +1,123 @@ +--- +title: 'CSP: plugin-types' +slug: Web/HTTP/Headers/Content-Security-Policy/plugin-types +tags: + - CSP + - Content-Security-Policy + - Directive + - Flash + - HTTP + - Java + - Plugin + - Plugins + - Security + - セキュリティ + - ディレクティブ + - プラグイン +translation_of: Web/HTTP/Headers/Content-Security-Policy/plugin-types +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) の <code><strong>plugin-types</strong></code> ディレクティブは、文書に埋め込むことができるプラグインのセットを、読み込むことができるリソースの種類を制限することによって制限します。</p> + +<p>{{HTMLElement("embed")}}, {{HTMLElement("object")}}, {{HTMLElement("applet")}} の各要素のインスタンス化は、次の場合に失敗します。</p> + +<ul> + <li>要素が妥当な MIME 型を宣言していなかった場合</li> + <li>宣言された型が <code>plugin-types</code> ディレクティブで指定されたもののいずれにも一致しなかった場合</li> + <li>読み込まれたリソースが宣言された型に一致しなかった場合</li> +</ul> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">CSP バージョン</th> + <td>2</td> + </tr> + <tr> + <th scope="row">ディレクティブ種別</th> + <td>{{Glossary("Document directive", "文書ディレクティブ")}}</td> + </tr> + <tr> + <th scope="row">{{CSP("default-src")}} による代替</th> + <td>なし。これを設定しないと何も許可されない。</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p>1つ以上の <a href="/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME 型</a>を <code>plugin-types</code> ポリシーに設定することができます。</p> + +<pre class="syntaxbox">Content-Security-Policy: plugin-types <type>/<subtype>; +Content-Security-Policy: plugin-types <type>/<subtype> <type>/<subtype>; +</pre> + +<dl> + <dt><type>/<subtype></dt> + <dd>妥当な <a href="/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types">MIME 型</a>。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Disallowing_plugins" name="Disallowing_plugins">プラグインを不許可にする</h3> + +<p>全てのプラグインを不許可にするには、 {{CSP("object-src")}} ディレクティブを <code>'none'</code> に設定すればプラグインが不許可になります。 <code>plugin-types</code> ディレクティブは、 <code>object-src</code> でプラグインを許可している場合に限って使用することができます。</p> + +<pre class="brush: html"><meta http-equiv="Content-Security-Policy" content="object-src 'none'"></pre> + +<h3 id="Allowing_Flash_content" name="Allowing_Flash_content">Flash コンテンツの許可</h3> + +<p>以下のコンテンツセキュリティポリシーは、</p> + +<pre class="brush: bash">Content-Security-Policy: plugin-types application/x-shockwave-flash</pre> + +<p>次のような Flash オブジェクトの読み込みを許可します。</p> + +<pre class="brush: html"><object data="https://example.com/flash" type="application/x-shockwave-flash"></object></pre> + +<h3 id="Allowing_Java_applets" name="Allowing_Java_applets">Java アプレットの許可</h3> + +<p>{{HTMLElement("applet")}} を読み込むには、 <code>application/x-java-applet</code> を指定する必要があります。</p> + +<pre class="brush: bash">Content-Security-Policy: plugin-types application/x-java-applet</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("CSP 3.0", "#directive-plugin-types", "plugin-types")}}</td> + <td>{{Spec2('CSP 3.0')}}</td> + <td>変更なし</td> + </tr> + <tr> + <td>{{specName("CSP 1.1", "#directive-plugin-types", "plugin-types")}}</td> + <td>{{Spec2('CSP 1.1')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.csp.Content-Security-Policy.plugin-types")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}: {{CSP("object-src")}}</li> + <li>{{HTMLElement("object")}}</li> + <li>{{HTMLElement("embed")}}</li> + <li>{{HTMLElement("applet")}}</li> + <li>{{HTTPHeader("X-Content-Type-Options")}}</li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/prefetch-src/index.html b/files/ja/web/http/headers/content-security-policy/prefetch-src/index.html new file mode 100644 index 0000000000..27365cada8 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/prefetch-src/index.html @@ -0,0 +1,89 @@ +--- +title: 'CSP: prefetch-src' +slug: Web/HTTP/Headers/Content-Security-Policy/prefetch-src +tags: + - CSP + - Content Security Policy + - Directive + - HTTP + - Reference + - prefetch-src + - コンテンツセキュリティポリシー + - ディレクティブ +translation_of: Web/HTTP/Headers/Content-Security-Policy/prefetch-src +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) における <code><strong>prefetch-src</strong></code> ディレクティブは、事前読み込みまたは事前描画することができる有効なリソースを指定します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">CSP バージョン</th> + <td>3</td> + </tr> + <tr> + <th scope="row">ディレクティブ種別</th> + <td>{{Glossary("Fetch directive", "フェッチディレクティブ")}}</td> + </tr> + <tr> + <th scope="row">{{CSP("default-src")}} fallback</th> + <td>あり。このディレクティブがない場合、ユーザーエージェントは <code>default-src</code> ディレクティブを探します。</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p><code>prefetch-src</code> ポリシーには、1つ以上のソースが許可されています。</p> + +<pre class="syntaxbox">Content-Security-Policy: prefetch-src <source>; +Content-Security-Policy: prefetch-src <source> <source>; +</pre> + +<h3 id="Sources" name="Sources">ソース</h3> + +<p>{{page("/ja/docs/Web/HTTP/Headers/Content-Security-Policy/default-src", "common_sources")}}</p> + +<h2 id="Example" name="Example">例</h2> + +<h3 id="Prefetch_resources_do_not_match_header" name="Prefetch_resources_do_not_match_header">ヘッダーが一致しないリソースの事前読み込み</h3> + +<p>次のコンテンツセキュリティポリシーを持つページがあったとします。</p> + +<pre>Content-Security-Policy: prefetch-src https://example.com/ +</pre> + +<p>次のコードで読み込もうとすると、指定された URL が <code>prefetch-src</code> のソース一覧にないので、ネットワークエラーになります。</p> + +<pre><link rel="prefetch" src="https://example.org/"></link> +<link rel="prerender" src="https://example.org/"></link></pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("CSP 3.0", "#prefetch-src", "prefetch-src")}}</td> + <td>{{Spec2("CSP 3.0")}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p>{{Compat("http.headers.csp.Content-Security-Policy.prefetch-src")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/referrer/index.html b/files/ja/web/http/headers/content-security-policy/referrer/index.html new file mode 100644 index 0000000000..faa4078d95 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/referrer/index.html @@ -0,0 +1,61 @@ +--- +title: 'CSP: referrer' +slug: Web/HTTP/Headers/Content-Security-Policy/referrer +tags: + - CSP + - Content-Security-Policy + - Directive + - HTTP + - Obsolete + - Reference + - Security + - referrer +translation_of: Web/HTTP/Headers/Content-Security-Policy/referrer +--- +<div>{{HTTPSidebar}} {{deprecated_header}}</div> + +<p>HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) の <code><strong>referrer</strong></code> ディレクティブは、ページから離れたリンクの {{HTTPHeader("Referer")}} ヘッダー (元の仕様書の綴りミスのため <code>r</code> は単一) の情報を指定するために使用されます。この API は非推奨であり、ブラウザーから削除されました。</p> + +<div class="note"> +<p>代わりに {{HTTPHeader("Referrer-Policy")}} ヘッダーを使用してください。</p> +</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Content-Security-Policy: referrer <referrer-policy>;</pre> + +<p><code><referrer-policy></code> は以下のいずれかの値になります:</p> + +<dl> + <dt>"no-referrer"</dt> + <dd>{{HTTPHeader("Referer")}} ヘッダーは完全に除外されます。リファラー情報はリクエストと共に送信されません。</dd> + <dt>"none-when-downgrade"</dt> + <dd>これがポリシーが指定されていない場合のユーザーエージェントの既定の動作です。以前と同じ安全性 (HTTPS->HTTPS) の宛先にはオリジンが送信されますが、安全性の低い宛先 (HTTPS->HTTP) には送信されません。</dd> + <dt>"origin"</dt> + <dd>すべての場合で、リファラーとして文書ののオリジンのみ送信されます。<br> + <code>https://example.com/page.html</code> の文書の場合は <code>https://example.com/</code> というリファラーが送信されます。</dd> + <dt>"origin-when-cross-origin" / "origin-when-crossorigin"</dt> + <dd>同一オリジンのリクエストを実行する際は完全な URL が送信されますが、それ以外の場合は文書のオリジンのみ送信されます。</dd> + <dt>"unsafe-url"</dt> + <dd>同一オリジンまたはオリジン間のリクエストを実行する際は完全な URL (引数は除外) が送信されます。このポリシーは、 TLS で保護されたリソースから保護されていないオリジンへのオリジンとパスを漏洩させます。この設定の影響を慎重に検討してください。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre class="notranslate">Content-Security-Policy: referrer "none";</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<p>いずれの仕様書の一部でもありません。</p> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p>{{Compat("http.headers.csp.referrer")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>{{HTTPHeader("Referrer-Policy")}} ヘッダー</li> + <li>{{HTTPHeader("Referer")}} ヘッダー</li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/report-to/index.html b/files/ja/web/http/headers/content-security-policy/report-to/index.html new file mode 100644 index 0000000000..dc2c8d4546 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/report-to/index.html @@ -0,0 +1,83 @@ +--- +title: 'CSP: report-to' +slug: Web/HTTP/Headers/Content-Security-Policy/report-to +tags: + - CSP + - Content-Security-Policy + - HTTP + - report-to + - コンテンツセキュリティポリシー + - セキュリティ + - レスポンスヘッダー + - 報告 +translation_of: Web/HTTP/Headers/Content-Security-Policy/report-to +--- +<div>{{HTTPSidebar}}</div> + +<p><span class="seoSummary"><code>Content-Security-Policy</code> の <dfn><code>Report-To</code></dfn> は HTTP のレスポンスヘッダーフィールドで、ユーザーエージェントにオリジンの報告先のエンドポイントを保存するよう指示します。</span></p> + +<pre class="syntaxbox">Content-Security-Policy: ...; report-to groupname +</pre> + +<p>このディレクティブは単体では効果がありませんが、他のディレクティブとの組み合わせでのみ意味を持ちます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">CSP version</th> + <td>1</td> + </tr> + <tr> + <th scope="row">ディレクティブ種別</th> + <td>{{Glossary("Reporting directive", "報告ディレクティブ")}}</td> + </tr> + <tr> + <th colspan="2" scope="row">このディレクティブは {{HTMLElement("meta")}} 要素では対応していません。</th> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre>Content-Security-Policy: report-to <json-field-value>;</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<p>詳しい情報や例は、 {{HTTPHeader("Content-Security-Policy-Report-Only")}} を参照してください。</p> + +<pre><a href="http://wicg.github.io/reporting/#report-to" id="ref-for-report-to①">Report-To</a>: { "<a href="http://wicg.github.io/reporting/#group" id="ref-for-group①">group</a>": "csp-endpoint", + "<a href="http://wicg.github.io/reporting/#max-age" id="ref-for-max-age①">max_age</a>": 10886400, + "<a href="http://wicg.github.io/reporting/#endpoints" id="ref-for-endpoints②">endpoints</a>": [ + { "<a href="http://wicg.github.io/reporting/#url" id="ref-for-url②">url</a>": "https://example.com/csp-reports" } + ] }, + { "<a href="http://wicg.github.io/reporting/#group" id="ref-for-group②">group</a>": "hpkp-endpoint", + "<a href="http://wicg.github.io/reporting/#max-age" id="ref-for-max-age②">max_age</a>": 10886400, + "<a href="http://wicg.github.io/reporting/#endpoints" id="ref-for-endpoints③">endpoints</a>": [ + { "<a href="http://wicg.github.io/reporting/#url" id="ref-for-url③">url</a>": "https://example.com/hpkp-reports" } + ] } +<a href="https://w3c.github.io/webappsec-csp/#content-security-policy" id="ref-for-content-security-policy①">Content-Security-Policy</a>: ...; <a href="https://w3c.github.io/webappsec-csp/#directives-reporting" id="ref-for-directives-reporting①">report-to</a> csp-endpoint +</pre> + +<pre><a href="http://wicg.github.io/reporting/#report-to" id="ref-for-report-to">Report-To</a>: { "<a href="http://wicg.github.io/reporting/#group" id="ref-for-group">group</a>": "endpoint-1", + "<a href="http://wicg.github.io/reporting/#max-age" id="ref-for-max-age">max_age</a>": 10886400, + "<a href="http://wicg.github.io/reporting/#endpoints" id="ref-for-endpoints①">endpoints</a>": [ + { "<a href="http://wicg.github.io/reporting/#url" id="ref-for-url">url</a>": "https://example.com/reports" }, + { "<a href="http://wicg.github.io/reporting/#url" id="ref-for-url①">url</a>": "https://backup.com/reports" } + ] } + +<a href="https://w3c.github.io/webappsec-csp/#content-security-policy" id="ref-for-content-security-policy">Content-Security-Policy</a>: ...; <a href="https://w3c.github.io/webappsec-csp/#directives-reporting" id="ref-for-directives-reporting">report-to</a> endpoint-1</pre> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden"> +<p>このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> +</div> + +<p>{{Compat("http.headers.csp.Content-Security-Policy.report-to")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>{{HTTPHeader("Content-Security-Policy-Report-Only")}}</li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/require-sri-for/index.html b/files/ja/web/http/headers/content-security-policy/require-sri-for/index.html new file mode 100644 index 0000000000..be2bc8edd9 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/require-sri-for/index.html @@ -0,0 +1,59 @@ +--- +title: 'CSP: require-sri-for' +slug: Web/HTTP/Headers/Content-Security-Policy/require-sri-for +tags: + - CSP + - Directive + - HTTP + - Reference + - Security + - Subresource Integrity + - require-sri-for +translation_of: Web/HTTP/Headers/Content-Security-Policy/require-sri-for +--- +<div>{{Obsolete_header}}</div> + +<p><a href="/ja/docs/Web/HTTP">HTTP</a> の {{HTTPHeader("Content-Security-Policy")}} における <code><strong>require-sri-for</strong></code> ディレクティブは、クライアントにページ上でスクリプトやスタイルの<a href="/ja/docs/Web/Security/Subresource_Integrity">サブリソース完全性</a>を要求することを支持します。</p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Content-Security-Policy: require-sri-for script; +Content-Security-Policy: require-sri-for style; +Content-Security-Policy: require-sri-for script style; +</pre> + +<dl> + <dt><code>script</code></dt> + <dd>{{Glossary("SRI")}} をスクリプトに要求します。</dd> + <dt><code>style</code></dt> + <dd>{{Glossary("SRI")}} をスタイルシートに要求します。</dd> + <dt><code>script style</code></dt> + <dd>{{Glossary("SRI")}} をスクリプトとスタイルシートの両方に要求します。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<p>このディレクティブを使ってスクリプトやスタイルに SRI を要求するようにサイトを設定している場合の設定です。</p> + +<pre class="notranslate">Content-Security-Policy: require-sri-for script style</pre> + +<p>以下のような {{HTMLElement("script")}} 要素は正しい <code>integrity</code> 属性を使用している場合に限り、読み込まれます。</p> + +<pre class="brush: html; example-good notranslate"><script src="https://code.jquery.com/jquery-3.1.1.slim.js" + integrity="sha256-5i/mQ300M779N2OVDrl16lbohwXNUdzL/R2aVUXyXWA=" + crossorigin="anonymous"></script></pre> + +<p>しかし、 <code>integrity</code> のないスクリプトは読み込まれなくなります。</p> + +<pre class="brush: html; example-bad notranslate"><script src="https://code.jquery.com/jquery-3.1.1.slim.js"></script></pre> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p>{{Compat("http.headers.csp.Content-Security-Policy.require-sri-for")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li><a href="/ja/docs/Web/Security/Subresource_Integrity">サブリソース完全性</a></li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/sandbox/index.html b/files/ja/web/http/headers/content-security-policy/sandbox/index.html new file mode 100644 index 0000000000..dbb381f9d4 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/sandbox/index.html @@ -0,0 +1,113 @@ +--- +title: 'CSP: sandbox' +slug: Web/HTTP/Headers/Content-Security-Policy/sandbox +tags: + - CSP + - Content-Security-Policy + - Directive + - HTTP + - Sandbox + - Security + - サンドボックス + - セキュリティ + - ディレクティブ +translation_of: Web/HTTP/Headers/Content-Security-Policy/sandbox +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) の <code><strong>sandbox</strong></code> ディレクティブは、 {{HTMLElement("iframe")}} の {{htmlattrxref("sandbox", "iframe")}} 属性と同様に、要求されたリソースに対してサンドボックスを有効にします。これは、ポップアップの防止、プラグインやスクリプトの実行の防止、同一オリジンポリシーの強制などを含むページ操作の制限を適用します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">CSP バージョン</th> + <td>1.1 / 2</td> + </tr> + <tr> + <th scope="row">ディレクティブ種別</th> + <td>{{Glossary("Document directive", "文書ディレクティブ")}}</td> + </tr> + <tr> + <th colspan="2" scope="row">このディレクティブは {{HTMLElement("meta")}} 要素や {{HTTPHeader("Content-Security-policy-Report-Only")}} ヘッダーフィールドでは対応していません。</th> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Content-Security-Policy: sandbox; +Content-Security-Policy: sandbox <value>; +</pre> + +<p><code><value></code> は省略可能で、以下の値の内の一つです。</p> + +<dl> + <dt><code>allow-downloads-without-user-activation</code> {{experimental_inline}}</dt> + <dd>ユーザーによる指示のないダウンロードを許可します。</dd> +</dl> + +<dl> + <dt><code>allow-forms</code></dt> + <dd>埋め込み閲覧コンテキストが、フォームを送信することを許可します。このキーワードが使用されなかった場合、この操作は許可されません。</dd> + <dt><code>allow-modals</code></dt> + <dd>埋め込み閲覧コンテキストが、モーダルウィンドウを開くことを許可します。</dd> + <dt><code>allow-orientation-lock</code></dt> + <dd>埋め込み閲覧コンテキストが、画面の向きをロックする機能を無効化することを許可します。</dd> + <dt><code>allow-pointer-lock</code></dt> + <dd>埋め込み閲覧コンテキストが、 <a href="/ja/docs/WebAPI/Pointer_Lock">Pointer Lock API</a> を使用することを許可します。</dd> + <dt><code>allow-popups</code></dt> + <dd>ポップアップ (<code>window.open</code>, <code>target="_blank"</code>, <code>showModalDialog</code> などによるもの) を許可します。このキーワードが使用されなかった場合、この機能は暗黙に失敗します。</dd> + <dt><code>allow-popups-to-escape-sandbox</code></dt> + <dd>サンドボックス化された文書が、サンドボックスフラグを強制することなく新しいウィンドウを開くことを許可します。これによって、例えば、サードパーティの広告が安全にサンドボックス化される一方、ランディングページには同じ制限が強制されなくなります。</dd> + <dt><code>allow-presentation</code></dt> + <dd>埋め込みを行った者が、 iframe がプレゼンテーションセッションを開始できるかどうかを制御できるようになります。</dd> + <dt><code>allow-same-origin</code></dt> + <dd>コンテンツが通常のオリジンからのものとして扱われることを許可します。このキーワードが使用されなかった場合は、埋め込まれたコンテンツは独自のオリジンからのものとして扱われます。</dd> + <dt><code>allow-scripts</code></dt> + <dd>埋め込み閲覧コンテキストがスクリプトを実行することを許可します (ポップアップウィンドウの生成を除く)。このキーワードが使用されなかった場合は、この操作は許可されません。</dd> + <dt><code>allow-storage-access-by-user-activation</code> {{experimental_inline}}</dt> + <dd>リソースが親のストレージ機能に <a href="/ja/docs/Web/API/Storage_Access_API">Storage Access API</a> でアクセスを要求できるようにします。</dd> + <dt><code>allow-top-navigation</code></dt> + <dd>埋め込み閲覧コンテキストが、最上位の閲覧コンテキストを移動させる (読み込ませる) ことを許可します。このキーワードが使用されなかった場合、この操作は許可されません。</dd> + <dt><code>allow-top-navigation-by-user-activation</code></dt> + <dd>ユーザーの指示で開始された場合に限り、リソースが最上位の閲覧コンテキストを移動させます。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre class="brush: bash">Content-Security-Policy: sandbox allow-scripts;</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + <tr> + <td>{{specName("CSP 3.0", "#directive-sandbox", "sandbox")}}</td> + <td>{{Spec2('CSP 3.0')}}</td> + <td>変更なし</td> + </tr> + <tr> + <td>{{specName("CSP 1.1", "#directive-sandbox", "sandbox")}}</td> + <td>{{Spec2('CSP 1.1')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.csp.Content-Security-Policy.sandbox")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>{{HTMLElement("iframe")}} 要素の {{htmlattrxref("sandbox", "iframe")}} 属性</li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/script-src-elem/index.html b/files/ja/web/http/headers/content-security-policy/script-src-elem/index.html new file mode 100644 index 0000000000..8dd1e35631 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/script-src-elem/index.html @@ -0,0 +1,98 @@ +--- +title: 'CSP: script-src-elem' +slug: Web/HTTP/Headers/Content-Security-Policy/script-src-elem +tags: + - CSP + - Content + - Content-Security-Policy + - Directive + - HTTP + - Reference + - Script + - Security + - script-src + - source +translation_of: Web/HTTP/Headers/Content-Security-Policy/script-src-elem +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) における <strong><code>script-src-elem</code></strong> ディレクティブは、 JavaScript の {{HTMLElement("script")}} 要素の有効なソースを指定しますが、 <code>onclick</code> のようなインラインスクリプトのイベントハンドラーは指定しません。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">CSP バージョン</th> + <td>3</td> + </tr> + <tr> + <th scope="row">ディレクティブ種別</th> + <td>{{Glossary("Fetch directive", "フェッチディレクティブ")}}</td> + </tr> + <tr> + <th scope="row">{{CSP("default-src")}} による代替</th> + <td>あり。このディレクティブがない場合、ユーザーエージェントは {{CSP("script-src")}} ディレクティブを探し、両方ともない場合は、 <code>default-src</code> ディレクティブで代替します。</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p><code>script-src-elem</code> ポリシーには、1つまたは複数のソースが許可されています。</p> + +<pre class="syntaxbox notranslate">Content-Security-Policy: script-src-elem <source>; +Content-Security-Policy: script-src-elem <source> <source>; +</pre> + +<p><code>script-src-elem</code> は {{CSP("script-src")}} との組み合わせで使用することができます。</p> + +<pre class="syntaxbox notranslate">Content-Security-Policy: script-src <source>; +Content-Security-Policy: script-src-elem <source>; +</pre> + +<h3 id="Sources" name="Sources">ソース</h3> + +<p>{{page("/ja/docs/Web/HTTP/Headers/Content-Security-Policy/default-src", "Sources")}}</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Fallback_to_script-src" name="Fallback_to_script-src">script-src へのフォールバック</h3> + +<p><code>script-src-elem</code> 存在しない場合、ユーザーエージェントは {{CSP("script-src")}} ディレクティブで代替し、こちらも同様にない場合は、 {{CSP("default-src")}} で代替します。</p> + +<div class="hidden"> +<p>TODO: Add comprehensive examples.</p> +</div> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("CSP 3.0", "#directive-script-src-elem", "script-src-elem")}}</td> + <td>{{Spec2("CSP 3.0")}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.csp.Content-Security-Policy.script-src-elem")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>{{HTMLElement("script")}}</li> + <li>{{CSP("script-src")}}</li> + <li>{{CSP("script-src-attr")}}</li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/script-src/index.html b/files/ja/web/http/headers/content-security-policy/script-src/index.html new file mode 100644 index 0000000000..f5eaee0890 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/script-src/index.html @@ -0,0 +1,176 @@ +--- +title: 'CSP: script-src' +slug: Web/HTTP/Headers/Content-Security-Policy/script-src +tags: + - CSP + - Content + - Content-Security-Policy + - Directive + - HTTP + - Reference + - Script + - Security + - script-src + - source +translation_of: Web/HTTP/Headers/Content-Security-Policy/script-src +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) の <code><strong>script-src</strong></code> ディレクティブは、 JavaScript の情報なソースを指定します。これは {{HTMLElement("script")}} 要素の中に直接読み込まれる URL だけでなく、インラインのスクリプトイベントハンドラー (<code>onclick</code>) やスクリプト実行のトリガーとなりうる <a href="/ja/docs/Web/XSLT">XSLT スタイルシート</a>のようなものも含まれます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">CSP バージョン</th> + <td>1</td> + </tr> + <tr> + <th scope="row">ディレクティブ種別</th> + <td>{{Glossary("Fetch directive", "フェッチディレクティブ")}}</td> + </tr> + <tr> + <th scope="row">{{CSP("default-src")}} による代替</th> + <td>あり。このディレクティブがない場合、ユーザーエージェントは <code>default-src</code> ディレクティブを探します。</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p><code>script-src</code> ポリシーには、1つまたは複数のソースが許可されています。</p> + +<pre class="syntaxbox notranslate">Content-Security-Policy: script-src <source>; +Content-Security-Policy: script-src <source> <source>; +</pre> + +<h3 id="Sources" name="Sources">ソース</h3> + +<p>{{page("Web/HTTP/Headers/Content-Security-Policy/default-src", "Sources")}}</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Violation_case" name="Violation_case">違反例</h3> + +<p>この CSP ヘッダーがある場合、</p> + +<pre class="brush: bash notranslate">Content-Security-Policy: script-src https://example.com/</pre> + +<p>以下のスクリプトはブロックされ、読み込みや実行が行われません。</p> + +<pre class="brush: html notranslate"><script src="https://not-example.com/js/library.js"></script></pre> + +<p>なお、インラインのイベントハンドラーも同様にブロックされます。</p> + +<pre class="brush: html notranslate"><button id="btn" onclick="doSomething()"></pre> + +<p>これを {{domxref("EventTarget.addEventListener", "addEventListener")}} の呼び出しに置き換えてください。</p> + +<pre class="brush: js notranslate">document.getElementById("btn").addEventListener('click', doSomething);</pre> + +<h3 id="Unsafe_inline_script" name="Unsafe_inline_script">安全ではないインラインのスクリプト</h3> + +<div class="note"> +<p><strong>注:</strong> インラインスタイルとインラインスクリプトを禁止することは、 CSP が提供する最大のセキュリティ上の利点の一つです。しかし、どうしても使用しなければならない場合は、それらを許可する仕組みがいくつかあります。</p> +</div> + +<p>インラインスクリプトとインラインのイベントハンドラーを許可するために <code>'unsafe-inline'</code> や、インラインブロックに一致するノンスソースまたはハッシュソースを指定することができます。</p> + +<pre class="brush: bash notranslate">Content-Security-Policy: script-src 'unsafe-inline'; +</pre> + +<p>上記のコンテンツセキュリティポリシーは、インラインの {{HTMLElement("script")}} 要素を許可します。</p> + +<pre class="brush: html notranslate"><script> + var inline = 1; +</script></pre> + +<p>nonce-source を使用して、特定のインラインスクリプトブロックのみ許可することができます。</p> + +<pre class="brush: bash notranslate">Content-Security-Policy: script-src 'nonce-2726c7f26c'</pre> + +<p>同じノンスを {{HTMLElement("script")}} 要素に指定する必要があります。</p> + +<pre class="brush: html notranslate"><script nonce="2726c7f26c"> + var inline = 1; +</script></pre> + +<p>他にも、インラインスクリプトからハッシュを生成することができます。 CSP では sha256, sha384, sha512 に対応しています。</p> + +<pre class="brush: bash notranslate">Content-Security-Policy: script-src 'sha256-B2yPHKaXnvFWtRChIbabYmUBFZdVfKKXHbWtWidDVF8='</pre> + +<p>ハッシュを生成するとき、 {{HTMLElement("script")}} タグを含めないようにし、大文字小文字と、ホワイトスペース、特に前後のホワイトスペースに注意してください。</p> + +<pre class="brush: html notranslate"><script>var inline = 1;</script></pre> + +<h3 id="Unsafe_eval_expressions" name="Unsafe_eval_expressions">安全ではない eval 式</h3> + +<p><code>'unsafe-eval'</code> ソース式は、文字列からコードを生成するいくつかのスクリプト実行メソッドを制御します。もし <code>'unsafe-eval'</code> が <code>script-src</code> ディレクティブで指定されていななかった場合、以下のメソッドはブロックされて何の効果も現れません。</p> + +<ul> + <li>{{jsxref("eval", "eval()")}}</li> + <li>{{jsxref("Function", "Function()")}}</li> + <li>メソッドの文字列リテラルを <code>window.setTimeout("alert(\"Hello World!\");", 500);</code> のように渡した場合 + <ul> + <li>{{domxref("window.setTimeout")}}</li> + <li>{{domxref("window.setInterval")}}</li> + <li>{{domxref("window.setImmediate")}}</li> + </ul> + </li> + <li>{{domxref("window.execScript")}} {{non-standard_inline}} (IE < 11 のみ)</li> +</ul> + +<h3 id="strict-dynamic" name="strict-dynamic">strict-dynamic</h3> + +<p><code>'strict-dynamic'</code> ソース式は、マークアップ中のスクリプトに明示的に与えられた信頼が、ノンスやハッシュを伴って、そのルートスクリプトによって読み込まれるすべてのスクリプトに伝搬されることを指定します。同時に、 <code>'self'</code> や <code>'unsafe-inline'</code> のようなホワイトリストやソース表現は無視されます。例えば、 <code>script-src 'strict-dynamic' 'nonce-R4nd0m' https://whitelisted.com/</code> のようなポリシーでは、 <code><script nonce="R4nd0m" src="https://example.com/loader.js"></code> を指定したルートスクリプトの読み込みを許可し、 <code>loader.js</code> で読み込まれたすべてのスクリプトにその信頼性を伝播させますが、 <code>https://whitelisted.com/</code> からのスクリプトの読み込みは、ノンスを伴っているか、信頼されたスクリプトから読み込まれたものでない限り、許可しません。</p> + +<pre class="brush: bash notranslate">script-src 'strict-dynamic' 'nonce-<em>someNonce</em>'</pre> + +<p><em>または</em></p> + +<pre class="brush: bash notranslate">script-src 'strict-dynamic' 'sha256-<em>base64EncodedHash</em>'</pre> + +<p>ユーザーエージェントのスニッフィングを必要とせず、後方互換性のある方法として、 <code>strict-dynamic</code> を指定することができます。.<br> + 以下のポリシー、</p> + +<pre class="brush: bash notranslate">script-src 'unsafe-inline' https: 'nonce-abcdefg' 'strict-dynamic'</pre> + +<p>は、 CSP1 に対応したブラウザーでは <code>'unsafe-inline' https:</code> のように動作し、 CSP2 に対応したブラウザーでは <code>https: 'nonce-abcdefg'</code> のように、CSP3 に対応したブラウザーでは <code>'nonce-abcdefg' 'strict-dynamic'</code> のように動作します。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("CSP 3.0", "#directive-script-src", "script-src")}}</td> + <td>{{Spec2('CSP 3.0')}}</td> + <td>変更なし</td> + </tr> + <tr> + <td>{{specName("CSP 1.1", "#directive-script-src", "script-src")}}</td> + <td>{{Spec2('CSP 1.1')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.csp.Content-Security-Policy.script-src")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>{{HTMLElement("script")}}</li> + <li>{{CSP("script-src-elem")}}</li> + <li>{{CSP("script-src-attr")}}</li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/style-src/index.html b/files/ja/web/http/headers/content-security-policy/style-src/index.html new file mode 100644 index 0000000000..a3af102659 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/style-src/index.html @@ -0,0 +1,180 @@ +--- +title: 'CSP: style-src' +slug: Web/HTTP/Headers/Content-Security-Policy/style-src +tags: + - CSP + - Content + - Content-Security-Policy + - Directive + - HTTP + - Reference + - Security + - Style + - source + - style-src +translation_of: Web/HTTP/Headers/Content-Security-Policy/style-src +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) の <strong><code>style-src</code></strong> ディレクティブは、スタイルシートの有効なソースを指定します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">CSP バージョン</th> + <td>1</td> + </tr> + <tr> + <th scope="row">ディレクティブ種別</th> + <td>{{Glossary("Fetch directive", "フェッチディレクティブ")}}</td> + </tr> + <tr> + <th scope="row">{{CSP("default-src")}} による代替</th> + <td>あり。このディレクティブがない場合、ユーザーエージェントは <code>default-src</code> ディレクティブを探します。</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p><code>style-src</code> ポリシーには、1つまたは複数のソースが許可されています。</p> + +<pre class="syntaxbox notranslate">Content-Security-Policy: style-src <source>; +Content-Security-Policy: style-src <source> <source>; +</pre> + +<h3 id="Sources" name="Sources">ソース</h3> + +<p>{{page("/ja/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src", "Sources")}}</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Violation_cases" name="Violation_cases">違反例</h3> + +<p>この CSP ヘッダーがある場合、</p> + +<pre class="brush: bash notranslate">Content-Security-Policy: style-src https://example.com/</pre> + +<p>以下のスタイルシートはブロックされ、読み込まれません。</p> + +<pre class="brush: html notranslate"><link href="https://not-example.com/styles/main.css" rel="stylesheet" type="text/css" /> + +<style> +#inline-style { background: red; } +</style> + +<style> + @import url("https://not-example.com/styles/print.css") print; +</style></pre> + +<p>{{HTTPHeader("Link")}} ヘッダーで読み込まれるものも同様です。</p> + +<pre class="brush: bash notranslate">Link: <https://not-example.com/styles/stylesheet.css>;rel=stylesheet +</pre> + +<p>インラインの style 属性もブロックされます。</p> + +<pre class="brush: html notranslate"><div style="display:none">Foo</div></pre> + +<p>JavaScript で直接 <code>style</code> 属性を設定したり、 {{domxref("CSSStyleDeclaration.cssText", "cssText")}} を設定したりしたスタイルも同様です。</p> + +<pre class="brush: js notranslate">document.querySelector('div').setAttribute('style', 'display:none;'); +document.querySelector('div').style.cssText = 'display:none;';</pre> + +<p>しかし、要素の {{domxref("HTMLElement.style", "style")}} プロパティに直接設定されたスタイルプロパティはブロックされず、 JavaScript から安全にスタイルを操作することができます。</p> + +<pre class="brush: js notranslate">document.querySelector('div').style.display = 'none';</pre> + +<p>この手の操作は、 CSP の {{CSP("script-src")}} ディレクティブで JavaScript を無効にすることで防ぐことができます。</p> + +<h3 id="Unsafe_inline_styles" name="Unsafe_inline_styles">安全ではないインラインスタイル</h3> + +<div class="note"> +<p><strong>注:</strong> インラインスタイルとインラインスクリプトを禁止することは、 CSP が提供する最大のセキュリティ上の利点の一つです。しかし、どうしても使用しなければならない場合は、それらを許可する仕組みがいくつかあります。</p> +</div> + +<p>インラインスタイルを許可するために、 <code>'unsafe-inline'</code> を指定するか、インラインブロックに一致するノンスソースまたはハッシュソースを指定することができます。</p> + +<pre class="brush: bash notranslate">Content-Security-Policy: style-src 'unsafe-inline'; +</pre> + +<p>上記のコンテンツセキュリティポリシーは {{HTMLElement("style")}} 要素やあらゆる要素の <code>style</code> 属性などのインラインスタイルを許可します。</p> + +<pre class="brush: html notranslate"><style> +#inline-style { background: red; } +</style> + +<div style="display:none">Foo</div> +</pre> + +<p>ノンスソースを使用して、特定のインラインスタイルのみ許可することができます。</p> + +<pre class="brush: bash notranslate">Content-Security-Policy: style-src 'nonce-2726c7f26c'</pre> + +<p>同じノンスを {{HTMLElement("style")}} 要素にも設定する必要があります。</p> + +<pre class="brush: html notranslate"><style nonce="2726c7f26c"> +#inline-style { background: red; } +</style></pre> + +<p>他にも、インラインスタイルからハッシュを生成することができます。 CSP では sha256, sha384, sha512 に対応しています。</p> + +<pre class="brush: bash notranslate">Content-Security-Policy: style-src 'sha256-a330698cbe9dc4ef1fb12e2ee9fc06d5d14300262fa4dc5878103ab7347e158f'</pre> + +<p>ハッシュを生成するときは、 {{HTMLElement("style")}} タグを含めないようにし、大文字小文字と、ホワイトスペース、特に前後のホワイトスペースに注意してください。</p> + +<pre class="brush: html notranslate"><style>#inline-style { background: red; }</style></pre> + +<h3 id="Unsafe_style_expressions" name="Unsafe_style_expressions">安全ではない style 式</h3> + +<p><code>'unsafe-eval'</code> ソース式は、文字列からスタイル宣言を生成するいくつかのスタイルメソッドを制御します。もし <code>'unsafe-eval'</code> が <code>style-src</code> ディレクティブで指定されていななかった場合、以下のメソッドはブロックされて何の効果も現れません。</p> + +<ul> + <li>{{domxref("CSSStyleSheet.insertRule()")}}</li> + <li>{{domxref("CSSGroupingRule.insertRule()")}}</li> + <li>{{domxref("CSSStyleDeclaration.cssText")}}</li> +</ul> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("CSP 3.0", "#directive-style-src", "style-src")}}</td> + <td>{{Spec2('CSP 3.0')}}</td> + <td>No changes.</td> + </tr> + <tr> + <td>{{specName("CSP 1.1", "#directive-style-src", "style-src")}}</td> + <td>{{Spec2('CSP 1.1')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.csp.Content-Security-Policy.style-src")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>{{CSP("style-src-elem")}}</li> + <li>{{CSP("style-src-attr")}}</li> + <li>{{HTTPHeader("Link")}} header</li> + <li>{{HTMLElement("style")}}, {{HTMLElement("link")}}</li> + <li>{{cssxref("@import")}}</li> + <li>{{domxref("CSSStyleSheet.insertRule()")}}</li> + <li>{{domxref("CSSGroupingRule.insertRule()")}}</li> + <li>{{domxref("CSSStyleDeclaration.cssText")}}</li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/trusted-types/index.html b/files/ja/web/http/headers/content-security-policy/trusted-types/index.html new file mode 100644 index 0000000000..b4ec5ee180 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/trusted-types/index.html @@ -0,0 +1,70 @@ +--- +title: 'CSP: trusted-types' +slug: Web/HTTP/Headers/Content-Security-Policy/trusted-types +tags: + - CSP + - Directive + - HTTP + - Security + - ディレクティブ +translation_of: Web/HTTP/Headers/Content-Security-Policy/trusted-types +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) の <code><strong>trusted-types</strong></code> {{experimental_inline}} ディレクティブは、既知の DOM XSS シンクの使用を、文字列の代わりにスプーフィング不可能な型付きの値のみを受け入れる定義済みの関数のセットに制限するようにユーザエージェントに指示します。これにより、作者は DOM への値の書き込みを守るルールを定義することができ、 DOM XSS 攻撃の対象をウェブアプリケーションのコードベースの小さな孤立した部分に減らすことができ、監視やコードレビューが容易になります。このディレクティブは、 Trusted Types API から <code>TrustedTypes.createPolicy</code> で作成された信頼できる型のポリシー名のホワイトリストを宣言します。</p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre>Content-Security-Policy: trusted-types; +Content-Security-Policy: trusted-types <policyName>; +Content-Security-Policy: trusted-types <policyName> <policyName> 'allow-duplicates'; +</pre> + +<dl> + <dt><DOMString></dt> + <dd>Trusted Type ポリシー名とすることができる任意の文字列です。</dd> + <dt><code>'allow-duplicates'</code></dt> + <dd>ポリシー名が既に使用されていても、生成を許可します。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<p>TODO</p> + +<h2 id="Polyfill" name="Polyfill">ポリフィル</h2> + +<p>A <a href="https://github.com/w3c/webappsec-trusted-types#polyfill">Trusted Types のポリフィル</a>が Github 上で利用できます。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="https://w3c.github.io/webappsec-trusted-types/dist/spec/">Trusted Types</a></td> + <td>Draft</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.csp.Content-Security-Policy.trusted-types")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li><a href="/ja/docs/Glossary/Cross-site_scripting">クロスサイトスクリプティング (XSS)</a></li> + <li><a href="https://developers.google.com/web/updates/2019/02/trusted-types">Google Developers: Intro to Trusted-Types</a></li> + <li>Trusted Types with <a href="https://github.com/cure53/DOMPurify#what-about-dompurify-and-trusted-types">DOMPurify</a> XSS sanitizer</li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/upgrade-insecure-requests/index.html b/files/ja/web/http/headers/content-security-policy/upgrade-insecure-requests/index.html new file mode 100644 index 0000000000..d8683ba580 --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/upgrade-insecure-requests/index.html @@ -0,0 +1,90 @@ +--- +title: 'CSP: upgrade-insecure-requests' +slug: Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests +tags: + - CSP + - HTTP + - セキュリティ + - ディレクティブ + - リファレンス +translation_of: Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) <code><strong>upgrade-insecure-requests</strong></code> ディレクティブは、ユーザーエージェントに、すべてのサイトの安全でないURL (HTTP経由で提供されるURL) をセキュリティで保護された URL (HTTPSを介して提供されるもの) で置き換えられたかのように処理するよう指示します。このディレクティブは、書き換えが必要な安全ではない古い URL が多数存在するウェブサイトのためのものです。</p> + +<p><code>upgrade-insecure-requests</code> ディレクティブは、 {{CSP("block-all-mixed-content")}} よりも前に処理され、もし設定されていれば後者は何もしません。どちらかのディレクティブを設定することをお勧めしますが、 HTTP にリダイレクトした後で HTTPS を強制することができない古いブラウザーで HTTPS を強制させたくない限り、両方を指定することはできません。</p> + +<p><code>upgrade-insecure-requests</code> ディレクティブは、第三者のサイトのリンクを経由してサイトにアクセスしたユーザーが最上位のナビゲーション用に HTTPS にアップグレードされることを保証しないため、 {{HTTPHeader("Strict-Transport-Security")}} ({{Glossary("HSTS")}}) ヘッダーを置換せず、ユーザーがSSLストリッピング攻撃の対象にならないように、適切な <code>max-age</code> を設定するようにしてください。</p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Content-Security-Policy: upgrade-insecure-requests;</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>// ヘッダー +Content-Security-Policy: upgrade-insecure-requests; + +// meta タグ +<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> +</pre> + +<p>HTTP から HTTPS への移行を望むドメイン example.com に上記のヘッダーを設定すると、ページ移動を伴わない安全ではないリソースのリクエストが自動的にアップグレードされます (第三者のリクエストが自分のものと同様に)。</p> + +<pre class="brush: html"><img src="http://example.com/image.png"> +<img src="http://not-example.com/image.png"></pre> + +<p>これらの URL は、リクエストが行われる前に書き直されます。つまり、安全でない要求がネットワークに侵入しないようにします。なお、要求されたリソースが実際に HTTPS 経由で利用可能ではない場合、リクエストは HTTP で代替されずに失敗することに注意してください。</p> + +<pre class="brush: html"><img src="https://example.com/image.png"> +<img src="https://not-example.com/image.png"></pre> + +<p>第三者のリソースへのナビゲーションをアップグレードすると、破壊の可能性が大幅に高まりますので、これらはアップグレードされません。</p> + +<pre class="brush: html"><a href="https://example.com/">Home</a> +<a href="http://not-example.com/">Home</a></pre> + +<h3 id="Finding_insecure_requests" name="Finding_insecure_requests">安全ではないリクエストの発見</h3> + +<p>{{HTTPHeader("Content-Security-Policy-Report-Only")}} ヘッダーと {{CSP("report-uri")}} ディレクティブを利用して、強制ポリシーと報告されたポリシーを次のように設定することができます。</p> + +<pre>Content-Security-Policy: upgrade-insecure-requests; default-src https: +Content-Security-Policy-Report-Only: default-src https:; report-uri /endpoint</pre> + +<p>このようにして、安全なサイト上の安全でない要求は引き続きアップグレードされますが、監視ポリシーに違反した場合だけが、安全でないリソースがエンドポイントに報告されます。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("Upgrade Insecure Requests", "#delivery", "upgrade-insecure-requests")}}</td> + <td>{{Spec2('Upgrade Insecure Requests')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力したいのであれば、 <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.csp.upgrade-insecure-requests")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>{{HTTPHeader("Upgrade-Insecure-Requests")}} ヘッダー</li> + <li>{{HTTPHeader("Strict-Transport-Security")}} ({{Glossary("HSTS")}}) ヘッダー</li> + <li>{{CSP("block-all-mixed-content")}}</li> + <li><a href="/ja/docs/Web/Security/Mixed_content">混合コンテンツ</a></li> +</ul> diff --git a/files/ja/web/http/headers/content-security-policy/worker-src/index.html b/files/ja/web/http/headers/content-security-policy/worker-src/index.html new file mode 100644 index 0000000000..2164488eee --- /dev/null +++ b/files/ja/web/http/headers/content-security-policy/worker-src/index.html @@ -0,0 +1,97 @@ +--- +title: 'CSP: worker-src' +slug: Web/HTTP/Headers/Content-Security-Policy/worker-src +tags: + - CSP + - HTTP + - セキュリティ + - ディレクティブ + - リファレンス +translation_of: Web/HTTP/Headers/Content-Security-Policy/worker-src +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) <code><strong>worker-src</strong></code> ディレクティブは、 {{domxref("Worker")}}, {{domxref("SharedWorker")}}, {{domxref("ServiceWorker")}} スクリプトの有効なソースを指定します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">CSP バージョン</th> + <td>3</td> + </tr> + <tr> + <th scope="row">ディレクティブ種別</th> + <td>{{Glossary("Fetch directive", "フェッチディレクティブ")}}</td> + </tr> + <tr> + <th scope="row">フォールバック</th> + <td> + <p>このディレクティブがない場合、ユーザーエージェントはワーカーの実行の管理のために、最初に {{CSP("child-src")}} ディレクティブ、次に {{CSP("script-src")}} ディレクティブ、最後に {{CSP("default-src")}} ディレクティブを探します。</p> + + <p>Chrome 59 以降は {{CSP("child-src")}} ディレクティブを飛ばします。</p> + + <p>Edge 17 は {{CSP("script-src")}} ディレクティブを飛ばします (<a href="https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/17415478/">bug</a>)。</p> + </td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p><code>worker-src</code> ポリシーには1つ以上のソースを指定することができます。</p> + +<pre class="syntaxbox">Content-Security-Policy: worker-src <source>; +Content-Security-Policy: worker-src <source> <source>; +</pre> + +<h3 id="Sources" name="Sources">ソース</h3> + +<p>{{page("Web/HTTP/Headers/Content-Security-Policy/default-src", "Sources")}}</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Violation_cases" name="Violation_cases">違反の場合</h3> + +<p>この CSP ヘッダーが与えられている時、</p> + +<pre class="brush: bash">Content-Security-Policy: worker-src https://example.com/</pre> + +<p>{{domxref("Worker")}}, {{domxref("SharedWorker")}}, {{domxref("ServiceWorker")}} はブロックされ、読み込まれません。</p> + +<pre class="brush: html"><script> + var blockedWorker = new Worker("data:application/javascript,..."); + blockedWorker = new SharedWorker("https://not-example.com/"); + navigator.serviceWorker.register('https://not-example.com/sw.js'); +</script></pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("CSP 3.0", "#directive-worker-src", "worker-src")}}</td> + <td>{{Spec2('CSP 3.0')}}</td> + <td>初回定義。</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力したいのであれば、 <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.csp.worker-src")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>{{domxref("Worker")}}, {{domxref("SharedWorker")}}, {{domxref("ServiceWorker")}}</li> +</ul> diff --git a/files/ja/web/http/headers/content-type/index.html b/files/ja/web/http/headers/content-type/index.html new file mode 100644 index 0000000000..2c52bb966b --- /dev/null +++ b/files/ja/web/http/headers/content-type/index.html @@ -0,0 +1,124 @@ +--- +title: Content-Type +slug: Web/HTTP/Headers/Content-Type +tags: + - Content-Type + - HTTP + - Reference + - エンティティヘッダー + - ヘッダー +translation_of: Web/HTTP/Headers/Content-Type +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Content-Type</code></strong> エンティティヘッダーは、リソースの{{Glossary("MIME type","メディア種別")}}を示すために使用します。</p> + +<p>レスポンスにおいては、 <code>Content-Type</code> ヘッダーはクライアントに返されたコンテンツが実際にはどのような種類のものであるかを伝えます。場合によってはブラウザーは MIME を推定し、このヘッダーの値に従わないこともあります。 {{HTTPHeader("X-Content-Type-Options")}} を <code>nosniff</code> に設定すると、この振舞いを防ぐことができます。</p> + +<p>要求においては ({{HTTPMethod("POST")}} または {{HTTPMethod("PUT")}} などで)、クライアントがサーバーにどのような種類のデータが実際に送られたかを伝えます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Entity header", "エンティティヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + <tr> + <th scope="row">{{Glossary("CORS-safelisted response header", "CORS セーフリストレスポンスヘッダー")}}</th> + <td>はい</td> + </tr> + <tr> + <th scope="row">{{Glossary("CORS-safelisted request header", "CORS セーフリストリクエストヘッダー")}}</th> + <td>はい。 <em>CORS 危険リクエストヘッダーバイト</em>: <code>"():<>?@[\]{}</code>, Delete, Tab, 制御文字の 0x00 から 0x19 までを値に含むことができないという制限付きです。<br> + また、 MIME タイプの解釈値 (引数を除いたもの) が <code>application/x-www-form-urlencoded</code>, <code>multipart/form-data</code>, <code>text/plain</code> の何れかである必要があります。</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Content-Type: text/html; charset=UTF-8 +Content-Type: multipart/form-data; boundary=something +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code>media-type</code></dt> + <dd>リソースやデータの <a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME タイプ</a>です。</dd> + <dt>charset</dt> + <dd>標準の文字エンコーディングです。</dd> + <dt>boundary</dt> + <dd>マルチパートの本文では <code>boundary</code> ディレクティブが必要で、これはメールゲートウェイを通過しても大丈夫だと知られている文字の中から1~70文字で構成され、ホワイトスペースで終了しないものです。これはメッセージの複数パートの境界を囲むために使用します。ふつう、ヘッダーの境界は2本のダッシュで始まり、最後の境界には最後にも2本のダッシュが入ります。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Content-Type_in_HTML_forms" name="Content-Type_in_HTML_forms">HTML フォームにおける <code>Content-Type</code></h3> + +<p>HTML フォームを送信した結果としての {{HTTPMethod("POST")}} 要求において、 <code>Content-Type</code> は {{HTMLElement("form")}} 要素の <code>enctype</code> 属性で指定します。</p> + +<pre class="brush: html"><form action="/" method="post" enctype="multipart/form-data"> + <input type="text" name="description" value="some text"> + <input type="file" name="myFile"> + <button type="submit">Submit</button> +</form> +</pre> + +<p>この要求はこのように見えます。 (ここではあまり重要でないヘッダーは省略しています)</p> + +<pre>POST /foo HTTP/1.1 +Content-Length: 68137 +Content-Type: multipart/form-data; boundary=---------------------------974767299852498929531610575 + +-----------------------------974767299852498929531610575 +Content-Disposition: form-data; name="description" + +some text +-----------------------------974767299852498929531610575 +Content-Disposition: form-data; name="myFile"; filename="foo.txt" +Content-Type: text/plain + +(content of the uploaded file foo.txt) +-----------------------------974767299852498929531610575-- +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7233", "Content-Type in multipart", "4.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td> + </tr> + <tr> + <td>{{RFC("7231", "Content-Type", "3.1.1.5")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Content-Type")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Accept")}} および {{HTTPHeader("Accept-Charset")}}</li> + <li>{{HTTPHeader("Content-Disposition")}}</li> + <li>{{HTTPStatus("206")}} Partial Content</li> + <li>{{HTTPHeader("X-Content-Type-Options")}}</li> +</ul> diff --git a/files/ja/web/http/headers/cookie/index.html b/files/ja/web/http/headers/cookie/index.html new file mode 100644 index 0000000000..cc8bc302a8 --- /dev/null +++ b/files/ja/web/http/headers/cookie/index.html @@ -0,0 +1,76 @@ +--- +title: Cookie +slug: Web/HTTP/Headers/Cookie +tags: + - HTTP + - cookie + - クッキー + - ヘッダー + - リクエストヘッダー + - リファレンス + - 禁止ヘッダー名 +translation_of: Web/HTTP/Headers/Cookie +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Cookie</code></strong> は HTTP のリクエストヘッダーで、以前サーバーが {{HTTPHeader("Set-Cookie")}} ヘッダーで送信し、保存された <a href="/ja/docs/Web/HTTP/Cookies">HTTP クッキー</a>を含みます。</p> + +<p><code>Cookie</code> ヘッダーは任意であり、例えば、ブラウザーのプライバシー設定でクッキーをブロックしている場合などは省略できます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Cookie: <cookie-list> +Cookie: name=value +Cookie: name=value; name2=value2; name3=value3</pre> + +<dl> + <dt><cookie-list></dt> + <dd>名前と値のリストを <code><cookie-name>=<cookie-value></code> の形で表したものです。リストの組はセミコロンと空白 (<code>'; '</code>) で区切られます。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre class="notranslate">Cookie: PHPSESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43; _gat=1</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("6265", "Cookie", "5.4")}}</td> + <td>HTTP State Management Mechanism</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Cookie")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Set-Cookie")}}</li> + <li>{{domxref("Document.cookie")}}</li> +</ul> diff --git a/files/ja/web/http/headers/cookie2/index.html b/files/ja/web/http/headers/cookie2/index.html new file mode 100644 index 0000000000..99a1b1ba30 --- /dev/null +++ b/files/ja/web/http/headers/cookie2/index.html @@ -0,0 +1,59 @@ +--- +title: Cookie2 +slug: Web/HTTP/Headers/Cookie2 +tags: + - HTTP + - Obsolete + - ヘッダー + - リクエスト + - リファレンス +translation_of: Web/HTTP/Headers/Cookie2 +--- +<p>{{HTTPSidebar}} {{obsolete_header}}</p> + +<p>時代遅れの <strong><code>Cookie2</code></strong> HTTP リクエストヘッダは、ユーザエージェントが "新しいスタイルの"クッキーを理解していることをサーバに知らせるために使われましたが、最近のユーザエージェントはこれではなく、 {{HTTPHeader("Cookie")}} ヘッダを使用します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダータイプ</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>yes</td> + </tr> + </tbody> +</table> + +<h2 id="例">例</h2> + +<pre>Cookie2: $Version="1"</pre> + +<h2 id="仕様">仕様</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様</th> + <th scope="col">タイトル</th> + </tr> + <tr> + <td>{{RFC("2965", "Cookie2")}}</td> + <td>Historic specification of HTTP State Management Mechanism, obsoleted by {{RFC("6265")}}</td> + </tr> + </tbody> +</table> + +<h2 id="ブラウザの実装状況">ブラウザの実装状況</h2> + +<p class="hidden">このページの互換表は構造化データから生成されます。データに貢献したい場合は <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックし、プルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Cookie2")}}</p> + +<h2 id="関連情報">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Cookie")}}</li> + <li>{{domxref("Document.cookie")}}</li> +</ul> diff --git a/files/ja/web/http/headers/cross-origin-resource-policy/index.html b/files/ja/web/http/headers/cross-origin-resource-policy/index.html new file mode 100644 index 0000000000..1ed34f2bb6 --- /dev/null +++ b/files/ja/web/http/headers/cross-origin-resource-policy/index.html @@ -0,0 +1,78 @@ +--- +title: Cross-Origin-Resource-Policy +slug: Web/HTTP/Headers/Cross-Origin-Resource-Policy +tags: + - HTTP + - HTTP Header + - HTTP ヘッダー + - Reference + - Response Header + - header + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/Cross-Origin-Resource-Policy +--- +<div>{{HTTPSidebar}}</div> + +<div class="note"> +<p><strong>注:</strong> <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=1074261">Chrome のバグ</a>のため、 Cross-Origin-Resource-Policy を設定すると PDF のレンダリングが中断され、一部の PDF の最初のページを超えて読むことができなくなることがあります。 <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1638323">Firefox のバグ</a>のため、Cross-Origin-Resource-Policy を設定すると、状況によっては一部のリソース(PDF など)のダウンロードができなくなることがあります。本番環境では、このヘッダーの使用に注意してください。</p> +</div> + +<p>HTTP の <strong><code>Cross-Origin-Resource-Policy</code></strong> レスポンスヘッダーは、ブラウザーが指定されたリソースへの no-cors のクロスオリジン/クロスサイトのリクエストをブロックするという要望を伝えます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Cross-Origin-Resource-Policy: same-site | same-origin | cross-origin +</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<p>以下のレスポンスヘッダーにより、互換性のあるユーザーエージェントはクロスオリジンの no-cors リクエストを許可しなくなります。</p> + +<pre>Cross-Origin-Resource-Policy: same-origin +</pre> + +<p>その他の例は、 <a href="https://resourcepolicy.fyi/">https://resourcepolicy.fyi/</a> を参照してください。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName("Fetch", '#cross-origin-resource-policy-header')}}</td> + <td>{{Spec2("Fetch", '#cross-origin-resource-policy-header')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Cross-Origin-Resource-Policy")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="/ja/docs/Web/HTTP/Cross-Origin_Resource_Policy_(CORP)">Cross-Origin Resource Policy (CORP) の説明</a></li> +</ul> diff --git a/files/ja/web/http/headers/date/index.html b/files/ja/web/http/headers/date/index.html new file mode 100644 index 0000000000..01d7cf1bde --- /dev/null +++ b/files/ja/web/http/headers/date/index.html @@ -0,0 +1,100 @@ +--- +title: Date +slug: Web/HTTP/Headers/Date +tags: + - HTTP + - Reference + - ヘッダー + - リファレンス + - 一般ヘッダー + - 汎用ヘッダー +translation_of: Web/HTTP/Headers/Date +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Date</code></strong> 一般 HTTP ヘッダーには、メッセージが発信された日時が含まれています。</p> + +<div class="blockIndicator warning"> +<p><code>Date</code> は fetch 仕様書において<a href="https://fetch.spec.whatwg.org/#forbidden-header-name" rel="nofollow noreferrer">禁止ヘッダー名</a>に挙げられています。 - そのため、このコードは <code>Date</code> ヘッダーを送信しません。</p> + +<pre class="brush: js">fetch('https://httpbin.org/get', { + 'headers': { + 'Date': (new Date()).toUTCString() + } +})</pre> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("General header", "一般ヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Date: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><day-name></dt> + <dd>"Mon"、"Tue"、"Wed"、"Thu"、"Fri"、"Sat"、"Sun" のいずれか (大文字小文字を区別)。</dd> + <dt><day></dt> + <dd>2桁の日番号。例えば "04" または "23"。</dd> + <dt><month></dt> + <dd>"Jan"、"Feb"、"Mar"、"Apr"、"May"、"Jun"、"Jul"、"Aug"、"Sep"、 "Oct"、"Nov"、"Dec" のいずれか (大文字と小文字を区別)。</dd> + <dt><year></dt> + <dd>4桁の年の数字。たとえば "1990" または "2016"。</dd> + <dt><hour></dt> + <dd>2桁の時の数字。たとえば "09" または "23"。</dd> + <dt><minute></dt> + <dd>2桁の分の数字。たとえば "04" または "59"。</dd> + <dt><second></dt> + <dd>2桁の秒の数字。たとえば "04" または "59"。</dd> + <dt>GMT</dt> + <dd> + <p>グリニッジ標準時。HTTP の日付は常に GMT で表され、決して現地時間で表されることはありません。</p> + </dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>Date: Wed, 21 Oct 2015 07:28:00 GMT +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "Date", "7.1.1.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Date")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Age")}}</li> +</ul> diff --git a/files/ja/web/http/headers/device-memory/index.html b/files/ja/web/http/headers/device-memory/index.html new file mode 100644 index 0000000000..1c431536ab --- /dev/null +++ b/files/ja/web/http/headers/device-memory/index.html @@ -0,0 +1,85 @@ +--- +title: Device-Memory +slug: Web/HTTP/Headers/Device-Memory +tags: + - Client hints + - Device Memory API + - HTTP + - HTTP Header +translation_of: Web/HTTP/Headers/Device-Memory +--- +<div>{{HTTPSidebar}}{{securecontext_header}}{{SeeCompatTable}}</div> + +<p><strong><code>Device-Memory</code></strong> ヘッダーは、<a href="/ja/docs/Glossary/Client_hints">クライアントヒント</a>のヘッダーのように機能する <a href="/ja/docs/Web/API/Device_Memory_API">Device Memory API</a> のヘッダーで、クライアントデバイスの RAM の概算量を表します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header","リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name","禁止ヘッダー名")}}</th> + <td>?</td> + </tr> + </tbody> +</table> + +<div class="blockIndicator note"> +<p><strong>注</strong>: クライアントヒントには、安全なオリジン(TLS 経由)でのみアクセスできます。 サーバーは、{{HTTPHeader("Accept-CH")}} および {{HTTPHeader("Accept-CH-Lifetime")}} のレスポンスヘッダーを送信することによって、クライアントから <code>Device-Memory</code> ヘッダーを受信することを選択する必要があります。</p> +</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p>デバイス RAM の量は、フィンガープリント変数として使用できるため、ヘッダーでの値は、誤用の可能性を減らすために意図的に粗くなっています。 ヘッダーは次の値を取ります: <code>0.25</code>、<code>0.5</code>、<code>1</code>、<code>2</code>、<code>4</code>、<code>8</code>。</p> + +<pre class="syntaxbox notranslate">Device-Memory: <number> +</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<p>サーバーはまず、レスポンスヘッダーとして <code>Device-Memory</code> を含む {{HTTPHeader("Accept-CH")}} と {{HTTPHeader("Accept-CH-Lifetime")}} を送信することによって、<code>Device-Memory</code> ヘッダーを受信するように選択する必要があります。</p> + +<pre class="notranslate">Accept-CH: Device-Memory +Accept-CH-Lifetime: 86400 +</pre> + +<p>次に、後続のリクエストでクライアントは、次のように <code>Device-Memory</code> ヘッダーを送り返す場合があります。</p> + +<pre class="notranslate">Device-Memory: 1 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName("Device Memory","#sec-device-memory-client-hint-header","Device-Memory")}}</td> + <td>{{Spec2('Device Memory')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Device-Memory")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="/ja/docs/Web/API/Device_Memory_API">Device Memory API</a></li> + <li>{{HTTPHeader("Accept-CH")}}</li> + <li>{{HTTPHeader("Accept-CH-Lifetime")}}</li> + <li>{{HTTPHeader("Vary")}}</li> + <li>{{DOMxRef("Navigator.deviceMemory")}}</li> +</ul> diff --git a/files/ja/web/http/headers/dnt/index.html b/files/ja/web/http/headers/dnt/index.html new file mode 100644 index 0000000000..71631dc81d --- /dev/null +++ b/files/ja/web/http/headers/dnt/index.html @@ -0,0 +1,91 @@ +--- +title: DNT +slug: Web/HTTP/Headers/DNT +tags: + - DNT + - HTTP + - ヘッダー + - リファレンス +translation_of: Web/HTTP/Headers/DNT +--- +<p>{{HTTPSidebar}}</p> + +<p><strong><code>DNT</code></strong> (<strong>D</strong>o <strong>N</strong>ot <strong>T</strong>rack) リクエストヘッダーは、ユーザーのトラッキングの設定を示します。 これにより、ユーザーはパーソナライズされたコンテンツではなく、プライバシーを優先するかどうかを指定できます.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダータイプ</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="構文">構文</h2> + +<pre class="syntaxbox notranslate">DNT: 0 +DNT: 1 +DNT: null +</pre> + +<h2 id="宣言">宣言</h2> + +<dl> + <dt>0</dt> + <dd>ユーザーは対象のサイトでトラッキングを許可している。</dd> + <dt>1</dt> + <dd>ユーザーは対象のサイトでトラッキングを拒否している。</dd> + <dt>null</dt> + <dd>ユーザーはトラッキングに関する設定を指定していない。</dd> +</dl> + +<h2 id="例">例</h2> + +<h3 id="JavaScript_から_Do_Not_Track_の状態を読み取る">JavaScript から Do Not Track の状態を読み取る</h3> + +<p>ユーザーの DNT 設定は {{domxref("Navigator.doNotTrack")}} プロパティを使用して JavaScript から読み取ることもできます:</p> + +<pre class="brush: js notranslate">navigator.doNotTrack; // "0" or "1"</pre> + +<h2 id="仕様">仕様</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様</th> + <th scope="col">ステータス</th> + <th scope="col">コメント</th> + </tr> + <tr> + <td>{{SpecName('Tracking','#dnt-header-field', 'DNT Header Field for HTTP Requests')}}</td> + <td>{{Spec2("Tracking")}}</td> + <td>初期定義。</td> + </tr> + </tbody> +</table> + +<h2 id="ブラウザー実装状況">ブラウザー実装状況</h2> + +<p class="hidden">このページの互換表は構造化データから生成されます。データに貢献したい場合は <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックし、プルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.DNT")}}</p> + +<h2 id="関連項目">関連項目</h2> + +<ul> + <li>{{domxref("Navigator.doNotTrack")}}</li> + <li>{{HTTPHeader("Tk")}} ヘッダー</li> + <li><a href="https://en.wikipedia.org/wiki/Do_Not_Track">Do Not Track on Wikipedia</a></li> + <li><a href="https://www.eff.org/deeplinks/2011/02/what-does-track-do-not-track-mean">What Does the "Track" in "Do Not Track" Mean? – EFF</a></li> + <li><a href="http://donottrack.us/">donottrack.us</a></li> + <li>DNT ブラウザー設定のヘルプ: + <ul> + <li><a href="https://www.mozilla.org/ja/firefox/dnt/">Firefox</a></li> + <li><a href="https://support.google.com/chrome/answer/2790761">Chrome</a></li> + </ul> + </li> +</ul> diff --git a/files/ja/web/http/headers/dpr/index.html b/files/ja/web/http/headers/dpr/index.html new file mode 100644 index 0000000000..5c696673e1 --- /dev/null +++ b/files/ja/web/http/headers/dpr/index.html @@ -0,0 +1,61 @@ +--- +title: DPR +slug: Web/HTTP/Headers/DPR +tags: + - Client hints + - HTTP + - HTTP Header +translation_of: Web/HTTP/Headers/DPR +--- +<div>{{HTTPSidebar}}{{securecontext_header}}{{SeeCompatTable}}</div> + +<p><strong><code>DPR</code></strong> ヘッダーは、CSS ピクセル毎に対応する物理デバイスピクセルの数であるクライアントのデバイスピクセル比 (device pixel ratio、{{Glossary("DPR")}})) を表す<a href="/ja/docs/Glossary/Client_hints">クライアントヒント</a>のヘッダーです。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header","リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name","禁止ヘッダー名")}}</th> + <td>?</td> + </tr> + </tbody> +</table> + +<div class="blockIndicator note"> +<p><strong>注</strong>: クライアントヒントには、安全なオリジン(TLS 経由)でのみアクセスできます。 サーバーは、{{HTTPHeader("Accept-CH")}} および {{HTTPHeader("Accept-CH-Lifetime")}} のレスポンスヘッダーを送信することによって、クライアントから <code>DPR</code> ヘッダーを受信することを選択する必要があります。</p> +</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">DPR: <number> +</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<p>サーバーはまず、レスポンスヘッダーとして <code>DPR</code> を含む {{HTTPHeader("Accept-CH")}} と {{HTTPHeader("Accept-CH-Lifetime")}} を送信することによって、<code>DPR</code> ヘッダーを受信するように選択する必要があります。</p> + +<pre class="notranslate">Accept-CH: DPR +Accept-CH-Lifetime: 86400 +</pre> + +<p>次に、後続のリクエストでクライアントは、次のように <code>DPR</code> ヘッダーを送り返す場合があります。</p> + +<pre class="notranslate">DPR: 1.0 +</pre> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.DPR")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Accept-CH")}}</li> + <li>{{HTTPHeader("Accept-CH-Lifetime")}}</li> + <li>{{HTTPHeader("Vary")}}</li> +</ul> diff --git a/files/ja/web/http/headers/early-data/index.html b/files/ja/web/http/headers/early-data/index.html new file mode 100644 index 0000000000..31a0c68b64 --- /dev/null +++ b/files/ja/web/http/headers/early-data/index.html @@ -0,0 +1,62 @@ +--- +title: Early-Data +slug: Web/HTTP/Headers/Early-Data +tags: + - HTTP + - クライアントヒント + - ヘッダー + - リクエスト +translation_of: Web/HTTP/Headers/Early-Data +--- +<div>{{SeeCompatTable}}{{HTTPSidebar}}</div> + +<p><span class="seoSummary"><code><strong>Early-Data</strong></code> ヘッダーは中間者により設定され、リクエストが <a href="/ja/docs/Web/Security/Transport_Layer_Security#TLS_1.3">TLS 早期データ</a>で伝えられたこと、そして中間者が {{HTTPStatus("425", "425 (Too Early)")}} ステータスコードを理解していることを示します。</span></p> + +<p><code><strong>Early-Data</strong></code> ヘッダーはリクエストの発信者 (つまり、ブラウザー) によって設定されることはありません。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Early-Data: 1 +</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>GET /resource HTTP/1.0 +Host: example.com +Early-Data: 1</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("8470", "The Early-Data Header Field", "5.1")}}</td> + <td>Using Early Data in HTTP</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Early-Data")}}</p> diff --git a/files/ja/web/http/headers/etag/index.html b/files/ja/web/http/headers/etag/index.html new file mode 100644 index 0000000000..a1e11da4b8 --- /dev/null +++ b/files/ja/web/http/headers/etag/index.html @@ -0,0 +1,107 @@ +--- +title: ETag +slug: Web/HTTP/Headers/ETag +tags: + - HTTP + - Reference + - ヘッダー + - リファレンス + - レスポンス + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/ETag +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>ETag</code></strong> は HTTP のレスポンスヘッダーで、リソースの特定バージョンの識別子です。ウェブサーバーは、コンテンツが変更されていない場合はレスポンス全体を再送する必要がないので、キャッシュがより効率的になり通信帯域を節約することができます。加えて、 ETag はリソースが同時に更新されて互いを上書きすること (<a href="#Caching_of_unchanged_resources">「空中衝突」</a>) を防ぐのに役立ちます。</p> + +<p>指定された URL のリソースが変更された場合は、新しい <code>Etag</code> 値を生成する必要があります。したがって Etags はフィンガープリントに似ており、一部のサーバーでの追跡目的でも使用される可能性があります。これらを比較することで、リソースの2つの表現が同じかどうかを素早く判断できますが、トラッキングサーバーによって無限に保持されるように設定することもできます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">ETag: W/"<etag_value>" +ETag: "<etag_value>" +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code>W/</code> {{optional_inline}}</dt> + <dd><code>'W/'</code> (大文字) は<a href="/ja/docs/Web/HTTP/Conditional_requests#Weak_validation">弱いバリデーター</a>を使用することを示します。弱い ETag は生成が簡単ですが、比較にはあまり役立ちません。強力なバリデーターは比較には理想的ですが、効率的に生成するのはとても困難です。同じリソースを表現する2つの弱い <code>Etag</code> の値があった場合、意味的には同等ですが、バイト単位では同じではない可能性があります。すなわち、弱い ETag は<a href="/ja/docs/Web/HTTP/Headers/Accept-Ranges">バイト範囲指定のリクエスト</a>が行われたときにキャッシュされませんが、強い ETag は範囲指定のリクエストもキャッシュします。</dd> + <dt>"<etag_value>"</dt> + <dd>要求されたリソースを一意に表すエンティティタグです。これは二重引用符で囲まれた ASCII 文字列であり、 <code>"675af34563dc-tr34"</code>のような形です。 <code>ETag</code> 値が生成される方法は指定されていません。コンテンツのハッシュ、最終更新タイムスタンプのハッシュ、単なるリビジョン番号などがよく使用されます。たとえば、 MDN は Wiki 記事コンテンツのハッシュを使用しています。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4" +ETag: W/"0815"</pre> + +<h3 id="Avoiding_mid-air_collisions" name="Avoiding_mid-air_collisions">空中衝突の回避</h3> + +<p><code>ETag</code> と {{HTTPHeader("If-Match")}} ヘッダの助けを借りて、編集の空中衝突を検出することができます。</p> + +<p>たとえば、 MDN を編集する場合、現在の Wiki コンテンツのハッシュが算出され、そのレスポンスで <code>Etag</code> に入れられます。</p> + +<pre>ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"</pre> + +<p>Wiki ページに変更を保存 (データの投稿) するとき、 {{HTTPMethod("POST")}} リクエストには、 {{HTTPHeader("If-Match")}} ヘッダーに <code>ETag</code> 値を入れて、新しいかどうかをチェックします。</p> + +<pre>If-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"</pre> + +<p>ハッシュが一致しない場合は、文書が途中で編集されたことを意味し、 {{HTTPStatus("412")}} <code> Precondition Failed</code> エラーが発生します。</p> + +<h3 id="Caching_of_unchanged_resources" name="Caching_of_unchanged_resources">変更されていないリソースのキャッシュ</h3> + +<p>もう一つの <code>ETag</code> ヘッダーの典型的な使用例として、変更されていないリソースをキャッシュすることがあります。ユーザーが (<code>ETag</code> が設定されている) 指定された URL を再度訪問した時、それが<em>古くなったもの</em> (古すぎて使用できない) であった場合、クライアントは {{HTTPHeader("If-None-Match")}} ヘッダー欄で <code>ETag</code> の値を送ります。</p> + +<pre>If-None-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"</pre> + +<p>サーバーは、クライアントの <code>ETag</code> (<code>If-None-Match</code> で送信されたもの) を現在のバージョンの <code>ETag</code> と比較し、両方の値が一致する (つまりリソースは変更されていない) 場合、サーバーは {{HTTPStatus("304")}} <code>Not Modified</code> ステータスを本文なしで返送し、キャッシュされたレスポンスのバージョンがまだ使用可能 (新しい) であることをクライアントに通知します。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7232", "ETag", "2.3")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.ETag")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("If-Match")}}</li> + <li>{{HTTPHeader("If-None-Match")}}</li> + <li>{{HTTPStatus("304")}}<code> Not Modified</code></li> + <li>{{HTTPStatus("412")}}<code> Precondition Failed</code></li> + <li> + <p><a href="https://www.w3.org/1999/04/Editing/">W3C Note: Editing the Web – Detecting the Lost Update Problem Using Unreserved Checkout</a></p> + </li> +</ul> diff --git a/files/ja/web/http/headers/expect-ct/index.html b/files/ja/web/http/headers/expect-ct/index.html new file mode 100644 index 0000000000..96b8f694fb --- /dev/null +++ b/files/ja/web/http/headers/expect-ct/index.html @@ -0,0 +1,89 @@ +--- +title: Expect-CT +slug: Web/HTTP/Headers/Expect-CT +tags: + - HTTP + - Reference + - ヘッダー + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/Expect-CT +--- +<p>{{HTTPSidebar}}</p> + +<p><code>Expect-CT</code> ヘッダーは、サイトが認証透過性の要件の報告や強制に参加して、サイトの不正な認証情報が通知されない状態を防ぐことができます。</p> + +<div class="note"> +<p>サイトが <code>Expect-CT</code> ヘッダーを有効にすると、ブラウザーが<strong><a href="https://www.certificate-transparency.org/known-logs">公開 CT ログ</a></strong>に現れるサイトのすべての認証情報をチェックするよう要求します。</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre>Expect-CT: report-uri="<uri>", + enforce, + max-age=<age></pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt>max-age</dt> + <dd> + <p><code>Expect-CT</code> ヘッダーフィールドを受信した後で、ユーザーエージェントがメッセージを受信したホストを、既知の Expect-CT ホストと見なすべき時間を秒数で指定します。</p> + + <p>キャッシュが表現可能な値よりも大きな値を受信した場合や、計算でオーバーフローが発生した場合、キャッシュは値を 2147483648 (2^31) または使用している表現方法で最も大きな整数値とみなします。</p> + </dd> + <dt>report-uri="<uri>" {{optional_inline}}</dt> + <dd> + <p>ユーザーエージェントが Expect-CT の失敗を報告する URI を指定します。</p> + <code>enforce</code> ディレクティブと <code>report-uri</code> ディレクティブが両方ともある場合、設定は "enforce-and-report" の設定と呼ばれ、ユーザーエージェントに認証透過性ポリシーに従い、違反を報告することを指示します。 + + <p> </p> + </dd> + <dt>enforce {{optional_inline}}</dt> + <dd> + <p>ユーザーエージェントに (報告するだけでなく) 認証透過性ポリシーに従い、ユーザーエージェントが認証透過性ポリシーに違反するコネクションを拒否するよう指示します。</p> + + <p><code>enforce</code> ディレクティブと <code>report-uri</code> ディレクティブが両方ともある場合、設定は "enforce-and-report" の設定と呼ばれ、ユーザーエージェントに認証透過性ポリシーに従い、違反を報告することを指示します。</p> + </dd> +</dl> + +<h2 id="Example" name="Example">例</h2> + +<p>以下の例は認証透過性を24時間強制し、違反を foo.example に報告することを示します。</p> + +<pre>Expect-CT: max-age=86400, enforce, report-uri="https://foo.example/report"</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="https://tools.ietf.org/html/draft-ietf-httpbis-expect-ct-07">Internet Draft</a></td> + <td>Expect-CT Extension for HTTP</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Expect-CT")}}</p> diff --git a/files/ja/web/http/headers/expect/index.html b/files/ja/web/http/headers/expect/index.html new file mode 100644 index 0000000000..41a2144feb --- /dev/null +++ b/files/ja/web/http/headers/expect/index.html @@ -0,0 +1,96 @@ +--- +title: Expect +slug: Web/HTTP/Headers/Expect +tags: + - HTTP + - HTTP ヘッダー + - Reference + - リクエストヘッダー +translation_of: Web/HTTP/Headers/Expect +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の <strong><code>Expect</code></strong> リクエストヘッダーは、リクエストを正しく扱うためにサーバーが実行する必要があると期待されていることを示します。</p> + +<p>仕様書で定義されている期待は <code>Expect: 100-continue</code> だけで、サーバーが応答するべきことは以下の通りです。</p> + +<ul> + <li>ヘッダーに含まれている情報で、直ちに成功とする条件を満たしているのであれば {{HTTPStatus("100")}}。</li> + <li>期待に沿うことができなければ {{HTTPStatus("417")}} (Expectation Failed)。それ以外であれば他の 4xx 状態になります。</li> +</ul> + +<p>例えば、サーバーは {{HTTPHeader("Content-Length")}} が長すぎるとリクエストを拒否する可能性があります。</p> + +<p><code>Expect</code> ヘッダーを送信するブラウザーはあまりありませんが、 cURL のような一部の他のクライアントは既定で送信します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p>現在は "100-continue" 以外の期待は定義されていません。</p> + +<pre class="syntaxbox">Expect: 100-continue +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt>100-continue</dt> + <dd>クライアントがこの要求で (おそらく大規模な) メッセージ本文を送信しようとしていることを受信者に通知し、 {{HTTPStatus("100")}} (Continue) 暫定応答を受信することを期待します。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Large_message_body" name="Large_message_body">巨大なメッセージ本文</h3> + +<p>クライアントは Expect ヘッダーで要求を送信し、メッセージ本文を送信する前にサーバーが応答するのを待ちます。</p> + +<pre>PUT /somewhere/fun HTTP/1.1 +Host: origin.example.com +Content-Type: video/h264 +Content-Length: 1234567890987 +Expect: 100-continue +</pre> + +<p>サーバーはリクエストヘッダーをチェックし、 {{HTTPStatus("100")}} (Continue) 応答を返信して、クライアントにメッセージ本体を送信するよう指示するか、又は期待に沿わない場合は、 {{HTTPStatus("417")}} (Expectation Failed) 状態になります。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "Expect", "5.1.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Expect")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPStatus("417")}}<code> Expectation Failed</code></li> + <li>{{HTTPStatus("100")}}<code> Continue</code></li> +</ul> diff --git a/files/ja/web/http/headers/expires/index.html b/files/ja/web/http/headers/expires/index.html new file mode 100644 index 0000000000..4d05a20a04 --- /dev/null +++ b/files/ja/web/http/headers/expires/index.html @@ -0,0 +1,85 @@ +--- +title: Expires +slug: Web/HTTP/Headers/Expires +tags: + - Caching + - HTTP + - HTTPResponse + - header + - キャッシング + - ヘッダー + - レスポンス +translation_of: Web/HTTP/Headers/Expires +--- +<div>{{HTTPSidebar}}</div> + +<p><code><strong>Expires</strong></code> ヘッダーには、レスポンスが古くなると見なされる日時が入ります。</p> + +<p>値 0 のような無効な日付は過去の日付を表し、リソースがすでに有効期限切れであることを意味します。</p> + +<div class="note">レスポンスに <code>max-age</code> または <code>s-maxage</code> ディレクティブを持つ {{HTTPHeader("Cache-Control")}} ヘッダーがある場合、<code>Expires</code> ヘッダーは無視されます。</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + <tr> + <th scope="row">{{Glossary("CORS-safelisted response header", "CORS セーフリストレスポンスヘッダー")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Expires: <http-date> +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><http-date></dt> + <dd> + <p>HTTP-date タイムスタンプ</p> + </dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>Expires: Wed, 21 Oct 2015 07:28:00 GMT</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7234", "Expires", "5.3")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Caching</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Expires")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Cache-Control")}}</li> + <li>{{HTTPHeader("Age")}}</li> +</ul> diff --git a/files/ja/web/http/headers/feature-policy/autoplay/index.html b/files/ja/web/http/headers/feature-policy/autoplay/index.html new file mode 100644 index 0000000000..b5097026fb --- /dev/null +++ b/files/ja/web/http/headers/feature-policy/autoplay/index.html @@ -0,0 +1,59 @@ +--- +title: 'Feature-Policy: autoplay' +slug: Web/HTTP/Headers/Feature-Policy/autoplay +tags: + - Feature-Policy + - HTTP + - Reference + - autoplay + - ディレクティブ + - 機能ポリシー +translation_of: Web/HTTP/Headers/Feature-Policy/autoplay +--- +<div>{{HTTPSidebar}} {{SeeCompatTable}}</div> + +<p><span class="seoSummary">HTTP の {{HTTPHeader("Feature-Policy")}} ヘッダーにおける <code>autoplay</code> ディレクティブは、現在の文書で {{domxref("HTMLMediaElement")}} インターフェイスによってメディアの自動再生をリクエストすることを許可するかどうかを制御します。</span>このポリシーが有効であれば、 {{domxref("HTMLMediaElement.play()")}} から返却された {{jsxref("Promise")}} が <code>DOMException</code> で拒否されます。 {{HTMLElement("audio")}} および {{HTMLElement("video")}} 要素の {{htmlattrxref("autoplay", "audio")}} 属性は無視されます。</p> + +<p>自動再生や自動再生ブロックの詳細については、 <a href="/ja/docs/Web/Media/Autoplay_guide">メディアおよび Web Audio API の自動再生ガイド</a> の記事を参照してください。</p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Feature-Policy: autoplay <allowlist>;</pre> + +<dl> + <dt><allowlist></dt> + <dd>{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}既定値は <code>'self'</code> です。</dd> +</dl> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Feature Policy')}}</td> + <td>{{Spec2('Feature Policy')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Feature-Policy.autoplay")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Feature-Policy")}} ヘッダー</li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy">機能ポリシー</a></li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy">機能ポリシーの使用</a></li> +</ul> diff --git a/files/ja/web/http/headers/feature-policy/battery/index.html b/files/ja/web/http/headers/feature-policy/battery/index.html new file mode 100644 index 0000000000..a644447d68 --- /dev/null +++ b/files/ja/web/http/headers/feature-policy/battery/index.html @@ -0,0 +1,62 @@ +--- +title: 'Feature-Policy: battery' +slug: Web/HTTP/Headers/Feature-Policy/battery +translation_of: Web/HTTP/Headers/Feature-Policy/battery +--- +<p>{{HTTPSidebar}}{{SeeCompatTable}}</p> + +<p>HTTP の {{HTTPHeader("Feature-Policy")}} ヘッダーにおける <code>battery</code> ディレクティブは、現在の文書で {{DOMxRef("Navigator.getBattery","Navigator.getBattery()")}} で得られる {{DOMxRef("BatteryManager")}} インターフェイスによって、端末のバッテリに関する情報の収集を許可するかどうかを制御します。</p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="notranslate">Feature-Policy: battery <allowlist>;</pre> + +<dl> + <dt><allowlist></dt> + <dd>{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}</dd> +</dl> + +<h2 id="Default_policy" name="Default_policy">既定のポリシー</h2> + +<p>既定値は <code>'self'</code> です。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName("Feature Policy")}}</td> + <td>{{Spec2("Feature Policy")}}</td> + <td>初回定義</td> + </tr> + <tr> + <td>{{SpecName("Battery API","#feature-policy-integration","Feature Policy integration")}}</td> + <td>{{Spec2("Battery API")}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Feature-Policy.battery")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Feature-Policy")}} ヘッダー</li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy">機能ポリシー</a></li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy">機能ポリシーの使用</a></li> + <li><a href="/ja/docs/Web/API/Battery_Status_API">Battery Status API</a></li> + <li>{{DOMxRef("Navigator.getBattery","Navigator.getBattery()")}}</li> + <li>{{DOMxRef("BatteryManager")}}</li> +</ul> diff --git a/files/ja/web/http/headers/feature-policy/camera/index.html b/files/ja/web/http/headers/feature-policy/camera/index.html new file mode 100644 index 0000000000..ce10a454f0 --- /dev/null +++ b/files/ja/web/http/headers/feature-policy/camera/index.html @@ -0,0 +1,57 @@ +--- +title: 'Feature-Policy: camera' +slug: Web/HTTP/Headers/Feature-Policy/camera +tags: + - Feature-Policy + - HTTP + - Reference + - camera + - ディレクティブ + - 機能ポリシー +translation_of: Web/HTTP/Headers/Feature-Policy/camera +--- +<div>{{HTTPSidebar}} {{SeeCompatTable}}</div> + +<p><span class="seoSummary">HTTP の {{HTTPHeader("Feature-Policy")}} ヘッダーにおける <code>camera</code> ディレクティブは、現在の文書が動画入力機器を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 {{domxref("MediaDevices.getUserMedia()")}} から返却された {{jsxref("Promise")}} が <code>NotAllowedError</code> で拒否されます。</span></p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Feature-Policy: camera <allowlist>;</pre> + +<dl> + <dt><allowlist></dt> + <dd>{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}既定値は <code>'self'</code> です。</dd> +</dl> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Feature Policy')}}</td> + <td>{{Spec2('Feature Policy')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Feature-Policy.camera")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Feature-Policy")}} ヘッダー</li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy">機能ポリシー</a></li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy">機能ポリシーの使用</a></li> +</ul> diff --git a/files/ja/web/http/headers/feature-policy/encrypted-media/index.html b/files/ja/web/http/headers/feature-policy/encrypted-media/index.html new file mode 100644 index 0000000000..54c34a8def --- /dev/null +++ b/files/ja/web/http/headers/feature-policy/encrypted-media/index.html @@ -0,0 +1,67 @@ +--- +title: 'Feature-Policy: encrypted-media' +slug: Web/HTTP/Headers/Feature-Policy/encrypted-media +tags: + - Directive + - EME + - Feature-Policy + - HTTP + - Reference + - ディレクティブ + - 機能ポリシー +translation_of: Web/HTTP/Headers/Feature-Policy/encrypted-media +--- +<p>{{HTTPSidebar}}{{SeeCompatTable}}</p> + +<p><span class="seoSummary">HTTP の {{HTTPHeader("Feature-Policy")}} ヘッダーにおける <code>encrypted-media</code> ディレクティブは、現在の文書が <a href="/ja/docs/Web/API/Encrypted_Media_Extensions_API">Encrypted Media Extensions</a> API (EME) を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 {{domxref("Navigator.requestMediaKeySystemAccess","Navigator.requestMediaKeySystemAccess()")}} から返却された {{jsxref("Promise")}} が {{domxref("DOMException")}} で拒否されます。</span></p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Feature-Policy: encrypted-media <allowlist>;</pre> + +<dl> + <dt><allowlist></dt> + <dd>{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}</dd> +</dl> + +<h2 id="Default_policy" name="Default_policy">既定のポリシー</h2> + +<p>許可リストは <code>'self'</code> です。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName("Feature Policy")}}</td> + <td>{{Spec2("Feature Policy")}}</td> + <td>初回定義</td> + </tr> + <tr> + <td>{{SpecName("EME","#feature-policy-integration","Feature Policy integration")}}</td> + <td>{{Spec2("EME")}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Feature-Policy.encrypted-media")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Feature-Policy")}} ヘッダー</li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy">機能ポリシー</a></li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy">機能ポリシーの使用</a></li> +</ul> diff --git a/files/ja/web/http/headers/feature-policy/fullscreen/index.html b/files/ja/web/http/headers/feature-policy/fullscreen/index.html new file mode 100644 index 0000000000..79067b06f3 --- /dev/null +++ b/files/ja/web/http/headers/feature-policy/fullscreen/index.html @@ -0,0 +1,89 @@ +--- +title: 'Feature-Policy:fullscreen' +slug: Web/HTTP/Headers/Feature-Policy/fullscreen +tags: + - Feature-Policy + - HTTP + - HTTP レスポンスヘッダー + - fullscreen + - ヘッダー + - 全画面 + - 機能ポリシー +translation_of: Web/HTTP/Headers/Feature-Policy/fullscreen +--- +<div>{{HTTPSidebar}} {{SeeCompatTable}}</div> + +<p><span class="seoSummary">HTTP の {{HTTPHeader("Feature-Policy")}} ヘッダーにおける <code>fullscreen</code> ディレクティブは、現在の文書が {{domxref('Element.requestFullScreen()')}} を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 返却された {{jsxref('Promise')}} が {{jsxref('TypeError')}} で拒否されます。</span></p> + +<p>既定では、最上位の文書およびその同じオリジンの子フレームが全画面モードを要求し、入ることができます。このディレクティブは別オリジンのフレームが全画面モードを使用することを許可したり拒否したりします。同じオリジンのフレームも含みます。</p> + +<div class="note"> +<p>このディレクティブと <code>allowfullscreen</code> が同じ <code><iframe></code> 要素に指定されていた場合、このディレクティブが優先します。</p> +</div> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Feature-Policy: fullscreen <allowlist>;</pre> + +<dl> + <dt><allowlist></dt> + <dd>{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}既定値は <code>'self'</code> です。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="General_example" name="General_example">一般的な例</h3> + +<p>SecureCorp Inc. は、自分自身のオリジンおよびオリジンが <code>https://example.com</code> のものを除いてすべての Fullscreen API を無効にしたがっているとします。以下の機能ポリシーを設定する HTTP レスポンスヘッダーを配信することで実現できます。</p> + +<pre class="brush: bash">Feature-Policy: fullscreen 'self' https://example.com</pre> + +<h3 id="With_an_<iframe>_element" name="With_an_<iframe>_element"><iframe> 要素と</h3> + +<p>FastCorp Inc. は、特定の <iframe> を除いたすべての別オリジンの子フレームの <code>fullscreen</code> を無効にしたがっているとします。以下の機能ポリシーを設定する HTTP レスポンスヘッダーを配信することで実現できます。</p> + +<pre class="brush: bash">Feature-Policy: fullscreen 'self'</pre> + +<p>それから <code><iframe></code> 要素に {{HTMLElement('iframe','allow','#Attributes')}} 属性を含めます。</p> + +<pre class="brush: html"><iframe src="https://other.com/videoplayer" allow="fullscreen"></iframe></pre> + +<p>iframe の属性は、選択的に特定のフレームの機能を有効にし、その他はたとえそれらのフレームが同じオリジンからきた文書を含んでいても無効にします。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Feature Policy')}}</td> + <td>{{Spec2('Feature Policy')}}</td> + <td>初回定義</td> + </tr> + <tr> + <td>{{SpecName('Fullscreen','#feature-policy-integration','Fullscreen')}}</td> + <td>{{Spec2('Feature Policy')}}</td> + <td><code>fullscreen</code> ポリシーを定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Feature-Policy.fullscreen")}}</p> + +<h2 id="See_also">See also</h2> + +<ul> + <li>{{HTTPHeader("Feature-Policy")}} ヘッダー</li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy">機能ポリシー</a></li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy">機能ポリシーの使用</a></li> +</ul> diff --git a/files/ja/web/http/headers/feature-policy/geolocation/index.html b/files/ja/web/http/headers/feature-policy/geolocation/index.html new file mode 100644 index 0000000000..caa657ed56 --- /dev/null +++ b/files/ja/web/http/headers/feature-policy/geolocation/index.html @@ -0,0 +1,78 @@ +--- +title: 'Feature-Policy:geolocation' +slug: Web/HTTP/Headers/Feature-Policy/geolocation +tags: + - Geolocation + - HTTP + - HTTP レスポンスヘッダー + - ヘッダー + - 機能ポリシー +translation_of: Web/HTTP/Headers/Feature-Policy/geolocation +--- +<div>{{HTTPSidebar}} {{SeeCompatTable}}</div> + +<p><span class="seoSummary">HTTP の {{HTTPHeader("Feature-Policy")}} ヘッダーにおける <code>geolocation</code> ディレクティブは、現在の文書が {{domxref('Geolocation')}} インターフェイスを使用することを許可するかどうかを制御します。このポリシーが有効であれば、 {{domxref('Geolocation.getCurrentPosition','getCurrentPosition()')}} および {{domxref('Geolocation.watchPosition','watchPosition()')}} を呼び出すと、関数のコールバックが呼び出され、 {{domxref('PositionError')}} コードが <code>PERMISSION_DENIED</code> になります。</span></p> + +<p>既定では、 Geolocation API は最上位の文書およびその同じオリジンの子フレームの中で使用することができます。このディレクティブは別オリジンのフレームによる位置情報へのアクセスを許可したり拒否したりします。同じオリジンのフレームも含みます。</p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Feature-Policy: geolocation <allowlist>;</pre> + +<dl> + <dt><allowlist></dt> + <dd>{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}既定値は <code>'self'</code> です。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="General_example" name="General_example">一般的な例</h3> + +<p>SecureCorp Inc. は、自分自身のオリジンおよびオリジンが <code>https://example.com</code> のものを除いてすべての Geolocation API を無効にしたがっているとします。以下の機能ポリシーを設定する HTTP レスポンスヘッダーを配信することで実現できます。</p> + +<pre class="brush: bash">Feature-Policy: geolocation 'self' https://example.com</pre> + +<h3 id="With_an_<iframe>_element" name="With_an_<iframe>_element"><iframe> 要素と</h3> + +<p>FastCorp Inc. は、特定の <iframe> を除いたすべての別オリジンの子フレームの <code>geolocation</code> を無効にしたがっているとします。以下の機能ポリシーを設定する HTTP レスポンスヘッダーを配信することで実現できます。</p> + +<pre class="brush: bash">Feature-Policy: geolocation 'self'</pre> + +<p>それから <code><iframe></code> 要素に {{HTMLElement('iframe','allow','#Attributes')}} 属性を含めます。</p> + +<pre class="brush: html"><iframe src="https://other.com/map" allow="geolocation"></iframe></pre> + +<p>iframe の属性は、選択的に特定のフレームの機能を有効にし、その他はたとえそれらのフレームが同じオリジンからきた文書を含んでいても無効にします。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Feature Policy')}}</td> + <td>{{Spec2('Feature Policy')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Feature-Policy.geolocation")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Feature-Policy")}} ヘッダー</li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy">機能ポリシー</a></li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy">機能ポリシーの使用</a></li> +</ul> diff --git a/files/ja/web/http/headers/feature-policy/index.html b/files/ja/web/http/headers/feature-policy/index.html new file mode 100644 index 0000000000..a687bb5a8f --- /dev/null +++ b/files/ja/web/http/headers/feature-policy/index.html @@ -0,0 +1,161 @@ +--- +title: Feature-Policy +slug: Web/HTTP/Headers/Feature-Policy +tags: + - Authorization + - Experimental + - Feature Policy + - Feature-Policy + - HTTP + - Permissions + - Reference + - Security + - Web + - header +translation_of: Web/HTTP/Headers/Feature-Policy +--- +<div>{{HTTPSidebar}}</div> + +<p><span class="seoSummary">HTTP の <strong><code>Feature-Policy</code></strong> ヘッダーは、自身のフレームおよび文書内の {{HTMLElement("iframe")}} 要素で、ブラウザーの機能を使用することを許可または拒否する仕組みを提供します。</span></p> + +<div class="note"> +<p>このヘッダーはまだ実験的な状態であり、随時変更される可能性があります。ウェブサイトに実装する際には注意してください。現在、このヘッダーは仕様では <code>Permissions-Policy</code> に改名されており、この記事は最終的にはその変更を反映して更新される予定です。</p> +</div> + +<p>詳しくは、<a href="/ja/docs/Web/HTTP/Feature_Policy">機能ポリシー</a>の記事を参照してください。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Feature-Policy: <directive> <allowlist></pre> + +<dl> + <dt><code><directive></code></dt> + <dd><code>allowlist</code> に適用される機能ポリシーディレクティブです。許可されているディレクティブ名の一覧は、以下の{{anch("Directives", "ディレクティブ")}}を参照してください。</dd> + <dt><code><allowlist></code></dt> + <dd>{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}</dd> +</dl> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt>{{httpheader('Feature-Policy/accelerometer','accelerometer')}}</dt> + <dd>現在の文書が、端末の加速度に関する情報を、 {{DOMxRef("Accelerometer")}} インターフェイスを通じて収集することを許可するかどうかを制御します。</dd> + <dt>{{httpheader('Feature-Policy/ambient-light-sensor','ambient-light-sensor')}}</dt> + <dd>現在の文書が、端末の周囲の環境における光量についての情報を、 {{DOMxRef("AmbientLightSensor")}} インターフェイスを通じて収集することを許可するかどうかを制御します。</dd> + <dt>{{httpheader('Feature-Policy/autoplay','autoplay')}}</dt> + <dd>現在の文書で {{domxref("HTMLMediaElement")}} インターフェイスがメディアの自動再生をリクエストすることを無効にするかどうかを制御します。このポリシーが有効であり、ユーザーによる操作がなかった場合、 {{domxref("HTMLMediaElement.play()")}} が返す {{jsxref("Promise")}} が {{domxref("DOMException")}} で拒否されます。 {{HTMLELement("audio")}} および {{HTMLElement("video")}} 要素の <code>autoplay</code> 属性は無視されます。</dd> + <dt>{{httpheader('Feature-Policy/battery','battery')}}</dt> + <dd><a href="/docs/Web/API/Battery_Status_API">Battery Status API</a> の使用を許可するかどうかを制御します。このポリシーが無効になっている場合、 {{DOMxRef("Navigator.getBattery","Navigator.getBattery()")}} が返す {{JSxRef("Promise")}} は {{Exception("NotAllowedError")}} の {{DOMxRef("DOMException")}} で拒否されます。</dd> + <dt>{{httpheader('Feature-Policy/camera', 'camera')}}</dt> + <dd>現在の文書が動画入力機器を使用することを許可するかどうかを制御します。このポリシーが無効であれば、 {{domxref("MediaDevices.getUserMedia", "getUserMedia()")}} が返す {{jsxref("Promise")}} が {{Exception("NotAllowedError")}} の {{DOMxRef("DOMException")}} で拒否されます。</dd> + <dt>{{HTTPHeader('Feature-Policy/display-capture', 'display-capture')}}</dt> + <dd>現在の文書が {{domxref("MediaDevices.getDisplayMedia", "getDisplayMedia()")}} メソッドを使用して画面の内容をキャプチャすることを許可するかどうかを制御します。このポリシーが無効であれば、表示内容をキャプチャする許可がない場合、 <code>getDisplayMedia()</code> から返却されるプロミスが {{Exception("NotAllowedError")}} で拒否されます。</dd> + <dt>{{httpheader('Feature-Policy/document-domain','document-domain')}}</dt> + <dd>現在の文書が {{domxref("document.domain")}} を設定することを許可するかどうかを制御します。このポリシーが無効な場合、 {{domxref("document.domain")}} を設定しようとすると失敗し、 {{Exception("SecurityError")}} の {{domxref("DOMException")}} が発生します。</dd> + <dt>{{httpheader('Feature-Policy/encrypted-media', 'encrypted-media')}}</dt> + <dd>現在の文書が <a href="/ja/docs/Web/API/Encrypted_Media_Extensions_API">Encrypted Media Extensions</a> API (EME) を使用することを許可するかどうかを制御します。このポリシーが無効であれば、 {{domxref("Navigator.requestMediaKeySystemAccess()")}} から返却された {{jsxref("Promise")}} が {{domxref("DOMException")}} で拒否されます。</dd> + <dt>{{httpheader('Feature-Policy/execution-while-not-rendered', 'execution-while-not-rendered')}}</dt> + <dd>表示されないフレーム内 (例えば iframe が <code><a href="/ja/docs/Web/HTML/Global_attributes/hidden">hidden</a></code> または <code>display: none</code> の場合) でタスクを実行するかどうかを制御します。</dd> + <dt>{{httpheader('Feature-Policy/execution-while-out-of-viewport', 'execution-while-out-of-viewport')}}</dt> + <dd>ビューポートの見える範囲外にあるフレーム内のタスクを実行するかどうかを制御します。</dd> +</dl> + +<dl> + <dt>{{httpheader('Feature-Policy/fullscreen','fullscreen')}}</dt> + <dd>現在の文書が {{domxref('Element.requestFullScreen()')}} を使用することを許可するかどうかを制御します。このポリシーが無効であれば、返却された {{jsxref('Promise')}} が {{jsxref('TypeError')}} で拒否されます。</dd> + <dt>{{httpheader('Feature-Policy/geolocation','geolocation')}}</dt> + <dd>現在の文書が {{domxref('Geolocation')}} インターフェイスを使用することを許可するかどうかを制御します。このポリシーが無効であれば、 {{domxref('Geolocation.getCurrentPosition','getCurrentPosition()')}} および {{domxref('Geolocation.watchPosition','watchPosition()')}} を呼び出すと、関数のコールバックが呼び出され、 {{domxref('PositionError')}} コードが <code>PERMISSION_DENIED</code> になります。</dd> + <dt>{{httpheader('Feature-Policy/gyroscope','gyroscope')}}</dt> + <dd>現在の文書が {{DOMxRef("Gyroscope")}} インターフェイスを通じて、端末の方向に関する情報を収集することを許可するかどうかを制御します。</dd> + <dt>{{httpheader('Feature-Policy/layout-animations','layout-animations')}}</dt> + <dd>現在の文書がレイアウトアニメーションを表示することを許可するかどうかを制御します。</dd> +</dl> + +<dl> + <dt>{{httpheader('Feature-Policy/legacy-image-formats','legacy-image-formats')}}</dt> + <dd>現在の文書が古い形式の画像を表示することを許可するかどうかを制御します。</dd> +</dl> + +<dl> + <dt>{{httpheader('Feature-Policy/magnetometer','magnetometer')}}</dt> + <dd>現在の文書が {{DOMxRef("Magnetometer")}} インターフェイスを通じて、端末の方向に関する情報を収集することを許可するかどうかを制御します。</dd> + <dt>{{httpheader('Feature-Policy/microphone','microphone')}}</dt> + <dd>現在の文書がオーディオ入力端末を使用することを許可するかどうかを制御します。このポリシーが無効であれば、 {{domxref("MediaDevices.getUserMedia()")}} で返却された {{jsxref('Promise')}} が {{Exception("NotAllowedError")}} で拒否されます。</dd> + <dt>{{httpheader('Feature-Policy/midi', 'midi')}}</dt> + <dd>現在の文書が <a href="/ja/docs/Web/API/Web_MIDI_API">Web MIDI API</a> を使用することを許可するかどうかを制御します。このポリシーが無効であれば、 {{domxref("Navigator.requestMIDIAccess()")}} から返却された {{jsxref("Promise")}} が {{domxref("DOMException")}} で拒否されます。</dd> + <dt>{{httpheader('Feature-Policy/navigation-override','navigation-override')}}</dt> + <dd>ページ作成者が <a href="https://www.w3.org/TR/css-nav/">空間ナビゲーション</a>の動作を制御したり、完全にキャンセルしたりすることができる仕組みの利用可能性を制御します。</dd> + <dt>{{httpheader('Feature-Policy/oversized-images','oversized-images')}}</dt> + <dd>現在の文書が大きな画像をダウンロードして表示することを許可するかどうかを制御します。</dd> + <dt>{{httpheader('Feature-Policy/payment', 'payment')}}</dt> + <dd>現在の文書が <a href="/ja/docs/Web/API/Payment_Request_API">Payment Request API</a> を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 {{domxref("PaymentRequest","PaymentRequest()")}} コンストラクターで {{Exception("SecurityError")}} の {{domxref("DOMException")}} が発生します。</dd> + <dt>{{httpheader('Feature-Policy/picture-in-picture', 'picture-in-picture')}}</dt> + <dd>現在の文書が、該当する API を使用して Picture-in-Picture モードで動画を再生することを許可するかどうかを制御します。</dd> + <dt>{{httpheader("Feature-Policy/publickey-credentials-get", "publickey-credentials-get")}}</dt> + <dd>現在の文書が <a href="/ja/docs/Web/API/Web_Authentication_API">Web Authentication API</a> を使用して、すでに保存されている公開鍵認証情報を再取得することを許可するかどうかを制御します (例: {{domxref("CredentialsContainer.get","navigator.credentials.get({publicKey: ..., ...})")}})。</dd> + <dt>{{httpheader('Feature-Policy/sync-xhr', 'sync-xhr')}}</dt> + <dd>現在の文書が同期 {{DOMxRef("XMLHttpRequest")}} リクエストを行うことを許可するかどうかを制御します。</dd> + <dt>{{httpheader('Feature-Policy/usb', 'usb')}}</dt> + <dd>現在の文書が <a href="https://wicg.github.io/webusb/">WebUSB API</a> を使用することを許可するかどうかを制御します。</dd> + <dt>{{httpheader('Feature-Policy/vr', 'vr')}} {{deprecated_inline}}</dt> + <dd>現在の文書が <a href="/ja/docs/Web/API/WebVR_API">WebVR API</a> の使用を許可されているかどうかを制御します。このポリシーが無効になっている場合、 {{domxref("Navigator.getVRDisplays","Navigator.getVRDisplays()")}} が返す {{jsxref("Promise")}} は {{domxref("DOMException")}} で拒否されます。 WebVR 標準は <a href="/ja/docs/Web/API/WebXR_Device_API">WebXR</a> に置き換えられつつあることに留意してください。</dd> + <dt>{{httpheader('Feature-Policy/wake-lock', 'wake-lock')}}</dt> + <dd>現在の文書が <a href="https://www.w3.org/TR/wake-lock/">Wake Lock API</a> を使用して、端末が省電力モードに入らないことを示すことを許可するかどうかを制御します。</dd> + <dt>{{httpheader('Feature-Policy/screen-wake-lock', 'screen-wake-lock')}}</dt> + <dd>現在の文書が <a href="/ja/docs/Web/API/Screen_Wake_Lock_API">Screen Wake Lock API</a> を使用して、端末が画面をオフにしたり暗くしたりしてはいけないことを示すことを許可するかどうかを制御します。</dd> + <dt>{{httpheader("Feature-Policy/web-share", "web-share")}}</dt> + <dd>現在の文書が Web Share API の {{domxref("Navigator.share","Navigator.share()")}} を使用して、テキスト、リンク、画像、その他のコンテンツをモバイルアプリなどのユーザーが任意に選択した任意の場所に共有することを許可するかどうかを制御します。</dd> + <dt>{{httpheader("Feature-Policy/xr-spatial-tracking", "xr-spatial-tracking")}}</dt> + <dd>現在の文書が <a href="/ja/docs/Web/API/WebXR_Device_API">WebXR Device API</a> を使用して WebXR セッションと対話することを許可するかどうかを制御します。</dd> +</dl> + +<h2 id="Example" name="Example">例</h2> + +<p>SecureCorp Inc. が、アプリケーションでマイクと Geolocation API を無効にしたがっているとします。以下の機能ポリシーを設定する HTTP レスポンスヘッダーを配信することで実現できます。</p> + +<pre class="notranslate">Feature-Policy: microphone 'none'; geolocation 'none'</pre> + +<p>オリジンのリストに <code>'none'</code> キーワードを指定すると、指定された機能がオリジンに関係なく、すべての閲覧コンテキスト (iframe を含む) で無効になります。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="https://w3c.github.io/webappsec-permissions-policy/#permissions-policy-http-header-field">Permissions Policy</a></td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p>{{Compat("http.headers.Feature-Policy")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy">機能ポリシー</a></li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy">機能ポリシーの使用</a></li> + <li>{{DOMxRef("Document.featurePolicy")}} および {{DOMxRef("FeaturePolicy")}}</li> + <li><a class="external external-icon" href="https://chrome.google.com/webstore/detail/feature-policy-tester-dev/pchamnkhkeokbpahnocjaeednpbpacop" rel="noopener">Feature-Policy Tester (Chrome Developer Tools extension)</a></li> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>{{HTTPHeader("Referrer-Policy")}}</li> +</ul> diff --git a/files/ja/web/http/headers/feature-policy/microphone/index.html b/files/ja/web/http/headers/feature-policy/microphone/index.html new file mode 100644 index 0000000000..82a87bfea6 --- /dev/null +++ b/files/ja/web/http/headers/feature-policy/microphone/index.html @@ -0,0 +1,57 @@ +--- +title: 'Feature-Policy:microphone' +slug: Web/HTTP/Headers/Feature-Policy/microphone +tags: + - Feature-Policy + - HTTP + - HTTP レスポンスヘッダー + - microphone + - ヘッダー + - 機能ポリシー +translation_of: Web/HTTP/Headers/Feature-Policy/microphone +--- +<div>{{HTTPSidebar}} {{SeeCompatTable}}</div> + +<p><span class="seoSummary">HTTP の {{HTTPHeader("Feature-Policy")}} ヘッダーにおける <code>microphone</code> ディレクティブは、現在の文書がオーディオ入力端末を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 {{domxref("MediaDevices.getUserMedia()")}} で返却された {{jsxref('Promise')}} が <code>NotAllowedError</code> で拒否されます。</span></p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Feature-Policy: microphone <allowlist>;</pre> + +<dl> + <dt><allowlist></dt> + <dd>{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}既定値は <code>'self'</code> です。</dd> +</dl> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Feature Policy')}}</td> + <td>{{Spec2('Feature Policy')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Feature-Policy.microphone")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Feature-Policy")}} ヘッダー</li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy">機能ポリシー</a></li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy">機能ポリシーの使用</a></li> +</ul> diff --git a/files/ja/web/http/headers/feature-policy/midi/index.html b/files/ja/web/http/headers/feature-policy/midi/index.html new file mode 100644 index 0000000000..5cee03b47a --- /dev/null +++ b/files/ja/web/http/headers/feature-policy/midi/index.html @@ -0,0 +1,62 @@ +--- +title: 'Feature-Policy: midi' +slug: Web/HTTP/Headers/Feature-Policy/midi +tags: + - Directive + - Feature-Policy + - HTTP + - MIDI + - Reference + - ディレクティブ + - 機能ポリシー +translation_of: Web/HTTP/Headers/Feature-Policy/midi +--- +<p>{{HTTPSidebar}}{{SeeCompatTable}}</p> + +<p><span class="seoSummary">HTTP の {{HTTPHeader("Feature-Policy")}} ヘッダーにおける <code>midi</code> ディレクティブは、現在の文書が <a href="/ja/docs/Web/API/Web_MIDI_API">Web MIDI API</a> を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 {{domxref("Navigator.requestMIDIAccess()")}} から返却された {{jsxref("Promise")}} が <code>DOMException</code> で拒否されます。</span></p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Feature-Policy: midi <allowlist>;</pre> + +<dl> + <dt><allowlist></dt> + <dd>{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}</dd> +</dl> + +<h2 id="Default_policy" name="Default_policy">既定のポリシー</h2> + +<p>許可リストは <code>'self'</code> です。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Feature Policy')}}</td> + <td>{{Spec2('Feature Policy')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Feature-Policy.midi")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Feature-Policy")}} ヘッダー</li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy">機能ポリシー</a></li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy">機能ポリシーの使用</a></li> +</ul> diff --git a/files/ja/web/http/headers/feature-policy/payment/index.html b/files/ja/web/http/headers/feature-policy/payment/index.html new file mode 100644 index 0000000000..1088399ba3 --- /dev/null +++ b/files/ja/web/http/headers/feature-policy/payment/index.html @@ -0,0 +1,68 @@ +--- +title: 'Feature-Policy: payment' +slug: Web/HTTP/Headers/Feature-Policy/payment +tags: + - Directive + - Feature Policy + - Feature-Policy + - HTTP + - Payment Request API + - Payments API + - Reference + - 決済 API +translation_of: Web/HTTP/Headers/Feature-Policy/payment +--- +<div>{{HTTPSidebar}} {{SeeCompatTable}}</div> + +<p><span class="seoSummary">HTTP の {{HTTPHeader("Feature-Policy")}} ヘッダーフィールドにおける <code>payment</code> ディレクティブは、現在の文書が <a href="/ja/docs/Web/API/Payment_Request_API">Payment Request API</a> を使用することを許可するかどうかを制御します。このポリシーが無効であれば、 {{DOMxRef("PaymentRequest()")}} コンストラクターで {{exception("SyntaxError")}} 例外が発生します。</span></p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Feature-Policy: payment <allowlist>;</pre> + +<dl> + <dt><allowlist></dt> + <dd>{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}</dd> +</dl> + +<h2 id="Default_policy" name="Default_policy">既定のポリシー</h2> + +<p><code>payment</code> 機能の既定の許可リストの値は <code>'self'</code> です。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Payment')}}</td> + <td>{{Spec2('Payment')}}</td> + <td>See <a href="https://w3c.github.io/payment-request/#feature-policy">Section 16. Feature Policy integration</a>.</td> + </tr> + <tr> + <td>{{SpecName('Feature Policy')}}</td> + <td>{{Spec2('Feature Policy')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Feature-Policy.payment")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Feature-Policy")}} ヘッダーフィールド</li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy">機能ポリシー</a></li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy">機能ポリシーの使用</a></li> +</ul> diff --git a/files/ja/web/http/headers/feature-policy/vr/index.html b/files/ja/web/http/headers/feature-policy/vr/index.html new file mode 100644 index 0000000000..fbc2792f53 --- /dev/null +++ b/files/ja/web/http/headers/feature-policy/vr/index.html @@ -0,0 +1,71 @@ +--- +title: 'Feature-Policy: vr' +slug: Web/HTTP/Headers/Feature-Policy/vr +tags: + - Directive + - Feature Policy + - Feature-Policy + - HTTP + - Reference + - WebVR +translation_of: Web/HTTP/Headers/Feature-Policy/vr +--- +<div>{{HTTPSidebar}} {{SeeCompatTable}}</div> + +<p class="warning"><a href="/ja/docs/Web/API/WebVR_API">WebVR API</a> は <a href="/ja/docs/Web/API/WebXR_API">WebXR Device API</a> で置き換えられ、ウェブプラットフォームから削除されつつあるところです。代わりに WebXR Device API のための機能識別子 {{HTTPHeader("Feature-Policy/xr-spatial-tracking","xr-spatial-tracking")}} を使用してください。</p> + +<p><span class="seoSummary">HTTP の {{HTTPHeader("Feature-Policy")}} ヘッダーにおける <code>vr</code> ディレクティブは、現在の文書が <a href="/ja/docs/Web/API/WebVR_API">WebVR API</a> を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 {{DOMxRef("Navigator.getVRDisplays","Navigator.getVRDisplays()")}} から返却された {{JSxRef("Promise")}} が {{DOMxRef("DOMException")}} で拒否されます。</span></p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Feature-Policy: vr <allowlist>;</pre> + +<dl> + <dt><allowlist></dt> + <dd>{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}</dd> + <dd>/dl> + <h2 id="Default_policy" name="Default_policy">既定のポリシー</h2> + + <p>既定の許可リストは <code>'self'</code> です。</p> + < + + <h2 id="Specifications" name="Specifications">仕様書</h2> + + <table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="https://immersive-web.github.io/webxr/#feature-policy">WebXR Device API</a></td> + <td>編集者草稿</td> + <td>この仕様書における 'xr' の定義</td> + </tr> + <tr> + <td>{{SpecName('Feature Policy')}}</td> + <td>{{Spec2('Feature Policy')}}</td> + <td>初回定義</td> + </tr> + </tbody> + </table> + + <h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + + <div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + + <p>{{Compat("http.headers.Feature-Policy.vr")}}</p> + + <h2 id="See_also" name="See_also">関連情報</h2> + + <ul> + <li>{{HTTPHeader("Feature-Policy/xr-spatial-tracking","Feature-Policy: xr-spatial-tracking")}}</li> + <li>{{HTTPHeader("Feature-Policy")}} ヘッダー</li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy">機能ポリシー</a></li> + <li><a href="/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy">機能ポリシーの使用</a></li> + </ul> + </dd> +</dl> diff --git a/files/ja/web/http/headers/feature-policy/xr/index.html b/files/ja/web/http/headers/feature-policy/xr/index.html new file mode 100644 index 0000000000..b730a40b37 --- /dev/null +++ b/files/ja/web/http/headers/feature-policy/xr/index.html @@ -0,0 +1,8 @@ +--- +title: 'Feature-Policy: xr' +slug: Web/HTTP/Headers/Feature-Policy/xr +translation_of: Web/HTTP/Headers/Feature-Policy/xr +--- +<p>{{HTTPSidebar}}</p> + +<p>この機能ポリシーディレクティブは、ある時点では <code>xr</code> として定義されていました (ただし Chrome では {{httpheader("Feature-Policy/vr", "vr")}} として実装されていました)。代わりに {{httpheader("Feature-Policy/xr-spatial-tracking", "xr-spatial-tracking")}} を使用してください。</p> diff --git a/files/ja/web/http/headers/forwarded/index.html b/files/ja/web/http/headers/forwarded/index.html new file mode 100644 index 0000000000..adcd79014e --- /dev/null +++ b/files/ja/web/http/headers/forwarded/index.html @@ -0,0 +1,118 @@ +--- +title: Forwarded +slug: Web/HTTP/Headers/Forwarded +tags: + - HTTP + - HTTP ヘッダー + - Reference + - ヘッダー + - リクエストヘッダー +translation_of: Web/HTTP/Headers/Forwarded +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Forwarded</code></strong> ヘッダーは、プロキシが要求のパスに含まれているときに変更または失われた、プロキシサーバーのクライアント側の情報が含まれます。</p> + +<p>このヘッダーの代替で、事実上の標準となっているものは {{HTTPHeader("X-Forwarded-For")}}, {{HTTPHeader("X-Forwarded-Host")}}, {{HTTPHeader("X-Forwarded-Proto")}} ヘッダーです。</p> + +<p>このヘッダーは、デバッグ、統計、ロケーション依存コンテンツの生成に使用され、クライアントの IP アドレスなどの機密情報を公開します。したがって、このヘッダーを展開する際には、ユーザーのプライバシーを念頭に置く必要があります。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Forwarded: by=<identifier>; for=<identifier>; host=<host>; proto=<http|https> +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><identifier></dt> + <dd>プロキシの使用時に変更または失われた情報を公開する識別子。これは次のいずれかです。 + <ul> + <li>IP アドレス (v4 又は v6、任意でポート番号付き、 ipv6 は引用符と角括弧で囲まれます)</li> + <li>難読化された識別子 ("_hidden" や "_secret" など)</li> + <li>又は先行するエンティティが不明な場合 (及び依然として要求の転送が行われたことを示したい場合) は "unknown"</li> + </ul> + </dd> + <dt>by=<identifier></dt> + <dd>要求がプロキシサーバーに入ってきたインターフェイス。</dd> + <dt>for=<identifier></dt> + <dd>要求を発行したクライアントと、その後のプロキシチェーン内のプロキシ。</dd> + <dt>host=<host></dt> + <dd>プロキシから受信したときの {{HTTPHeader("Host")}} リクエストヘッダー。</dd> + <dt>proto=<http|https></dt> + <dd> + <p>そのプロトコルが要求の作成に使用されたか (ふつうは "http" 又は "https")。</p> + </dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Using_the_Forwarded_header" name="Using_the_Forwarded_header"><code>Forwarded</code> ヘッダーの使用</h3> + +<pre>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 +</pre> + +<h3 id="Transitioning_from_X-Forwarded-For_to_Forwarded" name="Transitioning_from_X-Forwarded-For_to_Forwarded"><code>X-Forwarded-For</code> から <code>Forwarded</code> への移行</h3> + +<p>アプリケーション、サーバー、プロキシが標準化された <code>Forwarded</code> ヘッダーに対応している場合は、 {{HTTPHeader("X-Forwarded-For")}} を置き換えることができます。なお、 IPv6 アドレスは、 <code>Forwarded</code> では引用符と角括弧で囲む必要があります。</p> + +<pre>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]" +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7239", "Forwarded", "4")}}</td> + <td>Forwarded HTTP Extension</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Forwarded")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("X-Forwarded-For")}}</li> + <li>{{HTTPHeader("X-Forwarded-Host")}}</li> + <li>{{HTTPHeader("X-Forwarded-Proto")}}</li> + <li>{{HTTPHeader("Via")}} – 接続しているクライアントではなく、プロキシ自身についての情報を提供します。</li> +</ul> diff --git a/files/ja/web/http/headers/from/index.html b/files/ja/web/http/headers/from/index.html new file mode 100644 index 0000000000..9fd9e0196e --- /dev/null +++ b/files/ja/web/http/headers/from/index.html @@ -0,0 +1,74 @@ +--- +title: From +slug: Web/HTTP/Headers/From +tags: + - HTTP + - Reference + - ヘッダー +translation_of: Web/HTTP/Headers/From +--- +<p>{{HTTPSidebar}}</p> + +<p><code><strong>From</strong></code> リクエストヘッダーには、リクエスト元の user agent を制御する人のユーザーの Eメールアドレスが含まれています。</p> + +<p>ロボティックユーザーエージェント (クローラなど) を使用している場合は、<code>From</code> ヘッダーを送信する必要があります。ロボットが過度の不要なリクエストや無効なリクエストを送信しているなど、サーバーに問題が発生した場合は連絡できます。</p> + +<div class="warning"> +<p>アクセス制御または認証には <code>From</code> ヘッダーを使用しないでください。</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダータイプ</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="構文">構文</h2> + +<pre class="syntaxbox">From: <email> +</pre> + +<h2 id="ディレクティブ">ディレクティブ</h2> + +<dl> + <dt><email></dt> + <dd>マシンに使用可能な電子メールアドレス。</dd> +</dl> + +<h2 id="例">例</h2> + +<pre>From: webmaster@example.org</pre> + +<h2 id="仕様">仕様</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様書</th> + <th scope="col">タイトル</th> + </tr> + <tr> + <td>{{RFC("7231", "From", "5.5.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="ブラウザの互換性">ブラウザの互換性</h2> + +<p class="hidden">このページの互換表は構造化データから生成されます。データに貢献したい場合は <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックし、プルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.From")}}</p> + +<h2 id="関連情報">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Host")}}</li> +</ul> diff --git a/files/ja/web/http/headers/host/index.html b/files/ja/web/http/headers/host/index.html new file mode 100644 index 0000000000..e26c8e5c7d --- /dev/null +++ b/files/ja/web/http/headers/host/index.html @@ -0,0 +1,78 @@ +--- +title: Host +slug: Web/HTTP/Headers/Host +tags: + - HTTP + - Reference + - ヘッダー + - リクエストヘッダー +translation_of: Web/HTTP/Headers/Host +--- +<div>{{HTTPSidebar}}</div> + +<p><code><strong>Host</strong></code> リクエストヘッダーは、リクエストが送信される先のサーバーのホスト名とポート番号を指定します。</p> + +<p>ポート番号が指定されなかった場合は、要求されたサービスの既定のポート(例えば HTTPS の URL であれば<code>443</code>、 HTTP の URL であれば <code>80</code>)とみなされます。</p> + +<p><code>Host</code> ヘッダー項目はすべての HTTP/1.1 リクエストメッセージで送信する必要があります。 HTTP/1.1 リクエストメッセージに <code>Host</code> ヘッダー項目がなかったり、二つ以上あったりした場合は {{HTTPStatus("400")}} (Bad Request) ステータスコードが返されることがあります。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Host: <host>:<port> +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><host></dt> + <dd>(仮想ホストの)サーバーのドメイン名。</dd> + <dt><port> {{optional_inline}}</dt> + <dd>サーバーが待受けしている TCP のポート番号。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre class="notranslate">Host: developer.cdn.mozilla.net</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7230", "Host", "5.4")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Host")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPStatus("400")}}</li> + <li>{{HTMLElement("base")}}</li> +</ul> diff --git a/files/ja/web/http/headers/if-match/index.html b/files/ja/web/http/headers/if-match/index.html new file mode 100644 index 0000000000..f7bef762af --- /dev/null +++ b/files/ja/web/http/headers/if-match/index.html @@ -0,0 +1,94 @@ +--- +title: If-Match +slug: Web/HTTP/Headers/If-Match +tags: + - HTTP + - HTTP ヘッダー + - Reference + - リクエストヘッダー + - 条件付きリクエスト +translation_of: Web/HTTP/Headers/If-Match +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の <strong><code>If-Match</code></strong> リクエストヘッダーは、リクエストを条件付きにします。 {{HTTPMethod("GET")}} および {{HTTPMethod("HEAD")}} メソッドの場合、リストされた <code>ETag</code> のいずれかと一致する場合にのみ、サーバーは要求されたリソースを返します。{{HTTPMethod("PUT")}} と他の安全ではないメソッドでは、この場合のみリソースをアップロードします。</p> + +<p>格納された {{HTTPHeader("ETag")}} との比較では、<em>強い比較アルゴリズム</em>を使用、つまり二つのファイルがバイト単位で同一である場合のみ同一とみなします。列挙された <code>ETag</code> に <code>W/</code> 接頭辞がついている場合は弱いエンティティタグであることを示し、この比較アルゴリズムでの比較は行われません。</p> + +<p>一般的な使用例は二つあります。</p> + +<ul> + <li>{{HTTPMethod("GET")}} および {{HTTPMethod("HEAD")}} メソッドの場合は、 {{HTTPHeader("Range")}} ヘッダーと組み合わせて使用され、リクエストされた新しい範囲が以前のものと同じリソースからのものであることを保証することができます。一致しない場合、 {{HTTPStatus("416")}} (Range Not Satisfiable) レスポンスが返されます。</li> + <li>他のメソッド、特に {{HTTPMethod("PUT")}} の場合は、 <code>If-Match</code> を使用して<a href="https://www.w3.org/1999/04/Editing/#3.1">更新プログラムが失われる問題</a>を防ぐことができます。ユーザーがアップロードしたいリソースの変更が、元のリソースがフェッチされた後に行われた別の変更を上書きしないかどうかを確認できます。リクエストを満たすことができない場合、 {{HTTPStatus("412")}} (Precondition Failed) レスポンスが返されます。</li> +</ul> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">If-Match: <etag_value> +If-Match: <etag_value>, <etag_value>, … +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><etag_value></dt> + <dd>リクエストされたリソースを一意に表すエンティティタグです。二重引用符の間に置かれた ASCII 文字列 (<code>"675af34563dc-tr34"</code> など) です。これらのタグは「弱い」こと、つまり、意味的にはリソースを表現しているが、バイト単位の一致を示していないことを示すために、 <code>W/</code> という接頭辞を付けることができます。しかし、 <strong><code>If-Match</code></strong> ヘッダーでは、弱いエンティティタグは一致することはありません。</dd> + <dt><code>*</code></dt> + <dd>アスタリスクは任意のリソースを表す特殊な値です。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre class="notranslate">If-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d" + +If-Match: "67ab43", "54ed21", "7892dd" + +If-Match: * +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7232", "If-Match", "3.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.If-Match")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("ETag")}}</li> + <li>{{HTTPHeader("If-Unmodified-Since")}}</li> + <li>{{HTTPHeader("If-Modified-Since")}}</li> + <li>{{HTTPHeader("If-None-Match")}}</li> + <li>{{HTTPStatus("416")}}<code> Range Not Satisfiable</code></li> + <li>{{HTTPStatus("412")}}<code> Precondition Failed</code></li> +</ul> diff --git a/files/ja/web/http/headers/if-modified-since/index.html b/files/ja/web/http/headers/if-modified-since/index.html new file mode 100644 index 0000000000..4da598b0bf --- /dev/null +++ b/files/ja/web/http/headers/if-modified-since/index.html @@ -0,0 +1,97 @@ +--- +title: If-Modified-Since +slug: Web/HTTP/Headers/If-Modified-Since +tags: + - HTTP + - HTTP ヘッダー + - Reference + - リクエストヘッダー + - 条件付きリクエスト +translation_of: Web/HTTP/Headers/If-Modified-Since +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の <strong><code>If-Modified-Since</code></strong> リクエストヘッダーは、リクエストを条件付にします。サーバーは最後にリソースが変更された時刻が、リクエストにより与えられた時刻より後の場合にのみ、リクエストされたリソースを {{HTTPStatus("200")}} ステータスと共に返却します。もしリクエストにより与えられた時刻以降にリソースが変更されていなければ、レスポンスは本文を持たない {{HTTPStatus("304")}} になります。前回のリクエストの {{HTTPHeader("Last-Modified")}} レスポンスヘッダーは、最後にリソースが変更された時刻を含みます。 {{HTTPHeader("If-Unmodified-Since")}} とは異なり、 <code>If-Modified-Since</code> は {{HTTPMethod("GET")}} もしくは {{HTTPMethod("HEAD")}} でのみ使用できます。</p> + +<p>本ヘッダーは {{HTTPHeader("If-None-Match")}} との組み合わせで使用された場合、サーバーが <code>If-None-Match</code> に対応していない場合を除き無視されます。</p> + +<p>最も一般的な使用方法は {{HTTPHeader("ETag")}} に関連付けられていない、キャッシュされたリソースを更新するために用いることです。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">If-Modified-Since: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><day-name></dt> + <dd>"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" の中から一つ (大文字・小文字の区別あり)</dd> + <dt><day></dt> + <dd>2桁の日付を表す数字, 例 "04" や "23".</dd> + <dt><month></dt> + <dd>"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" の中から一つ (大文字・小文字の区別あり)</dd> + <dt><year></dt> + <dd>4桁の年を表す数字, 例 "1990" や "2016"</dd> + <dt><hour></dt> + <dd>2桁の時間を表す数字, 例 "09" や "23"</dd> + <dt><minute></dt> + <dd>2桁の分を表す数字, 例 "04" や "59"</dd> + <dt><second></dt> + <dd>2桁の秒を表す数字, 例 "04" や "59"</dd> + <dt><code>GMT</code></dt> + <dd> + <p>グリニッジ標準時。 HTTP における時刻は常にグリニッジ標準時で表され、ローカル時刻になることはありません。</p> + </dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>If-Modified-Since: Wed, 21 Oct 2015 07:28:00 GMT +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7232", "If-Modified-Since", "3.3")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.If-Modified-Since")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("ETag")}}</li> + <li>{{HTTPHeader("If-Unmodified-since")}}</li> + <li>{{HTTPHeader("If-Match")}}</li> + <li>{{HTTPHeader("If-None-Match")}}</li> + <li>{{HTTPStatus("304")}}<code> Not Modified</code></li> +</ul> diff --git a/files/ja/web/http/headers/if-none-match/index.html b/files/ja/web/http/headers/if-none-match/index.html new file mode 100644 index 0000000000..26161ce00d --- /dev/null +++ b/files/ja/web/http/headers/if-none-match/index.html @@ -0,0 +1,98 @@ +--- +title: If-None-Match +slug: Web/HTTP/Headers/If-None-Match +tags: + - Conditional Requests + - HTTP + - HTTP Header + - Reference + - Request header +translation_of: Web/HTTP/Headers/If-None-Match +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の <strong><code>If-None-Match</code></strong> リクエストヘッダーは、リクエストを条件付きにします。 {{HTTPMethod("GET")}} および {{HTTPMethod("HEAD")}} メソッドの場合、指定されたものの中に要求されたリソースの {{HTTPHeader("ETag")}} に一致するものがない場合のみ、サーバーはリソースを {{HTTPStatus("200")}} ステータスで返します。その他のメソッドの場合、最終的に存在するリソースの {{HTTPHeader("ETag")}} が列挙されたいずれの値とも一致しない場合にのみ処理します。</p> + +<p>{{HTTPMethod("GET")}} および {{HTTPMethod("HEAD")}} メソッドの場合、条件が満たされなかったら、サーバーは HTTP ステータスコード 304 (Not Modified) を返さなければなりません。サーバー側の変更を適用するメソッドの場合、ステータスコード 412 (Precondition Failed) が使用されます。なお、 304 レスポンスを生成するサーバーは、 Cache-Control, Content-Location, Date, ETag, Expires, Vary の各ヘッダーフィールドについて、同じリクエストに対して 200 (OK) レスポンスで送信されるものを生成しなければなりません。</p> + +<p>格納されている {{HTTPHeader("ETag")}} との比較では、<em>弱い比較アルゴリズム</em>を使用、つまり二つのファイルの内容が同等であれば等しいとみなします。バイト単位で等しい必要はありません。たとえば、フッターの作成日が異なる二つのページは、同一と見なされます。</p> + +<p>{{HTTPHeader("If-Modified-Since")}} と一緒に使用した場合、 <strong><code>If-None-Match</code></strong> が優先されます (サーバーが対応している場合)。</p> + +<p>一般的な使用例は二つあります。</p> + +<ul> + <li>{{HTTPMethod("GET")}} および {{HTTPMethod("HEAD")}} メソッドの場合は、関連付けられた {{HTTPHeader("ETag")}} を持つキャッシュされたエンティティを更新するため。</li> + <li>他のメソッド、特に {{HTTPMethod("PUT")}} の場合、 <code>If-None-Match</code> は <code>*</code> 値と共に使用され、存在するかどうか分かっていないファイルを保存する際に、以前他のアップロードが行われておらず、以前 PUT されたデータを失わないことを保証するために使用することができます。この問題は、 <a href="https://www.w3.org/1999/04/Editing/#3.1">lost update problem</a> の一種です。</li> +</ul> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">If-None-Match: "<etag_value>" +If-None-Match: "<etag_value>", "<etag_value>", … +If-None-Match: *</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><etag_value></dt> + <dd>リクエストされたリソースを一意に表すエンティティタグです。二重引用符の間に置かれた ASCII 文字列 (<code>"675af34563dc-tr34"</code> など) であり、 <code>W/</code> の接頭辞を付けると、弱い比較アルゴリズムを使用するべきであることを示すことができます (このアルゴリズムだけを使用する場合は <code>If-None-Match</code> では意味がありません)。</dd> + <dt><code>*</code></dt> + <dd>アスタリスクは任意のリソースを表す特殊な値です。通常 {{HTTPMethod("PUT")}} を使用するリソースのアップロードの場合、その識別子を持つ別なリソースがすでにアップロードされていることをする場合にのみ有用です。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre class="notranslate">If-None-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d" + +If-None-Match: W/"67ab43", "54ed21", "7892dd" + +If-None-Match: * +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7232", "If-None-Match", "3.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.If-None-Match")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("ETag")}}</li> + <li>{{HTTPHeader("If-Unmodified-Since")}}</li> + <li>{{HTTPHeader("If-Modified-Since")}}</li> + <li>{{HTTPHeader("If-Match")}}</li> + <li>{{HTTPStatus("304")}}<code> Not Modified</code></li> + <li>{{HTTPStatus("412")}}<code> Precondition Failed</code></li> +</ul> diff --git a/files/ja/web/http/headers/if-range/index.html b/files/ja/web/http/headers/if-range/index.html new file mode 100644 index 0000000000..2c2d38adfc --- /dev/null +++ b/files/ja/web/http/headers/if-range/index.html @@ -0,0 +1,104 @@ +--- +title: If-Range +slug: Web/HTTP/Headers/If-Range +tags: + - HTTP + - HTTP ヘッダー + - リクエストヘッダー + - リファレンス + - レンジリクエスト + - 条件リクエスト +translation_of: Web/HTTP/Headers/If-Range +--- +<p>{{HTTPSidebar}}</p> + +<p><strong><code>If-Range</code></strong> HTTP リクエストヘッダはレンジリクエストを条件付きにします:条件が満たされれば、レンジリクエストが発行され、サーバは適切なボディを持つ {{HTTPStatus("206")}} <code>Partial Content</code> 回答を返します。条件が満たされていない場合、 {{HTTPStatus("200")}} の状態でリソース全体が返送されます。</p> + +<p>このヘッダは {{HTTPHeader("Last-Modified")}} バリデータ、または {{HTTPHeader("ETag")}} のいずれかで使用できますが、両方では使用できません。</p> + +<p>最も一般的な使用事例は、最後のフラグメントが受信されてから格納されたリソースが変更されていないことを保証するために、ダウンロードを再開することです。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダータイプ</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="構文">構文</h2> + +<pre class="syntaxbox notranslate">If-Range: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT +If-Range: <etag></pre> + +<h2 id="ディレクティブ">ディレクティブ</h2> + +<dl> + <dt><etag></dt> + <dd>リクエストされたリソースを表すエンティティータグです。これは <code>"675af34563dc-tr34"</code> のようにダブルクオートに囲まれたASCIIの文字列で、弱い比較アルゴリズムを使うことを示すために <code>W/</code> がプレフィックスとしてつくことがあります。</dd> +</dl> + +<dl> + <dt><day-name></dt> + <dd>One of "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", or "Sun" (case-sensitive).</dd> + <dt><day></dt> + <dd>2 digit day number, e.g. "04" or "23".</dd> + <dt><month></dt> + <dd>One of "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" (case sensitive).</dd> + <dt><year></dt> + <dd>4 digit year number, e.g. "1990" or "2016".</dd> + <dt><hour></dt> + <dd>2 digit hour number, e.g. "09" or "23".</dd> + <dt><minute></dt> + <dd>2 digit minute number, e.g. "04" or "59".</dd> + <dt><second></dt> + <dd>2 digit second number, e.g. "04" or "59".</dd> + <dt><code>GMT</code></dt> + <dd> + <p>Greenwich Mean Time. HTTP dates are always expressed in GMT, never in local time.</p> + </dd> +</dl> + +<h2 id="例">例</h2> + +<pre class="notranslate">If-Range: Wed, 21 Oct 2015 07:28:00 GMT +</pre> + +<h2 id="仕様">仕様</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様書</th> + <th scope="col">タイトル</th> + </tr> + <tr> + <td>{{RFC("7233", "If-Range", "3.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td> + </tr> + </tbody> +</table> + +<h2 id="ブラウザの互換性">ブラウザの互換性</h2> + +<p class="hidden">このページの互換表は構造化データから生成されます。データに貢献したい場合は <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックし、プルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.If-Range")}}</p> + +<h2 id="関連情報">関連情報</h2> + +<ul> + <li>{{HTTPHeader("ETag")}}</li> + <li>{{HTTPHeader("Last-Modified")}}</li> + <li>{{HTTPHeader("If-Modified-Since")}}</li> + <li>{{HTTPHeader("If-Unmodified-Since")}}</li> + <li>{{HTTPHeader("If-Match")}}</li> + <li>{{HTTPHeader("If-None-Match")}}</li> + <li>{{HTTPStatus("206")}}<code> Partial Content</code></li> + <li><a href="/en-US/docs/Web/HTTP/Conditional_requests">HTTP Conditional Requests</a></li> +</ul> diff --git a/files/ja/web/http/headers/if-unmodified-since/index.html b/files/ja/web/http/headers/if-unmodified-since/index.html new file mode 100644 index 0000000000..b774348530 --- /dev/null +++ b/files/ja/web/http/headers/if-unmodified-since/index.html @@ -0,0 +1,101 @@ +--- +title: If-Unmodified-Since +slug: Web/HTTP/Headers/If-Unmodified-Since +tags: + - HTTP + - HTTP ヘッダー + - Reference + - リクエストヘッダー + - リファレンス +translation_of: Web/HTTP/Headers/If-Unmodified-Since +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の <strong><code>If-Unmodified-Since</code></strong> リクエストヘッダーは、リクエストを条件付きにします。サーバーはリソースが指定された日時以降に変更されていない場合のみ、要求されたリソースを返信したり、 {{HTTPMethod("POST")}} などの{{Glossary("safe", "安全")}}ではないメソッドをの場合はそれを受け付けたりします。リソースが指定された日時以降に変更されていた場合は、レスポンスは{{HTTPStatus("412")}} (Precondition Failed) エラーになります。</p> + +<p>一般的な使用例は2つあります。</p> + +<ul> + <li>{{HTTPMethod("POST")}} のような{{Glossary("safe", "安全")}}ではないメソッドとの組み合わせで、一部のウィキで行われているような{{interwiki("wikipedia", "楽観的並行性制御")}}を実装するために利用することができます。この場合、元の文書を受け取った後で、保存されている文書が変更されていると、編集が拒否されます。</li> + <li>{{HTTPHeader("If-Range")}} ヘッダー付きの範囲付きリクエストとの組み合わせで、断片をリクエストする際に文書が変更されていないことを確認するために使用することができます。</li> +</ul> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">If-Unmodified-Since: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><day-name></dt> + <dd>"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" の中から一つ (大文字・小文字の区別あり)</dd> + <dt><day></dt> + <dd>2桁の日付を表す数字, 例 "04" や "23".</dd> + <dt><month></dt> + <dd>"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" の中から一つ (大文字・小文字の区別あり)</dd> + <dt><year></dt> + <dd>4桁の年を表す数字, 例 "1990" や "2016"</dd> + <dt><hour></dt> + <dd>2桁の時を表す数字, 例 "09" や "23"</dd> + <dt><minute></dt> + <dd>2桁の分を表す数字, 例 "04" や "59"</dd> + <dt><second></dt> + <dd>2桁の秒を表す数字, 例 "04" や "59"</dd> + <dt><code>GMT</code></dt> + <dd> + <p>グリニッジ標準時。 HTTP における時刻は常にグリニッジ標準時で表され、ローカル時刻になることはありません。</p> + </dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>If-Unmodified-Since: Wed, 21 Oct 2015 07:28:00 GMT +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7232", "If-Unmodified-Since", "3.4")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.If-Unmodified-Since")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Last-Modified")}}</li> + <li>{{HTTPHeader("If-Modified-Since")}}</li> + <li>{{HTTPHeader("If-Match")}}</li> + <li>{{HTTPHeader("If-None-Match")}}</li> + <li>{{HTTPHeader("If-Range")}}</li> + <li>{{HTTPStatus("412")}}<code> Precondition Failed</code></li> +</ul> diff --git a/files/ja/web/http/headers/index.html b/files/ja/web/http/headers/index.html new file mode 100644 index 0000000000..555e1d5e8b --- /dev/null +++ b/files/ja/web/http/headers/index.html @@ -0,0 +1,461 @@ +--- +title: HTTP ヘッダー +slug: Web/HTTP/Headers +tags: + - HTTP + - HTTP ヘッダー + - Networking + - Reference + - header + - ネットワーク + - ヘッダー + - リファレンス +translation_of: Web/HTTP/Headers +--- +<div>{{HTTPSidebar}}</div> + +<p><span class="seoSummary"><strong>HTTP ヘッダー</strong>により、クライアントやサーバーが HTTP リクエストやレスポンスで追加情報を渡すことができます。 HTTP ヘッダーは、大文字小文字を区別しないヘッダー名とそれに続くコロン (<code>:</code>)、 値で構成されます。</span>値の前にある{{Glossary("Whitespace", "ホワイトスペース")}}は無視されます。</p> + +<p>独自のヘッダーは、以前は <code>X-</code> 接頭辞を使用していましたが、この慣習は 2012 年 6 月に非推奨になりました。これは、 <a href="https://tools.ietf.org/html/rfc6648">RFC 6648</a> で非標準のフィールドが標準になったときに発生した不便さのためです。それ以外のヘッダーは <a class="external" href="http://www.iana.org/assignments/message-headers/perm-headers.html">IANA レジストリ</a> に収録されており、その基になったものは <a class="external" href="http://tools.ietf.org/html/rfc4229">RFC 4229</a> です。また IANA は <a class="external" href="http://www.iana.org/assignments/message-headers/prov-headers.html">新たに提案された HTTP ヘッダーのレジストリ</a> も管理しています。</p> + +<p>ヘッダーは、そのコンテキストに応じて分類できます。</p> + +<ul> + <li>{{Glossary("General header", "一般ヘッダー")}}: リクエストとレスポンスの両方に適用されますが、本文で転送されるデータとは関係ないものです。</li> + <li>{{Glossary("Request header", "リクエストヘッダー")}}: 読み込むリソースやリソースをリクエストしているクライアントに関する詳細な情報を持ちます。</li> + <li>{{Glossary("Response header", "レスポンスヘッダー")}}: レスポンスに関する追加情報、例えば場所や提供しているサーバーに関するものを保持します。</li> + <li>{{Glossary("Entity header", "エンティティヘッダー")}}: リソースの本体に関する情報、例えば<a href="/ja/docs/Web/HTTP/Headers/Content-Length">コンテンツの長さ</a>や <a href="/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME タイプ</a>などを持ちます。</li> +</ul> + +<p>またヘッダーは、{{Glossary("Proxy_server", "プロキシサーバー")}}がどのように処理するかに応じてグループ化されます。</p> + +<ul> + <li>{{ httpheader("Connection") }}</li> + <li>{{ httpheader("Keep-Alive") }}</li> + <li>{{ httpheader("Proxy-Authenticate") }}</li> + <li>{{ httpheader("Proxy-Authorization") }}</li> + <li>{{ httpheader("TE") }}</li> + <li>{{ httpheader("Trailer") }}</li> + <li>{{ httpheader("Transfer-Encoding") }}</li> + <li>{{ httpheader("Upgrade") }}.</li> +</ul> + +<dl> + <dt id="e2e">エンドツーエンドヘッダー</dt> + <dd>これらのヘッダーは、メッセージの最終的な宛先、すなわちリクエストならばサーバー、レスポンスならばクライアントに伝送し<em>なければなりません</em>。中間のプロキシはヘッダーを変更せずに再伝送しなければならず、またキャッシュには保存しなければなりません。</dd> + <dt id="hbh">ホップバイホップヘッダー</dt> + <dd>これらのヘッダーは単一のトランスポート層の接続にのみ意味を持ち、プロキシが再転送したり、キャッシュを行ったりしては<em>いけません</em>。なお、 {{httpheader("Connection")}} 一般ヘッダーを用いて設定する場合があるのはホップバイホップヘッダーのみです。</dd> +</dl> + +<h2 id="Authentication" name="Authentication">認証</h2> + +<dl> + <dt>{{HTTPHeader("WWW-Authenticate")}}</dt> + <dd>リソースへアクセスに使用すべき認証方法を定義します。</dd> + <dt>{{HTTPHeader("Authorization")}}</dt> + <dd>サーバーでユーザーエージェントを認証するための資格情報を持ちます。</dd> + <dt>{{HTTPHeader("Proxy-Authenticate")}}</dt> + <dd>プロキシサーバーの背後にあるリソースへアクセスできるようにするために使用すべき認証方法を定義します。</dd> + <dt>{{HTTPHeader("Proxy-Authorization")}}</dt> + <dd>プロキシサーバーでユーザーエージェントを認証するための資格情報を持ちます。</dd> +</dl> + +<h2 id="Caching" name="Caching">キャッシュ</h2> + +<dl> + <dt>{{HTTPHeader("Age")}}</dt> + <dd>オブジェクトがプロキシのキャッシュに存在する時間を秒数で表します。</dd> + <dt>{{HTTPHeader("Cache-Control")}}</dt> + <dd>リクエストおよびレスポンスで、キャッシュ機能に関するディレクティブです。</dd> + <dt>{{HTTPHeader("Clear-Site-Data")}}</dt> + <dd>リクエストしているウェブサイトに関連付けられたブラウズ用のデータ (クッキー、ストレージ、キャッシュ等) を消去します。</dd> + <dt>{{HTTPHeader("Expires")}}</dt> + <dd>レスポンスが陳腐化すると考えられる日時を表します。</dd> + <dt>{{HTTPHeader("Pragma")}}</dt> + <dd>リクエストからレスポンスへの流れの中でさまざまな影響がある、実装依存のヘッダーです。 <code>Cache-Control</code> ヘッダーが未実装である HTTP/1.0 キャッシュとの後方互換性のために使用します。</dd> + <dt>{{HTTPHeader("Warning")}}</dt> + <dd>起こりうる問題に関する一般警告情報です。</dd> +</dl> + +<h2 id="Client_hints" name="Client_hints">クライアントヒント</h2> + +<p>HTTP {{Glossary("Client_hints", "クライアントヒント")}}は策定中です。実際の文書は <a href="https://httpwg.org/http-extensions/client-hints.html">HTTP 作業グループのウェブサイト</a>にあります。</p> + +<dl> + <dt>{{HTTPHeader("Accept-CH")}} {{experimental_inline}}</dt> + <dd>サーバーはクライアントヒントに対応していることを、 <code>Accept-CH</code> ヘッダーフィールドまたは同等の <code>http-equiv</code> 属性が付いた HTML の <code><meta></code> 要素を使用して広報することができます (<a href="https://httpwg.org/http-extensions/client-hints.html#HTML5"><cite>[HTML5]</cite></a>)。</dd> + <dt>{{HTTPHeader("Accept-CH-Lifetime")}} {{experimental_inline}}</dt> + <dd>サーバーは、指定された期間サーバーがサポートする対応する一連のクライアントヒントを記憶するようクライアントに依頼し、そのサーバーのオリジンに対するその後のリクエストでクライアントヒントを配信できるようにすることができます (<a href="https://httpwg.org/http-extensions/client-hints.html#RFC6454"><cite>[RFC6454]</cite></a>)。</dd> + <dt>{{HTTPHeader("Early-Data")}} {{experimental_inline}}</dt> + <dd>リクエストが早期データを伝えていることを示します。</dd> + <dt>{{HTTPHeader("Content-DPR")}} {{experimental_inline}}</dt> + <dd>数値で、選択された画像レスポンスの CSS ピクセルに対する物理ピクセルの比を示します。</dd> + <dt>{{HTTPHeader("DPR")}} {{experimental_inline}}</dt> + <dd>数値で、現在のクライアントの端末ピクセル比 (DPR)、すなわち端末のレイアウトビューポート (<a href="https://httpwg.org/http-extensions/client-hints.html#CSS2"><cite>[CSS2]</cite></a> のセクション9.1.1) における、 CSS ピクセルに対する物理ピクセルの比 (<a href="https://httpwg.org/http-extensions/client-hints.html#CSSVAL"><cite>[CSSVAL]</cite></a> のセクション5.2) を示します。</dd> + <dt>{{HTTPHeader("Device-Memory")}} {{experimental_inline}}</dt> + <dd>技術的には Device Memory API の一部で、このヘッダーはクライアントが持つおよその RAM の量を表します。</dd> + <dt>{{HTTPHeader("Save-Data")}} {{experimental_inline}}</dt> + <dd>論理型で、ユーザーエージェントのデータ利用の削減についての設定を示します。</dd> + <dt>{{HTTPHeader("Viewport-Width")}} {{experimental_inline}}</dt> + <dd> + <div id="rfc.section.3.3.p.1"> + <p><code>Viewport-Width</code> リクエストヘッダーフィールドは数値で、レイアウトビューポートの幅を CSS ピクセル数で示します。指定されたピクセル数は、それ以上の最小の整数に丸められます (つまり切り上げ)。</p> + </div> + + <div id="rfc.section.3.3.p.2"> + <p><code>Viewport-Width</code> がメッセージ内に二回以上現れた場合、最後の値がそれ以前のすべての値を上書きします。</p> + </div> + </dd> + <dt>{{HTTPHeader("Width")}} {{experimental_inline}}</dt> + <dd> + <div id="rfc.section.3.2.p.1"> + <p><code>Width</code> リクエストヘッダーフィールドは数値で、要求するリソースの幅 (つまり画像の固有の寸法) を物理ピクセル数で示します。指定されたピクセル数は、それ以上の最小の整数に丸められます (つまり切り上げ)。</p> + </div> + + <div id="rfc.section.3.2.p.2"> + <p>要求するリソースの幅がリクエストの時点で不明である場合や、リソースが表示幅を持たない場合は、 <code>Width</code> ヘッダーフィールドは省略できます。 <code>Width</code> がメッセージ内に二回以上現れた場合、最後の値がそれ以前のすべての値を上書きします。</p> + </div> + </dd> +</dl> + +<h2 id="Conditionals" name="Conditionals">条件付き</h2> + +<dl> + <dt>{{HTTPHeader("Last-Modified")}}</dt> + <dd>リソースが最後に変更された日時であり、同じリソースの複数のバージョンを比較するために使用されます。 {{HTTPHeader("ETag")}} より正確さは低いのですが、環境によっては計算が容易です。{{HTTPHeader("If-Modified-Since")}} や {{HTTPHeader("If-Unmodified-Since")}} を使用する条件付きリクエストでは、リクエストの動作を変更するためにこの値を使用します。</dd> + <dt>{{HTTPHeader("ETag")}}</dt> + <dd>一意な文字列であり、リソースのバージョンを識別します。 {{HTTPHeader("If-Match")}} や {{HTTPHeader("If-None-Match")}} を使用する条件付きリクエストでは、リクエストの動作を変更するためにこの値を使用します。</dd> + <dt>{{HTTPHeader("If-Match")}}</dt> + <dd>リクエストを条件付きにして、保存されたリソースが指定した ETag のいずれかに一致する場合に限りメソッドを適用します。</dd> + <dt>{{HTTPHeader("If-None-Match")}}</dt> + <dd>リクエストを条件付きにして、保存されたリソースが指定した ETag のいずれかに一致<em>しない</em>場合に限りメソッドを適用します。これはキャッシュを更新する (安全なリクエスト向け)、あるいはすでにリソースが存在する場合に新しいリソースのアップロードを止めるために使用します。</dd> + <dt>{{HTTPHeader("If-Modified-Since")}}</dt> + <dd>リクエストを条件付きにして、エンティティが指定した日時より後に変更されている場合に限り転送するようリクエストします。キャッシュが期限切れである場合に限りデータを転送するために使用します。</dd> + <dt>{{HTTPHeader("If-Unmodified-Since")}}</dt> + <dd>リクエストを条件付きにして、エンティティが指定した日時より後に変更されていない場合に限り転送するようリクエストします。これは、特定の範囲の新しい断片と古い断片の一貫性を保証する、あるいは既存の文書を変更するときに楽観的な並行性制御システムを実装するために使用します。</dd> + <dt>{{HTTPHeader("Vary")}}</dt> + <dd>新しいものを元のサーバーにリクエストするのではなく、キャッシュされたレスポンスが使用できるよう決定するために、リクエストヘッダーを一致させる方法を定めます。/dd></dd> +</dl> + +<h2 id="Connection_management" name="Connection_management">接続制御</h2> + +<dl> + <dt>{{HTTPHeader("Connection")}}</dt> + <dd>現在の転送が完了した後も、ネットワークコネクションを維持するかを制御します。</dd> + <dt>{{HTTPHeader("Keep-Alive")}}</dt> + <dd>持続的なコネクションをどれだけの期間維持するかを制御します。</dd> +</dl> + +<h2 id="Content_negotiation" name="Content_negotiation"><a href="/ja/docs/Web/HTTP/Content_negotiation">コンテンツネゴシエーション</a></h2> + +<dl> + <dt>{{HTTPHeader("Accept")}}</dt> + <dd>送り返すことができるデータの{{Glossary("MIME_type", "種類")}}をサーバーに通知します。</dd> + <dt>{{HTTPHeader("Accept-Charset")}}</dt> + <dd>どの{{Glossary("character encodings", "文字集合")}}をクライアントが理解できるかです。</dd> + <dt>{{HTTPHeader("Accept-Encoding")}}</dt> + <dd>送り返すリソースで使用できるエンコードアルゴリズム (一般的には<a href="/ja/docs/Web/HTTP/Compression">圧縮アルゴリズム</a>) をサーバーに通知します。</dd> + <dt>{{HTTPHeader("Accept-Language")}}</dt> + <dd>送り返すリソースで期待する自然言語をサーバーに通知します。これはヒントであり、必ずしもユーザーの完全な制御下にあるものではありません。サーバーはユーザーの選択 (ドロップダウンリストで選ぶ言語など) を明示的に上書きしないように、常に注意を払うべきです。</dd> +</dl> + +<h2 id="Controls" name="Controls">制御</h2> + +<dl> + <dt>{{HTTPHeader("Expect")}}</dt> + <dd>リクエストを適切に扱うためにサーバーが実行しなければならないと期待されていることを示します。</dd> + <dt>{{HTTPHeader("Max-Forwards")}}</dt> +</dl> + +<h2 id="Cookies" name="Cookies">クッキー</h2> + +<dl> + <dt>{{HTTPHeader("Cookie")}}</dt> + <dd>過去に {{HTTPHeader("Set-Cookie")}} ヘッダーでサーバーから送信されて保存している <a href="/ja/docs/Web/HTTP/Cookies">HTTP クッキー</a>を持ちます。</dd> + <dt>{{HTTPHeader("Set-Cookie")}}</dt> + <dd>サーバーからユーザーエージェントにクッキーを送信します。</dd> + <dt>{{HTTPHeader("Cookie2")}} {{obsolete_inline}}</dt> + <dd>過去に {{HTTPHeader("Set-Cookie2")}} ヘッダーでサーバーから送信された HTTP クッキーを伝えるために使われていましたが、仕様書から廃止されました。代わりに {{HTTPHeader("Cookie")}} を使用してください。</dd> + <dt>{{HTTPHeader("Set-Cookie2")}} {{obsolete_inline}}</dt> + <dd>サーバーからユーザーエージェントに Cookie を送信するために使用されていましたが、仕様書から廃止されました。代わりに {{HTTPHeader("Set-Cookie")}} を使用してください。</dd> +</dl> + +<h2 id="CORS" name="CORS">オリジン間リソース共有 (CORS)</h2> + +<p><em>CORS についての詳細は、<a href="CORS">こちら</a>を参照してください。</em></p> + +<dl> + <dt>{{HTTPHeader("Access-Control-Allow-Origin")}}</dt> + <dd>レスポンスが共有可能かを示します。</dd> + <dt>{{HTTPHeader("Access-Control-Allow-Credentials")}}</dt> + <dd>credentials フラグが真であるときに、リクエストへのレスポンスを開示してよいかを示します。</dd> + <dt>{{HTTPHeader("Access-Control-Allow-Headers")}}</dt> + <dd>{{Glossary("Preflight_request", "プリフライトリクエスト")}}へのレスポンスで使用し、実際のリクエストを行うときに使用できる HTTP ヘッダーを指定します。</dd> + <dt>{{HTTPHeader("Access-Control-Allow-Methods")}}</dt> + <dd>プリフライトリクエストへのレスポンスで、リソースへアクセスするときに使用できるメソッドを指定します。</dd> + <dt>{{HTTPHeader("Access-Control-Expose-Headers")}}</dt> + <dd>ヘッダー名を羅列して、レスポンスの一部として開示できるヘッダーを示します。</dd> + <dt>{{HTTPHeader("Access-Control-Max-Age")}}</dt> + <dd>プリフライトリクエストの結果をキャッシュしてよい期間を示します。</dd> + <dt>{{HTTPHeader("Access-Control-Request-Headers")}}</dt> + <dd>実際のリクエストを行う際に使用する HTTP ヘッダーをサーバーがわかるようにするため、プリフライトリクエストを発信する際に使用します。</dd> + <dt>{{HTTPHeader("Access-Control-Request-Method")}}</dt> + <dd>実際のリクエストを行う際に使用する <a href="/ja/docs/Web/HTTP/Methods">HTTP メソッド</a> をサーバーがわかるようにするため、プリフライトリクエストを発信する際に使用します。</dd> + <dt>{{HTTPHeader("Origin")}}</dt> + <dd>どこから読み込みが発生したかを示します。</dd> + <dt>{{HTTPHeader("Timing-Allow-Origin")}}</dt> + <dd><a href="/ja/docs/Web/API/Resource_Timing_API">Resource Timing API</a> の機能を通じて受け取った属性の値を見ることができるオリジンを指定します。そうでなければオリジン間の制約によってゼロとして報告されます。</dd> +</dl> + +<h2 id="Do_Not_Track" name="Do_Not_Track">Do Not Track</h2> + +<dl> + <dt>{{HTTPHeader("DNT")}}</dt> + <dd>ユーザーのトラッキング設定を示します。</dd> + <dt>{{HTTPHeader("Tk")}}</dt> + <dd>対応するレスポンスのトラッキング状態を示します。</dd> +</dl> + +<h2 id="Downloads" name="Downloads">ダウンロード</h2> + +<dl> + <dt>{{HTTPHeader("Content-Disposition")}}</dt> + <dd>転送したリソースをインラインで表示すべきか (ヘッダーが存在しない場合の既定の動作)、またはダウンロードとして扱い、「名前を付けて保存」ウィンドウを表示すべきかを示します。</dd> +</dl> + +<h2 id="Message_body_information" name="Message_body_information">メッセージ本文の情報</h2> + +<dl> + <dt>{{HTTPHeader("Content-Length")}}</dt> + <dd>リソースの大きさを、バイト単位の10進数で示します。</dd> + <dt>{{HTTPHeader("Content-Type")}}</dt> + <dd>リソースのメディアタイプを示します。</dd> + <dt>{{HTTPHeader("Content-Encoding")}}</dt> + <dd>圧縮アルゴリズムを指定するために使用します。</dd> + <dt>{{HTTPHeader("Content-Language")}}</dt> + <dd>読者向けに言語を示すヘッダーであり、ユーザーが自身の好む言語に応じて区別することができます。</dd> + <dt>{{HTTPHeader("Content-Location")}}</dt> + <dd>返すデータの代替データの場所を示します。</dd> +</dl> + +<h2 id="Proxies" name="Proxies">プロキシ</h2> + +<dl> + <dt>{{HTTPHeader("Forwarded")}}</dt> + <dd>リクエストのパスにプロキシが関与したときに変更または遺失した、プロキシサーバーのクライアント側の情報を持ちます。</dd> + <dt>{{HTTPHeader("X-Forwarded-For")}} {{non-standard_inline}}</dt> + <dd>HTTP プロキシやロードバランサーを経由してウェブサーバーに接続するクライアントの、接続元 IP アドレスを識別します。</dd> + <dt>{{HTTPHeader("X-Forwarded-Host")}} {{non-standard_inline}}</dt> + <dd>プロキシやロードバランサーに接続するクライアントがリクエストした、オリジナルのホストを示します。</dd> + <dt>{{HTTPHeader("X-Forwarded-Proto")}} {{non-standard_inline}}</dt> + <dd>クライアントがプロキシやロードバランサーに接続するために使用したプロトコル (HTTP または HTTPS) を識別します。</dd> + <dt>{{HTTPHeader("Via")}}</dt> + <dd>フォワードプロキシとリバースプロキシの両方が追加するヘッダーであり、リクエストヘッダーとレスポンスヘッダーのどちらでも見られます。</dd> +</dl> + +<h2 id="Redirects" name="Redirects">リダイレクト</h2> + +<dl> + <dt>{{HTTPHeader("Location")}}</dt> + <dd>ページのリダイレクト先の URL を示します。</dd> +</dl> + +<h2 id="Request_context" name="Request_context">リクエストコンテキスト</h2> + +<dl> + <dt>{{HTTPHeader("From")}}</dt> + <dd>リクエストを行うユーザーエージェントを操作している人間の、インターネット電子メールアドレスを持ちます。</dd> + <dt>{{HTTPHeader("Host")}}</dt> + <dd>サーバーのドメイン名 (バーチャルホスト向け) およびサーバーが待ち受けている TCP ポート番号 (省略可能) を指定します。</dd> + <dt>{{HTTPHeader("Referer")}}</dt> + <dd>現在リクエストしているページへリンクしていた、前のウェブページのアドレスです。</dd> + <dt>{{HTTPHeader("Referrer-Policy")}}</dt> + <dd>{{HTTPHeader("Referer")}} ヘッダーで送信するどのリファラー情報をリクエストに含めるかを制御します。</dd> + <dt>{{HTTPHeader("User-Agent")}}</dt> + <dd>リクエストを行うユーザーエージェントソフトウェアのアプリケーションタイプ、オペレーティングシステム、ベンダー、バージョンを、ネットワークプロトコルのピアが識別できるようにする文字列を持ちます。 <a href="/ja/docs/Web/HTTP/Headers/User-Agent/Firefox">Firefox ユーザーエージェント文字列リファレンス</a>もご覧ください。</dd> +</dl> + +<h2 id="Response_context" name="Response_context">レスポンスコンテキスト</h2> + +<dl> + <dt>{{HTTPHeader("Allow")}}</dt> + <dd>リソースがサポートする HTTP リクエストメソッドを示します。</dd> + <dt>{{HTTPHeader("Server")}}</dt> + <dd>リクエストを扱うサーバーが使用するソフトウェアの情報を持ちます。</dd> +</dl> + +<h2 id="Range_requests" name="Range_requests">範囲付きリクエスト</h2> + +<dl> + <dt>{{HTTPHeader("Accept-Ranges")}}</dt> + <dd>サーバーが範囲付きリクエストに対応するかどうか、対応していれば対応する場合は、範囲を表すことができる単位を示します。</dd> + <dt>{{HTTPHeader("Range")}}</dt> + <dd>サーバーが返すべきである文書の範囲を示します。</dd> + <dt>{{HTTPHeader("If-Range")}}</dt> + <dd>指定した ETag または日時がリモートのリソースにマッチする場合に限定した、条件付き range request を生成します。異なるバージョンのリソースから 2 つの範囲をダウンロードすることを防ぎます。</dd> + <dt>{{HTTPHeader("Content-Range")}}</dt> + <dd>部分的なメッセージが、メッセージ本文全体のどこに位置するかを示します。</dd> +</dl> + +<h2 id="Security" name="Security">セキュリティ</h2> + +<dl> + <dt>{{HTTPHeader("Cross-Origin-Embedder-Policy")}} ({{Glossary("COEP")}})</dt> + <dd>サーバーが指定された文書の埋め込み方針を宣言するために使います。</dd> +</dl> + +<dl> + <dt>{{HTTPHeader("Cross-Origin-Opener-Policy")}} ({{Glossary("COOP")}})</dt> + <dd>他のドメインがウィンドウを開いたり制御したりすることを防ぎます。</dd> +</dl> + +<dl> + <dt>{{HTTPHeader("Cross-Origin-Resource-Policy")}} ({{Glossary("CORP")}})</dt> + <dd>このヘッダーが適用されたリソースのレスポンスが他のドメインから読み取られるのを防ぎます。</dd> + <dt>{{HTTPHeader("Content-Security-Policy")}} ({{Glossary("CSP")}})</dt> + <dd>ユーザーエージェントがページで読み込むことを許可するリソースを制御します。</dd> + <dt>{{HTTPHeader("Content-Security-Policy-Report-Only")}}</dt> + <dd>ウェブの開発者がポリシーの効果を適用せずに監視することで、実験を行うことができます。これらの違反レポートは、 HTTP <code>POST</code> リクエストによって指定した URI へ送信される {{Glossary("JSON")}} 文書で構成されます。</dd> + <dt>{{HTTPHeader("Expect-CT")}}</dt> + <dd>サイトが証明書の透明性要件の報告や実施を選択できるようにします。これにより、そのサイトで不正な証明書の使用に気づかないことを防ぎます。サイトが Expect-CT ヘッダーを有効にした場合、そのサイトの証明書が公開CTログに表示されることを Chrome が確認するようにリクエストしています。</dd> + <dt>{{HTTPHeader("Feature-Policy")}}</dt> + <dd>自身のフレームまたはその中の iframe で、ブラウザーの機能を使用することを許可または拒否する仕組みを提供します。</dd> + <dt>{{HTTPHeader("Strict-Transport-Security")}} ({{Glossary("HSTS")}})</dt> + <dd>HTTP の代わりに HTTPS による通信を強制します。</dd> + <dt>{{HTTPHeader("Upgrade-Insecure-Requests")}}</dt> + <dd>暗号化や認証されたレスポンスについて、クライアントの設定を表す信号をサーバーに送信して、{{CSP("upgrade-insecure-requests")}} ディレクティブを正しく扱うことができます。</dd> + <dt>{{HTTPHeader("X-Content-Type-Options")}}</dt> + <dd>ブラウザーで MIME スニッフィングを無効化して、{{HTTPHeader("Content-Type")}} で指定したタイプを強制的に使用させます。</dd> + <dt>{{HTTPHeader("X-Download-Options")}}</dt> + <dd>HTTP の <code><a href="https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/compatibility/jj542450(v=vs.85)?#the-noopen-directive">X-Download-Options</a></code> ヘッダーは、ブラウザー (Internet Explorer) がアプリケーションからのダウンロードでファイルを「開く」の選択肢を表示しないようにし、アプリケーションのコンテキストで実行するアクセス権を得ることがないようにして、ファイルとすることでフィッシング詐欺を防止します。 (メモ: <a href="https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18488178/">MS Edge bug</a> に関連)</dd> + <dt>{{HTTPHeader("X-Frame-Options")}} (XFO)</dt> + <dd>ブラウザーがページを {{HTMLElement("frame")}}, {{HTMLElement("iframe")}}, {{HTMLElement("embed")}}, {{HTMLElement("object")}} の内部に表示することを許可するかを示します。</dd> + <dt>{{HTTPHeader("X-Permitted-Cross-Domain-Policies")}}</dt> + <dd>クロスドメインポリシーファイル (<code>crossdomain.xml</code>) を許可するかどうかを指定します。このファイルは、 Adobe の Flash Player、Adobe Acrobat、Microsoft Silverlight、Apache Flex などのクライアントに、<a href="/ja/docs/Web/Security/Same-origin_policy">同一ドメインポリシー</a>によって制限されているドメイン間のデータを処理する許可を与えるポリシーを定義することができます。詳細については、 <a href="https://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html">Cross-domain Policy File Specification</a> を参照してください。</dd> + <dt>{{HTTPHeader("X-Powered-By")}}</dt> + <dd>ホスティング環境やその他のフレームワークによって設定される可能性があり、アプリケーションや訪問者に有益ではない情報を含みます。潜在的な脆弱性が発現することを防ぐために、このヘッダーは設定しないでください。</dd> + <dt>{{HTTPHeader("X-XSS-Protection")}}</dt> + <dd>クロスサイトスクリプティングのフィルタリングを有効化します。</dd> +</dl> + +<h3 id="HTTP_Public_Key_Pinning_GlossaryHPKP">HTTP Public Key Pinning ({{Glossary("HPKP")}})</h3> + +<p>HTTP Public Key Pinning は非推奨となり、削除されて Certificate Transparency と {{HTTPHeader("Expect-CT")}} に置き換えられました。</p> + +<dl> + <dt>{{HTTPHeader("Public-Key-Pins")}}</dt> + <dd>偽造した証明書による {{Glossary("MITM")}} 攻撃の危険性を軽減するため、特定の暗号公開鍵とウェブサーバーを関連付けます。</dd> + <dt>{{HTTPHeader("Public-Key-Pins-Report-Only")}}</dt> + <dd>ピンニングに違反する場合でも、ヘッダーで指定した report-uri にレポートを送信して、クライアントからサーバーへの接続は許可します。</dd> +</dl> + +<h3 id="Fetch_metadata_request_headers" name="Fetch_metadata_request_headers">メタデータ読み取りリクエストヘッダー</h3> + +<dl> + <dt>{{HTTPHeader("Sec-Fetch-Site")}}</dt> + <dd>リクエスト開始元のオリジンと宛先のオリジンとの関係を示すリクエストヘッダーです。これは構造化ヘッダーで、値はトークンであり、取りうる値は <code>cross-site</code>, <code>same-origin</code>, <code>same-site</code>, <code>none</code> です。</dd> + <dt>{{HTTPHeader("Sec-Fetch-Mode")}}</dt> + <dd>サーバーへのリクエストモードを示すリクエストヘッダーです。これは構造化ヘッダーで、値はトークンであり、取りうる値は <code>cors</code>, <code>navigate</code>, <code>nested-navigate</code>, <code>no-cors</code>, <code>same-origin</code>, <code>websocket</code> です。</dd> + <dt>{{HTTPHeader("Sec-Fetch-User")}}</dt> + <dd>ナビゲーションリクエストがユーザー操作によって起動されたかどうかを示すリクエストヘッダーです。これは構造化ヘッダーであり、論理値で、取りうる値は <code>?0</code> ならば偽、 <code>?1</code> ならば真です。</dd> + <dt>{{HTTPHeader("Sec-Fetch-Dest")}}</dt> + <dd>リクエストの宛先を示すリクエストヘッダーです。これは構造化ヘッダーで、値はトークンであり、取りうる値は <code>audio</code>, <code>audioworklet</code>, <code>document</code>, <code>embed</code>, <code>empty</code>, <code>font</code>, <code>image</code>, <code>manifest</code>, <code>object</code>, <code>paintworklet</code>, <code>report</code>, <code>script</code>, <code>serviceworker</code>, <code>sharedworker</code>, <code>style</code>, <code>track</code>, <code>video</code>, <code>worker</code>, <code>xslt</code>, <code>nested-document</code> です。</dd> +</dl> + +<h2 id="Server-sent_events" name="Server-sent_events">Server-sent event</h2> + +<dl> + <dt>{{HTTPHeader("Last-Event-ID")}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("NEL")}} {{experimental_inline}}</dt> + <dd>開発者がネットワークエラー報告ポリシーを宣言できるようにする仕組みを定義します。</dd> + <dt>{{HTTPHeader("Ping-From")}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("Ping-To")}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("Report-To")}}</dt> + <dd>警告やエラーを送信るためのブラウザーに対するサーバーのエンドポイントを指定するために使用します。</dd> +</dl> + +<h2 id="Transfer_coding" name="Transfer_coding">転送エンコーディング</h2> + +<dl> + <dt>{{HTTPHeader("Transfer-Encoding")}}</dt> + <dd>エンティティをユーザーへ問題なく転送できるエンコード形式を指定します。</dd> + <dt>{{HTTPHeader("TE")}}</dt> + <dd>ユーザーエージェントが進んで受け入れる転送エンコーディングを指定します。</dd> + <dt>{{HTTPHeader("Trailer")}}</dt> + <dd>送信者が chunk メッセージの終端に追加フィールドを含めることができます。</dd> +</dl> + +<h2 id="WebSockets" name="WebSockets">WebSocket</h2> + +<dl> + <dt>{{HTTPHeader("Sec-WebSocket-Key")}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("Sec-WebSocket-Extensions")}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("Sec-WebSocket-Accept")}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("Sec-WebSocket-Protocol")}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("Sec-WebSocket-Version")}}</dt> + <dd>...</dd> +</dl> + +<h2 id="Other" name="Other">その他</h2> + +<dl> + <dt>{{HTTPHeader("Accept-Push-Policy")}} {{experimental_inline}}</dt> + <dd>クライアントはリクエストに対して求めるプッシュポリシーを、リクエスト内で <code><a href="https://tools.ietf.org/html/draft-ruellan-http-accept-push-policy-00#section-3.1">Accept-Push-Policy</a></code> ヘッダーフィールドを送信することで表現することができます。</dd> + <dt>{{HTTPHeader("Accept-Signature")}} {{experimental_inline}}</dt> + <dd>クライアントは <code><a href="https://wicg.github.io/webpackage/draft-yasskin-http-origin-signed-responses.html#rfc.section.3.7">Accept-Signature</a></code> ヘッダーフィールドを送信して、利用可能な署名を利用する意図を示したり、対応している署名の種類を示したりすることができます。</dd> + <dt>{{HTTPHeader("Alt-Svc")}}</dt> + <dd>このサービスにたどり着く他の方法のリストに使用します。</dd> + <dt>{{HTTPHeader("Date")}}</dt> + <dd>メッセージを生成した日時です。</dd> + <dt>{{HTTPHeader("Large-Allocation")}}</dt> + <dd>読み込み中のページは大量の割り当てが必要であることをブラウザーに伝えます。</dd> + <dt>{{HTTPHeader("Link")}}</dt> + <dd><code><a href="https://tools.ietf.org/html/rfc5988#section-5">Link</a></code> エンティティヘッダーフィールドは、 HTTP ヘッダー内の1つ以上のリンクを記述する方法を提供します。意味的には HTML の {{HTMLElement("link")}} 要素と等価です。</dd> + <dt>{{HTTPHeader("Push-Policy")}} {{experimental_inline}}</dt> + <dd><code><a href="https://tools.ietf.org/html/draft-ruellan-http-accept-push-policy-00#section-3.2">Push-Policy</a></code> はリクエストを処理するときのプッシュ通知に関するサーバーの動作を定義します。</dd> + <dt>{{HTTPHeader("Retry-After")}}</dt> + <dd>後続のリクエストを行う前に、ユーザーエージェントがどれだけの期間待つべきかを示します。</dd> + <dt>{{HTTPHeader("Signature")}} {{experimental_inline}}</dt> + <dd><code><a href="https://wicg.github.io/webpackage/draft-yasskin-http-origin-signed-responses.html#rfc.section.3.1">Signature</a></code> ヘッダーフィールドは、交換のための署名のリストを伝え、それぞれはその署名の権威を決定して、そして更新する方法についての情報を伴います。</dd> + <dt>{{HTTPHeader("Signed-Headers")}} {{experimental_inline}}</dt> + <dd><code><a href="https://wicg.github.io/webpackage/draft-yasskin-http-origin-signed-responses.html#rfc.section.5.1.2">Signed-Headers</a></code> ヘッダーフィールドは、シグネチャに含めるためのレスポンスヘッダーフィールドの順序付きリストを識別します。</dd> + <dt>{{HTTPHeader("Server-Timing")}}</dt> + <dd>指定されたリクエストとレスポンスのサイクルについて、1つ以上のメトリクス又は説明を通信します。</dd> + <dt>{{HTTPHeader("Service-Worker-Allowed")}}</dt> + <dd><a href="https://w3c.github.io/ServiceWorker/#service-worker-script-response">サービスワーカースクリプトのレスポンス</a>にこのヘッダを含めることで、<a href="https://w3c.github.io/ServiceWorker/#path-restriction">パス制限</a>を解除するために使用します。</dd> + <dt>{{HTTPHeader("SourceMap")}}</dt> + <dd>生成されたコードと <a href="/ja/docs/Tools/Debugger/How_to/Use_a_source_map">ソースマップ</a> を関連付けます。</dd> + <dt>{{HTTPHeader("Upgrade")}}</dt> + <dd>Upgrade ヘッダーフィールドに関連する RFC 文書は <a href="https://tools.ietf.org/html/rfc7230#section-6.7">RFC 7230, section 6.7</a> です。標準仕様では、現在のクライアント、サーバー、トランスポート層プロトコル接続で別のプロトコルへ更新または変更するための規則を定めています。例えば、このヘッダー標準ではサーバーが Upgrade ヘッダーフィールドを認めて実装すると決める前提で、クライアントが HTTP 1.1 から HTTP 2.0 へ変更することを可能にします。どちらの相手も、 Upgrade ヘッダーフィールドで指定された要件を受け入れる必要はありません。これはクライアントのヘッダーでもサーバーのヘッダーでも使用できます。Upgrade ヘッダーフィールドを指定した場合は、更新オプションを指ヘッダーonnection ヘッダーフィールドも送信者が送信しなければなりません。Connection ヘッダーフィールドについて、詳しくは <a href="https://tools.ietf.org/html/rfc7230#section-6.1">前述の RFC のセクション 6.1</a> をご覧ください。</dd> + <dt>{{HTTPHeader("X-DNS-Prefetch-Control")}}</dt> + <dd>ユーザーがたどるであろうリンクや、ドキュメントが参照する画像、 CSS、 JavaScript などのリソースのドメイン名解決をブラウザーが事前に行う機能である、 DNS プリフェッチを制御します。</dd> + <dt>{{HTTPHeader("X-Firefox-Spdy")}} {{deprecated_inline}} {{non-standard_inline}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("X-Pingback")}} {{non-standard_inline}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("X-Requested-With")}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("X-Robots-Tag")}}{{non-standard_inline}}</dt> + <dd><code><a href="https://developers.google.com/search/reference/robots_meta_tag#xrobotstag">X-Robots-Tag</a></code> ヘッダーは、一般の検索エンジンの結果でウェブページをどのように索引付けをするかを示します。このヘッダーは <code><meta name="robots" content="..."></code> と等価です。</dd> + <dt>{{HTTPHeader("X-UA-Compatible")}} {{non-standard_inline}}</dt> + <dd>使用する文書モードを示すために Internet Explorer で使用されています。</dd> +</dl> + +<h2 id="Contributing" name="Contributing">協力</h2> + +<p><a href="/ja/docs/MDN/Contribute/Howto/Document_an_HTTP_header">新しい項目を書いたり</a>、既存のものを改善したりすることにご協力ください。</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="https://en.wikipedia.org/wiki/List_of_HTTP_header_fields">Wikipedia の HTTP ヘッダーの一覧のページ</a></li> + <li><a href="https://www.iana.org/assignments/message-headers/perm-headers.html">IANA レジストリ</a></li> + <li><a href="https://httpwg.org/specs/">HTTP Working Group</a></li> +</ul> diff --git a/files/ja/web/http/headers/index/index.html b/files/ja/web/http/headers/index/index.html new file mode 100644 index 0000000000..de4df1e89a --- /dev/null +++ b/files/ja/web/http/headers/index/index.html @@ -0,0 +1,13 @@ +--- +title: 索引 +slug: Web/HTTP/Headers/Index +tags: + - HTTP + - HTTP ヘッダー + - ヘッダー + - 索引 +translation_of: Web/HTTP/Headers/Index +--- +<div>{{HTTPSidebar}}</div> + +<p>{{Index("/ja/docs/Web/HTTP/Headers")}}</p> diff --git a/files/ja/web/http/headers/keep-alive/index.html b/files/ja/web/http/headers/keep-alive/index.html new file mode 100644 index 0000000000..f2535d4ec8 --- /dev/null +++ b/files/ja/web/http/headers/keep-alive/index.html @@ -0,0 +1,99 @@ +--- +title: Keep-Alive +slug: Web/HTTP/Headers/Keep-Alive +tags: + - General Header + - HTTP + - HTTP Header + - Reference +translation_of: Web/HTTP/Headers/Keep-Alive +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Keep-Alive</code></strong> 一般ヘッダーは、送信者が接続の仕組みや、タイムアウト値と最大リクエスト数の設定に使用される可能性があることをヒントとすることができます。</p> + +<div class="note"> +<p>このヘッダーが意味を持つためには、 {{HTTPHeader("Connection")}} ヘッダーを "keep-alive" に設定する必要があります。</p> +</div> + +<div class="blockIndicator warning"> +<p>{{HTTPHeader("Connection")}} や {{HTTPHeader("Keep-Alive")}} などの接続固有のヘッダーフィールドは <a href="https://tools.ietf.org/html/rfc7540#section-8.1.2.2">HTTP/2 では禁止されています</a>。 Chrome と Firefox は HTTP/2 レスポンスでこれらを無視しますが、 Safari は HTTP/2 仕様の要件に準拠しており、これらを含むレスポンスは読み込まれません。</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("General header", "一般ヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Keep-Alive: <var>parameters</var></pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code><var>parameters</var></code></dt> + <dd>カンマで区切られたパラメータのリスト。各パラメータは識別子と等号 (<code>'='</code>) で区切られた値で構成されます。以下の識別子が利用可能です。 + <ul> + <li><code>timeout</code>: 待機状態の接続を開いたままにしておく必要のある最小時間 (秒単位) を示します。keep-alive TCP メッセージがトランスポートレベルで設定されていない場合、TCP タイムアウトよりも長いタイムアウトが無視されることに注意してください。</li> + <li><code>max</code>: 接続を閉じる前にこの接続で送信できるリクエストの最大数を示します。<code>0</code> 以外の場合、次のレスポンスで別のリクエストが送信されるため、パイプラインでない接続ではこの値は無視されます。HTTP パイプラインは、パイプラインを制限するために使用できます。</li> + </ul> + </dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<p><code>Keep-Alive</code> ヘッダーを含むレスポンスです。</p> + +<pre class="notranslate">HTTP/1.1 200 OK +<strong>Connection: Keep-Alive</strong> +Content-Encoding: gzip +Content-Type: text/html; charset=utf-8 +Date: Thu, 11 Aug 2016 15:23:13 GMT +<strong>Keep-Alive: timeout=5, max=1000</strong> +Last-Modified: Mon, 25 Jul 2016 04:32:39 GMT +Server: Apache + +(本文)</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="https://tools.ietf.org/html/draft-thomson-hybi-http-timeout-03#section-2">HTTP Keep-Alive Header</a></td> + <td>Keep-Alive Header (IETF Internet Draft)</td> + </tr> + <tr> + <td><a href="https://tools.ietf.org/html/rfc7230#appendix-A.1.2">RFC 7230, appendix A.1.2: Keep-Alive</a></td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Keep-Alive")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Connection")}}</li> + <li><a href="/ja/docs/Web/HTTP/Connection_management_in_HTTP_1.x">HTTP/1.x のコネクション管理</a></li> +</ul> diff --git a/files/ja/web/http/headers/last-modified/index.html b/files/ja/web/http/headers/last-modified/index.html new file mode 100644 index 0000000000..e176de8c10 --- /dev/null +++ b/files/ja/web/http/headers/last-modified/index.html @@ -0,0 +1,94 @@ +--- +title: Last-Modified +slug: Web/HTTP/Headers/Last-Modified +tags: + - HTTP + - HTTP ヘッダー + - Reference + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/Last-Modified +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の <strong><code>Last-Modified</code></strong> レスポンスヘッダーは、リソースが最後に変更されたとオリジンのサーバーが判断している日時を含みます。これは受信または保存されたリソースが、同じものであるかを判断する検証材料として使用されます。 {{HTTPHeader("ETag")}} ヘッダーよりも精度は低く、その代替手段になります。 {{HTTPHeader("If-Modified-Since")}} や {{HTTPHeader("If-Unmodified-Since")}} ヘッダーを含む条件付きリクエストはこのフィールドを使用します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + <tr> + <th scope="row">{{Glossary("CORS-safelisted response header", "CORS セーフリストレスポンスヘッダー")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Last-Modified: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><day-name></dt> + <dd>"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" の中から一つ (大文字・小文字の区別あり)</dd> + <dt><day></dt> + <dd>2桁の日付を表す数字, 例 "04" や "23".</dd> + <dt><month></dt> + <dd>"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" の中から一つ (大文字・小文字の区別あり)</dd> + <dt><year></dt> + <dd>4桁の年を表す数字, 例 "1990" や "2016"</dd> + <dt><hour></dt> + <dd>2桁の時を表す数字, 例 "09" や "23"</dd> + <dt><minute></dt> + <dd>2桁の分を表す数字, 例 "04" や "59"</dd> + <dt><second></dt> + <dd>2桁の秒を表す数字, 例 "04" や "59"</dd> + <dt><code>GMT</code></dt> + <dd> + <p>グリニッジ標準時。 HTTP における時刻は常にグリニッジ標準時で表され、ローカル時刻になることはありません。</p> + </dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7232", "Last-Modified", "2.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Last-Modified")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("If-Modified-Since")}}</li> + <li>{{HTTPHeader("If-Unmodified-Since")}}</li> + <li>{{HTTPHeader("Etag")}}</li> +</ul> diff --git a/files/ja/web/http/headers/link/index.html b/files/ja/web/http/headers/link/index.html new file mode 100644 index 0000000000..21e98ecfd4 --- /dev/null +++ b/files/ja/web/http/headers/link/index.html @@ -0,0 +1,82 @@ +--- +title: Link +slug: Web/HTTP/Headers/Link +tags: + - Draft + - HTTP + - HTTP Header + - HTTP ヘッダー + - Link + - NeedsCompatTable + - NeedsContent + - NeedsSyntax + - Reference + - エンティティヘッダー +translation_of: Web/HTTP/Headers/Link +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の <strong><code>Link</code></strong> エンティティヘッダーフィールドは、 HTTP ヘッダー内の1つ以上のリンクをシリアル化する手段を提供します。意味的には、 HTML の <link> 要素と同等です。</p> + +<h2 id="Syntax">Syntax</h2> + +<pre class="syntaxbox">Link: < <var>uri-reference</var> >; <var>param1</var>=<var>value1</var>; <var>param2</var>="<var>value2</var>"</pre> + +<dl> + <dt><code><uri-reference></code></dt> + <dd>URI 参照。 <code><</code> と <code>></code> で囲む必要があります。</dd> +</dl> + +<h3 id="Parameters">Parameters</h3> + +<p>リンクヘッダーには <code>;</code> で区切られたパラメーターが含まれており、 {{HTMLElement("link")}} 要素の属性に相当します。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<p>URI は <code><</code> と <code>></code> で囲む必要があります。</p> + +<pre class="brush: http; no-line-numbers example-good">Link: <https://example.com>; rel="preconnect"</pre> + +<pre class="brush: http; no-line-numbers example-bad">Link: https://bad.example; rel="preconnect"</pre> + +<h3 id="Specifying_multiple_links" name="Specifying_multiple_links">複数リンクを指定</h3> + +<p>カンマで区切られた複数のリンクを指定できます。次に例を示します。</p> + +<pre>Link: <https://one.example.com>; rel="preconnect", <https://two.example.com>; rel="preconnect", <https://three.example.com>; rel="preconnect"</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC(8288, "Link Serialisation in HTTP Headers", 3)}}</td> + <td><span class="spec-RFC">IETF RFC</span></td> + <td></td> + </tr> + <tr> + <td>{{RFC(5988, "The Link Header Field", 5)}}</td> + <td><span class="spec-RFC">IETF RFC</span></td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Link")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPStatus(103, "103 Early Hints")}}</li> +</ul> diff --git a/files/ja/web/http/headers/location/index.html b/files/ja/web/http/headers/location/index.html new file mode 100644 index 0000000000..5996315a4f --- /dev/null +++ b/files/ja/web/http/headers/location/index.html @@ -0,0 +1,83 @@ +--- +title: Location +slug: Web/HTTP/Headers/Location +tags: + - HTTP + - HTTP レスポンスヘッダー + - リファレンス + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/Location +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Location</code></strong> レスポンスヘッダーはリダイレクト先の URL を示します。 <code>3xx</code> (リダイレクト) または <code>{{HTTPStatus("201")}}</code> (created) ステータスレスポンスを返すときのみ意味を成します。</p> + +<p>リダイレクトの場合、 HTTP メソッドは元のメソッドとリダイレクトの種類によって、 <code>Location</code> で示されたページにアクセスする新しいリクエストを生成するために使用します。</p> + +<ul> + <li>{{HTTPStatus("303")}} (See Also) レスポンスは常に {{HTTPMethod("GET")}} メソッドを使用するように誘導され、 {{HTTPStatus("307")}} (Temporary Redirect) および {{HTTPStatus("308")}} (Permanent Redirect) は元のリクエストにおいて使用されたメソッドを変更しません。</li> + <li>{{HTTPStatus("301")}} (Permanent Redirect) と {{HTTPStatus("302")}} (Found) は多くの場合はメソッドを変更しませんが、古いユーザーエージェントは変更することがあります (そのため、基本的に結果は不明です)。</li> +</ul> + +<p>これらのステータスコードを持つすべてのレスポンスは、 <code>Location</code> ヘッダーを送信します。</p> + +<p>リソース作成 (created) では、新しく作成されたリソースへの URL を示します。</p> + +<p><code>Location</code> と {{HTTPHeader("Content-Location")}} は異なります。 <code>Location</code> ヘッダーは、リダイレクトの対象 (または新しく作成されたリソースの URL) を示し、 {{HTTPHeader("Content-Location")}} ヘッダーは<a href="/ja/docs/Web/HTTP/Content_negotiation">コンテンツネゴシエーション</a>が起きたとき、更なるコンテンツネゴシエーションが起きないように、リソースへアクセスできる直接的なURLを指します。 <code>Location</code> はレスポンスに関連付くヘッダーで、 {{HTTPHeader("Content-Location")}} は返されるエンティティに関連付けられます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Location: <url> +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><url></dt> + <dd>(リクエスト URL からの) 相対 URL、または絶対 URL。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>Location: /index.html</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + <tr> + <td>{{RFC("7231", "Location", "7.1.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Location")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Location")}}</li> + <li><code>Location</code> ヘッダーを含むレスポンスのステータス: {{HTTPStatus("201")}}, {{HTTPStatus("301")}}, {{HTTPStatus("302")}}, {{HTTPStatus("303")}}, {{HTTPStatus("307")}}, {{HTTPStatus("308")}}.</li> +</ul> diff --git a/files/ja/web/http/headers/nel/index.html b/files/ja/web/http/headers/nel/index.html new file mode 100644 index 0000000000..3ff7dac702 --- /dev/null +++ b/files/ja/web/http/headers/nel/index.html @@ -0,0 +1,58 @@ +--- +title: NEL +slug: Web/HTTP/Headers/NEL +tags: + - HTTP + - HTTP Header + - HTTP ヘッダー + - Network Error Logging + - Reference + - Response Header + - header + - ネットワークエラーログ記録 + - ヘッダー + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/NEL +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の <strong><code>NEL</code></strong> レスポンスヘッダーは、ネットワークリクエストログ記録を構成するために使用されます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">NEL: { "report_to": "name_of_reporting_group", "max_age": 12345, "include_subdomains": false, "success_fraction": 0.0, "failure_fraction": 1.0 } +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="https://w3c.github.io/network-error-logging/#nel-response-header">Network Error Logging</a></td> + </tr> + </tbody> +</table> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="/ja/docs/Web/HTTP/Network_Error_Logging">Network Error Logging (NEL) の説明</a></li> +</ul> diff --git a/files/ja/web/http/headers/origin/index.html b/files/ja/web/http/headers/origin/index.html new file mode 100644 index 0000000000..6572bf9e8d --- /dev/null +++ b/files/ja/web/http/headers/origin/index.html @@ -0,0 +1,87 @@ +--- +title: Origin +slug: Web/HTTP/Headers/Origin +tags: + - HTTP + - Reference + - header + - origin + - リクエストヘッダー +translation_of: Web/HTTP/Headers/Origin +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Origin</code></strong> リクエストヘッダーは、どこがフェッチの原点であるかを示します。パス情報は含まれず、サーバー名のみが含まれます。これは、 {{Glossary("CORS")}} リクエストと、同様に {{HTTPMethod("POST")}} リクエストでも送信されます。 {{HTTPHeader("Referer")}} ヘッダーと似ていますが、パス全体が公開されるわけではない点が異なります。</p> + +<div class="blockIndicator note"> +<p><strong>メモ</strong>: {{httpheader("Origin")}} ヘッダーは <a href="/ja/docs/Web/API/WindowOrWorkerGlobalScope/fetch">Fetch リクエスト</a>を {{HTTPMethod("HEAD")}} または {{HTTPMethod("GET")}} メソッドで行った場合には設定されません (この挙動は Firefox 65 で修正されました。 — {{bug(1508661)}} を参照してください)。</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Origin: null +Origin: <scheme> "://" <hostname> [ ":" <port> ] +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><scheme></dt> + <dd>使用されるプロトコル。 通常、 HTTP プロトコルまたはそのセキュアバージョンである HTTPS です。</dd> + <dt><hostname></dt> + <dd>サーバーのドメイン名 (仮想ホスティングの場合) または IP アドレス。</dd> + <dt><port> {{optional_inline}}</dt> + <dd>サーバーが待ち受けしている TCP ポート番号。ポート番号が指定されていない場合、リクエストされたサービスの既定のポート番号 (HTTP URL の場合は "80" など) が暗黙的に指定されます。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre class="notranslate">Origin: https://developer.mozilla.org</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("6454", "Origin", "7")}}</td> + <td>The Web Origin Concept</td> + </tr> + <tr> + <td>{{SpecName('Fetch','#origin-header','Origin header')}}</td> + <td>Supplants the <code>Origin</code> header as defined in RFC6454.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<div>{{Compat("http.headers.Origin")}}</div> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Host")}}</li> + <li>{{HTTPHeader("Referer")}}</li> + <li><a href="/ja/docs/Web/Security/Same-origin_policy">同一オリジンポリシー</a></li> +</ul> diff --git a/files/ja/web/http/headers/pragma/index.html b/files/ja/web/http/headers/pragma/index.html new file mode 100644 index 0000000000..d32de36c75 --- /dev/null +++ b/files/ja/web/http/headers/pragma/index.html @@ -0,0 +1,83 @@ +--- +title: Pragma +slug: Web/HTTP/Headers/Pragma +tags: + - Caching + - Deprecated + - HTTP + - ヘッダー + - リクエスト +translation_of: Web/HTTP/Headers/Pragma +--- +<div>{{HTTPSidebar}}</div> + +<p><code><strong>Pragma</strong></code> は HTTP/1.0 の一般ヘッダーで、実装固有のヘッダーであり、リクエスト - レスポンスチェーンに沿ってさまざまな影響を与えます。 <code>Cache-Control</code> HTTP/1.1 ヘッダーがまだ存在しない HTTP/1.0 キャッシュとの下位互換性のために使用されます。</p> + +<div class="note"> +<p><strong>メモ</strong>: <code>Pragma</code> は HTTP レスポンスには指定されていないため、リクエストの <code>Cache-Control</code> ヘッダーフィールドが省略されている場合は <code>Cache-Control: no-cache</code> と同じように動作しますが、一般的な HTTP/1.1 <code>Cache-Control</code> ヘッダーの代わりに信頼できるものではありません。<code>Pragma</code> は HTTP/1.0 クライアントとの下位互換性のためにのみ使用してください。</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("General header", "一般ヘッダー")}}, ただしレスポンスの振る舞いは指定されていないため、実装固有です。</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + <tr> + <th scope="row">{{Glossary("CORS-safelisted response header", "CORS セーフリストレスポンスヘッダー")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Pragma: no-cache +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt>no-cache</dt> + <dd> + <p><code>Cache-Control: no-cache</code> と同じです。キャッシュされたコピーを解放する前に、キャッシュが検証のためにオリジンサーバーにリクエストを送信するようにします。</p> + </dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>Pragma: no-cache</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7234", "Pragma", "5.4")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Caching</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Pragma")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Cache-Control")}}</li> + <li>{{HTTPHeader("Expires")}}</li> +</ul> diff --git a/files/ja/web/http/headers/proxy-authenticate/index.html b/files/ja/web/http/headers/proxy-authenticate/index.html new file mode 100644 index 0000000000..5cf3e29cab --- /dev/null +++ b/files/ja/web/http/headers/proxy-authenticate/index.html @@ -0,0 +1,85 @@ +--- +title: Proxy-Authenticate +slug: Web/HTTP/Headers/Proxy-Authenticate +tags: + - HTTP + - HTTP ヘッダー + - Reference + - プロキシ + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/Proxy-Authenticate +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP <strong><code>Proxy-Authenticate</code></strong> レスポンスヘッダーは、{{Glossary("proxy server", "プロキシサーバー")}}の背後にあるリソースへのアクセスに使用される認証メソッドを定義します。プロキシサーバーへのリクエストを認証し、プロキシサーバーがリクエストをさらに送信できるようにします。</p> + +<p><code>Proxy-Authenticate</code> ヘッダーは、 {{HTTPStatus("407")}} <code>Proxy Authentication Required</code> とともに送信されます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Proxy-Authenticate: <type> realm=<realm> +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><type></dt> + <dd><a href="/ja/docs/Web/HTTP/Authentication#Authentication_schemes">認証タイプ</a>。 一般的なタイプは <a href="/ja/docs/Web/HTTP/Authentication#Basic_authentication_scheme">"Basic"</a> です。 IANA は<a href="http://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml">認証スキームのリスト</a>を管理しています。</dd> + <dt>realm=<realm></dt> + <dd>保護された領域、つまり realm の詳細。 realm が指定されていない場合、クライアントはふつう代わりに整形されたホスト名を表示します。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>Proxy-Authenticate: Basic + +Proxy-Authenticate: Basic realm="Access to the internal site" +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + <tr> + <td>{{RFC("7235", "Proxy-Authenticate", "4.3")}}</td> + <td>HTTP/1.1: Authentication</td> + </tr> + <tr> + <td>{{RFC("7617")}}</td> + <td>The 'Basic' HTTP Authentication Scheme</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Proxy-Authenticate")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="/ja/docs/Web/HTTP/Authentication">HTTP 認証</a></li> + <li>{{HTTPHeader("Authorization")}}</li> + <li>{{HTTPHeader("Proxy-Authorization")}}</li> + <li>{{HTTPHeader("WWW-Authenticate")}}</li> + <li>{{HTTPStatus("401")}}, {{HTTPStatus("403")}}, {{HTTPStatus("407")}}</li> +</ul> diff --git a/files/ja/web/http/headers/proxy-authorization/index.html b/files/ja/web/http/headers/proxy-authorization/index.html new file mode 100644 index 0000000000..b56a88e7da --- /dev/null +++ b/files/ja/web/http/headers/proxy-authorization/index.html @@ -0,0 +1,77 @@ +--- +title: Proxy-Authorization +slug: Web/HTTP/Headers/Proxy-Authorization +translation_of: Web/HTTP/Headers/Proxy-Authorization +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP <strong><code>Proxy-Authorization</code></strong> リクエストヘッダーは、プロキシサーバーに対してユーザーエージェントを認証するための認証情報を保持し、ふつうはサーバーが {{HTTPStatus("407")}} <code>Proxy Authentication Required</code> ステータスと {{HTTPHeader("Proxy-Authenticate")}} ヘッダーを返した後に使われます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header","リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name","禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="構文">構文</h2> + +<pre class="syntaxbox notranslate">Proxy-Authorization: <type> <credentials></pre> + +<h2 id="ディレクティブ">ディレクティブ</h2> + +<dl> + <dt><type></dt> + <dd><a href="/ja/docs/Web/HTTP/Authentication#Authentication_schemes">認証の種類</a>。一般的には <a href="/ja/docs/Web/HTTP/Authentication#Basic_authentication_scheme">"Basic"</a> です。<a href="http://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml">認証方法の IANA レジストリ</a>も参照してください。</dd> + <dt><credentials></dt> + <dd>"Basic" 認証方式を使用している場合、認証情報は次のように構築されます。 + <ul> + <li>コロンで結合したユーザー名とパスワード (<code>aladdin:opensesame</code>)。</li> + <li>結果の文字列は <a href="/ja/docs/Web/API/WindowBase64/Base64_encoding_and_decoding">Base64</a> でエンコードされます (<code>YWxhZGRpbjpvcGVuc2VzYW1l</code>)。</li> + </ul> + + <div class="note"> + <p><strong>メモ</strong>: Base64 エンコードは暗号化でもハッシュでもありません。この方法の安全性はクリアテキストで認証情報を送るのと同等です (Base64 は可逆エンコーディングです)。 Basic 認証は HTTPS との組み合わせで使用することをお勧めします。</p> + </div> + </dd> +</dl> + +<h2 id="例">例</h2> + +<pre class="notranslate">Proxy-Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l +</pre> + +<h2 id="仕様書">仕様書</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + <tr> + <td>{{RFC("7235", "Proxy-Authorization", "4.4")}}</td> + <td>HTTP/1.1: Authentication</td> + </tr> + <tr> + <td>{{RFC("7617")}}</td> + <td>The 'Basic' HTTP Authentication Scheme</td> + </tr> + </tbody> +</table> + +<h2 id="関連情報">関連情報</h2> + +<ul> + <li><a href="/ja/docs/Web/HTTP/Authentication">HTTP 認証</a></li> + <li>{{HTTPHeader("Proxy-Authenticate")}}</li> + <li>{{HTTPHeader("WWW-Authenticate")}}</li> + <li>{{HTTPHeader("Authorization")}}</li> + <li>{{HTTPStatus("401")}}, {{HTTPStatus("403")}}, {{HTTPStatus("407")}}</li> +</ul> diff --git a/files/ja/web/http/headers/range/index.html b/files/ja/web/http/headers/range/index.html new file mode 100644 index 0000000000..bb750185c2 --- /dev/null +++ b/files/ja/web/http/headers/range/index.html @@ -0,0 +1,97 @@ +--- +title: Range +slug: Web/HTTP/Headers/Range +tags: + - HTTP + - HTTP Header + - Range Requests + - Reference + - Request header + - リクエストヘッダー +translation_of: Web/HTTP/Headers/Range +--- +<p>{{HTTPSidebar}}</p> + +<p><strong><code>Range</code></strong> は HTTP のリクエストヘッダーで、サーバーが返すべき文書の部分を示します。1 つの <code>Range</code> ヘッダーで複数の部分を一度にリクエストすることができ、サーバーはこれらの範囲をマルチパートの文書で返すことができます。サーバーが範囲を送り返す場合、サーバーはレスポンスに {{HTTPStatus("206")}}<code> Partial Content</code> を使用します。範囲が無効な場合、サーバは {{HTTPStatus("416")}}<code> Range Not Satisfiable</code> エラーを返します。サーバーは <code>Range</code> ヘッダ-を無視して、文書全体を {{HTTPStatus("200")}} のステータスコードで返すこともできます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Range: <unit>=<range-start>- +Range: <unit>=<range-start>-<range-end> +Range: <unit>=<range-start>-<range-end>, <range-start>-<range-end> +Range: <unit>=<range-start>-<range-end>, <range-start>-<range-end>, <range-start>-<range-end> +Range: <unit>=-<suffix-length></pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><unit></dt> + <dd>範囲を指定する単位です。これはふつう <code>bytes</code> です。</dd> +</dl> + +<dl> + <dt><range-start></dt> + <dd>整数値で、リクエストする範囲の先頭を指定した単位で示します。</dd> + <dt><range-end></dt> + <dd>整数値で、リクエストする範囲の末尾を指定した単位で示します。この値は省略可能で、省略時は文書の末尾が範囲の末尾として扱われます。</dd> + <dt><suffix-length></dt> + <dd>整数値で、返す長さを位でファイルの末尾からの個数を示します。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<p>ファイルから3つの範囲をリクエストします。</p> + +<pre class="notranslate">Range: bytes=200-1000, 2000-6576, 19000- +</pre> + +<p>ファイルの先頭の500バイトと末尾の500バイトをリクエストします。範囲が重複した場合はサーバーがリクエストを拒否することがあります。</p> + +<pre class="notranslate">Range: bytes=0-499, -500 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7233", "Range", "3.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Range")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("If-Range")}}</li> + <li>{{HTTPHeader("Content-Range")}}</li> + <li>{{HTTPHeader("Content-Type")}}</li> + <li>{{HTTPStatus("206")}}<code> Partial Content</code></li> + <li>{{HTTPStatus("416")}}<code> Range Not Satisfiable</code></li> +</ul> diff --git a/files/ja/web/http/headers/referer/index.html b/files/ja/web/http/headers/referer/index.html new file mode 100644 index 0000000000..2fabff3159 --- /dev/null +++ b/files/ja/web/http/headers/referer/index.html @@ -0,0 +1,88 @@ +--- +title: Referer +slug: Web/HTTP/Headers/Referer +tags: + - HTTP + - HTTP リクエストヘッダー + - Reference + - referer + - ヘッダー + - リクエストヘッダー + - リファラー +translation_of: Web/HTTP/Headers/Referer +--- +<div>{{HTTPSidebar}}</div> + +<p><code><strong>Referer</strong></code> リクエストヘッダーには、現在リクエストされているページへのリンク先を持った直前のウェブページのアドレスが含まれています。 <code>Referer</code> ヘッダーにより、サーバーは人々がどこから訪問しに来たかを識別し、分析、ログ、キャッシュの最適化などに利用することができます。</p> + +<div class="warning"> +<p><strong>重要</strong>: このヘッダーには無害な用途が多数ありますが、ユーザーのセキュリティとプライバシーに望ましくない結果をもたらす可能性もあります。 詳細情報と緩和策については <a href="/ja/docs/Web/Security/Referer_header:_privacy_and_security_concerns">Referer header: privacy and security concerns</a> を参照してください。</p> +</div> + +<p>なお、 referer は実際には "referrer" という単語のスペルミスです。詳しくは {{interwiki("wikipedia", "HTTPリファラ", "Wikipedia の HTTP リファラ")}}を参照してください。</p> + +<p>次のような場合は、ブラウザーは <code>Referer</code> ヘッダーを送信しません。</p> + +<ul> + <li>参照していたリソースがローカルの "file" または "data" の URI の場合</li> + <li>安全ではない HTTP リクエストが使用されており、それを参照しているページが安全なプロトコル (HTTPS) で受信された場合</li> +</ul> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Referer: <url> +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><url></dt> + <dd>現在リクエスト中のページにつながるリンクがある直前のページの、絶対または相対アドレスです。 URL フラグメント (つまり "#section") およびユーザー情報 ("https://username:password@example.com/foo/bar/" の "username:password" の部分) は含まれません。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>Referer: https://developer.mozilla.org/en-US/docs/Web/JavaScript</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "Referer", "5.5.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Referer")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{interwiki("wikipedia", "HTTP_referer", "HTTP referer on Wikipedia")}}</li> + <li>{{HTTPHeader("Referrer-Policy")}}</li> +</ul> diff --git a/files/ja/web/http/headers/referrer-policy/index.html b/files/ja/web/http/headers/referrer-policy/index.html new file mode 100644 index 0000000000..afd6c76932 --- /dev/null +++ b/files/ja/web/http/headers/referrer-policy/index.html @@ -0,0 +1,258 @@ +--- +title: Referrer-Policy +slug: Web/HTTP/Headers/Referrer-Policy +tags: + - HTTP + - HTTP ヘッダー + - Reference + - Referrer-Policy + - Response + - referrer + - プライバシー + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/Referrer-Policy +--- +<div>{{HTTPSidebar}}</div> + +<p><span class="seoSummary">HTTP の <strong><code>Referrer-Policy</code></strong> {{glossary("HTTP header", "ヘッダー")}}は、 ({{HTTPHeader("Referer")}} ヘッダーによって送られる) <a href="/ja/docs/Web/Security/Referer_header:_privacy_and_security_concerns">リファラー情報</a>をリクエストにどれだけ含めるかを制御します。</span></p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<div class="blockIndicator note"> +<p>元のヘッダー名である {{HTTPHeader("Referer")}} は "referrer" という語のスペルミスです。 <code>Referrer-Policy</code> ヘッダーはこのスペルミスをしていません。</p> +</div> + +<pre class="syntaxbox notranslate">Referrer-Policy: no-referrer +Referrer-Policy: no-referrer-when-downgrade +Referrer-Policy: origin +Referrer-Policy: origin-when-cross-origin +Referrer-Policy: same-origin +Referrer-Policy: strict-origin +Referrer-Policy: strict-origin-when-cross-origin +Referrer-Policy: unsafe-url +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code>no-referrer</code></dt> + <dd>{{HTTPHeader("Referer")}} ヘッダー全体が省略されます。リクエストとともにリファラー情報が送られることはありません。</dd> + <dt><code>no-referrer-when-downgrade</code> (既定値)</dt> + <dd>これはポリシーが指定されていない場合や、与えられた値が無効であった場合の既定の動作です。プロトコルのセキュリティ水準が同一である場合 (HTTP→HTTP, HTTPS→HTTPS) または改善される場合 (HTTP→HTTPS) は、 URL の{{glossary("origin", "オリジン")}}、{{glossary("path", "パス")}}、{{glossary("querystring", "クエリ文字列")}}がリファラーとして送信されますが、低下する場合 (HTTPS→HTTP) は、リファラーは送信されません。 + <div class="note">ブラウザーはより厳格な既定値、すなわち <code>strict-origin-when-cross-origin</code> (<a href="https://github.com/whatwg/fetch/pull/952">https://github.com/whatwg/fetch/pull/952</a> を参照) に移行するよう取り組んでいますが、 Referrerer-Policy を変更する際には、可能であればこの値 (またはより厳格な値) を使用することを検討してください。</div> + </dd> + <dt><code>origin</code></dt> + <dd>文書の{{glossary("origin", "オリジン")}}のみがリファラーとして送信されます。<br> + たとえば、 <code>https://example.com/page.html</code> にある文書からは、 <code>https://example.com/</code> というリファラーが送信されます。</dd> + <dt><code>origin-when-cross-origin</code></dt> + <dd>{{glossary("Same-origin_policy", "同一オリジン")}}間でリクエストを行う場合はオリジン、パス、クエリ文字列を送信しますが、その他の場合は文書のオリジンのみを送信します。</dd> + <dt><code>same-origin</code></dt> + <dd><a href="/ja/docs/Web/Security/Same-origin_policy">同じオリジン</a>にはリファラーが送信されますが、オリジン間リクエストではリファラー情報が送信されません。</dd> + <dt><code>strict-origin</code></dt> + <dd>プロトコルのセキュリティ水準が同じである場合 (HTTPS→HTTPS) にのみ、文書のオリジンをリファラーとして送信しますが、安全性の劣る移動先 (HTTPS→HTTP) には送信しません。</dd> + <dt><code>strict-origin-when-cross-origin</code></dt> + <dd>同じオリジン間でリクエストを行う際はオリジン、パス、クエリ文字列を送信し、オリジン間リクエストを行う際にプロトコルのセキュリティレベルが同じ場合 (HTTPS→HTTPS) はオリジンを送信し、安全性の劣る送信先 (HTTPS→HTTP) にはヘッダーを送信しません。</dd> + <dt>unsafe-url</dt> + <dd>セキュリティに関係なく、どのリクエストを行った場合でも、オリジン、パス、クエリ文字列を送信します。 + <div class="blockIndicator warning"> + <p>このポリシーは、 HTTPS リソースの URL から安全ではないオリジンへプライベートである可能性がある情報を漏洩します。設定する場合は影響をよく検討してください。</p> + </div> + </dd> +</dl> + +<h2 id="Integration_with_HTML" name="Integration_with_HTML">HTML との統合</h2> + +<p>HTML 内でリファラーポリシーを設定することもできます。例えば、 {{HTMLElement("meta")}} 要素で <a href="/ja/docs/Web/HTML/Element/meta#attr-name">name</a> に <code>referrer</code> を設定することで、文書全体のリファラーポリシーを設定することができます。</p> + +<pre class="brush: html notranslate"><meta name="referrer" content="origin"></pre> + +<p>また、 {{HTMLElement("a")}}, {{HTMLElement("area")}}, {{HTMLElement("img")}}, {{HTMLElement("iframe")}}, {{HTMLElement("script")}}, {{HTMLElement("link")}} の各要素の <code>referrerpolicy</code> 属性によって、個別のリクエストに設定することもできます。</p> + +<pre class="brush: html notranslate"><a href="http://example.com" referrerpolicy="origin"></pre> + +<p>他に、 <code>noreferrer</code> <a href="/ja/docs/Web/HTML/Link_types">link 関係</a>を <code>a</code>, <code>area</code>, <code>link</code> の各要素に設定することもできます。</p> + +<pre class="brush: html notranslate"><a href="http://example.com" rel="noreferrer"></pre> + +<h2 id="Integration_with_CSS" name="Integration_with_CSS">CSS との統合</h2> + +<p>CSS はスタイルシートから参照されるリソースにアクセスすることがあります。これらのリソースは同様にリファラーポリシーに従います。</p> + +<ul> + <li>外部 CSS スタイルシートは、 CSS スタイルシートに指定する HTTP ヘッダーを通じて上書きされない限り、既定のポリシー (<code>no-referrer-when-downgrade</code>) を使用します。</li> + <li>{{HTMLElement("style")}} 要素または <a href="/ja/docs/Web/API/HTMLElement/style"><code>style</code> 属性</a>については、所有者の文書のリファラーポリシーが使用されます。</li> +</ul> + +<h2 id="Examples" name="Examples">例</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">ポリシー</th> + <th scope="col">文書</th> + <th scope="col">移動先</th> + <th scope="col">リファラー</th> + </tr> + </thead> + <tbody> + <tr> + <th><code>no-referrer</code></th> + <td>https://example.com/page</td> + <td><em>どこへでも</em></td> + <td><em>(リファラーなし)</em></td> + </tr> + <tr> + <th rowspan="3"><code>no-referrer-when-downgrade</code></th> + <td rowspan="3">https://example.com/page</td> + <td>https://example.com/otherpage</td> + <td>https://example.com/page</td> + </tr> + <tr> + <td>https://mozilla.org</td> + <td>https://example.com/page</td> + </tr> + <tr> + <td><strong>http</strong>://example.org</td> + <td><em>(リファラーなし)</em></td> + </tr> + <tr> + <th><code>origin</code></th> + <td>https://example.com/page</td> + <td><em>どこへでも</em></td> + <td>https://example.com/</td> + </tr> + <tr> + <th rowspan="3"><code>origin-when-cross-origin</code></th> + <td rowspan="3">https://example.com/page</td> + <td>https://example.com/otherpage</td> + <td>https://example.com/page</td> + </tr> + <tr> + <td>https://mozilla.org</td> + <td>https://example.com/</td> + </tr> + <tr> + <td><strong>http</strong>://example.com/page</td> + <td>https://example.com/</td> + </tr> + <tr> + <th rowspan="2"><code>same-origin</code></th> + <td rowspan="2">https://example.com/page</td> + <td>https://example.com/otherpage</td> + <td>https://example.com/page</td> + </tr> + <tr> + <td>https://mozilla.org</td> + <td><em>(リファラーなし)</em></td> + </tr> + <tr> + <th rowspan="3"><code>strict-origin</code></th> + <td rowspan="2">https://example.com/page</td> + <td>https://mozilla.org</td> + <td>https://example.com/</td> + </tr> + <tr> + <td><strong>http</strong>://example.org</td> + <td><em>(リファラーなし)</em></td> + </tr> + <tr> + <td><strong>http</strong>://example.com/page</td> + <td><em>どこへでも</em></td> + <td>http://example.com/</td> + </tr> + <tr> + <th rowspan="3"><code>strict-origin-when-cross-origin</code></th> + <td rowspan="3">https://example.com/page</td> + <td>https://example.com/otherpage</td> + <td>https://example.com/page</td> + </tr> + <tr> + <td>https://mozilla.org</td> + <td>https://example.com/</td> + </tr> + <tr> + <td><strong>http</strong>://example.org</td> + <td><em>(リファラーなし)</em></td> + </tr> + <tr> + <th><code>unsafe-url</code></th> + <td>https://example.com/page?q=123</td> + <td><em>どこへでも</em></td> + <td>https://example.com/page?q=123</td> + </tr> + </tbody> +</table> + +<h3 id="Specifying_a_fallback_policy" name="Specifying_a_fallback_policy">代替ポリシーの指定</h3> + +<p>必要なポリシーのブラウザーの対応状況が十分ではなく、代替ポリシーを設定したい場合は、カンマ区切りのリストを使用し、必要なポリシーを最後に指定してください。</p> + +<pre class="notranslate">Referrer-Policy: no-referrer, strict-origin-when-cross-origin</pre> + +<p>上記のシナリオでは、 <code>no-referrer</code> はブラウザーが <code>strict-origin-when-cross-origin</code> に対応していない場合のみ使用されます。</p> + +<p class="note">複数の値を設定する方法は、 HTTP の <code>Referrer-Policy</code> ヘッダーのみが対応しており、 <code>referrerpolicy</code> 属性では対応していません。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-header">Referrer Policy </a></td> + <td>編集者草稿</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Referrer-Policy")}}</p> + +<div class="note"> +<ul> + <li>バージョン 53 以降では、 Gecko は <code>about:config</code> の中でユーザーが <code>Referrer-Policy</code> の既定値を設定できる設定項目 (<span class="quote"> <code>network.http.referer.userControlPolicy</code>) があります。</span></li> + <li>バージョン 59 以降では (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=587523">#587523</a> を参照)、これは <code>network.http.referer.defaultPolicy</code> および <code>network.http.referer.defaultPolicy.pbmode</code> で置き換えられました。</li> +</ul> + +<p>指定可能な値は以下の通りです。</p> + +<ul> + <li>0 — <code>no-referrer</code></li> + <li>1 — <code>same-origin</code></li> + <li>2 — <code>strict-origin-when-cross-origin</code></li> + <li>3 — <code>no-referrer-when-downgrade</code> (既定値)</li> +</ul> +</div> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{interwiki("wikipedia", "HTTPリファラ", "Wikipedia の HTTP リファラ")}}</li> + <li><a href="/ja/docs/Web/API/Fetch_API">Fetch</a> の使用時: {{domxref("Request.referrerPolicy")}}</li> + <li>廃止された <span style="white-space: nowrap;">{{HTTPHeader("Content-Security-Policy")}}</span> {{HTTPHeader("Content-Security-Policy/referrer", "referrer")}} {{Obsolete_Inline}} ディレクティブ</li> + <li><a href="/ja/docs/Web/Security/Same-origin_policy">同一オリジンポリシー</a></li> + <li> + <p><a href="https://blog.mozilla.org/security/2015/01/21/meta-referrer/">Tighter Control Over Your Referrers – Mozilla Security Blog</a></p> + </li> +</ul> diff --git a/files/ja/web/http/headers/retry-after/index.html b/files/ja/web/http/headers/retry-after/index.html new file mode 100644 index 0000000000..7639272034 --- /dev/null +++ b/files/ja/web/http/headers/retry-after/index.html @@ -0,0 +1,87 @@ +--- +title: Retry-After +slug: Web/HTTP/Headers/Retry-After +tags: + - HTTP + - ヘッダー + - リファレンス + - レスポンス + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/Retry-After +--- +<p>{{HTTPSidebar}}</p> + +<p><strong><code>Retry-After</code></strong> レスポンス HTTP ヘッダーは、ユーザーエージェントがフォローアップリクエストを行う前にどれくらい待つべきかを示します。このヘッダーが使用される主なケースは3つあります。</p> + +<ul> + <li>{{HTTPStatus(503)}} (Service Unavailable) レスポンスで送信された場合、これはサービスが利用できないと予想される期間を示します。</li> + <li>{{HTTPStatus(429)}} (Too Many Requests) レスポンスとともに送信された場合、これは新しいリクエストを行うまでどれくらい待つかを示します。</li> + <li>{{HTTPStatus(301)}} (Moved Permanently) のようなリダイレクトレスポンスとともに送信された場合、リダイレクトされたリクエストを発行する前にユーザエージェントが待機するように要求される最小時間を示します。</li> +</ul> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダータイプ</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="構文">構文</h2> + +<pre class="syntaxbox">Retry-After: <http-date> +Retry-After: <delay-seconds> +</pre> + +<h2 id="ディレクティブ">ディレクティブ</h2> + +<dl> + <dt><http-date></dt> + <dd>再試行する日付。HTTP の日付形式の詳細については {{HTTPHeader("Date")}} ヘッダーを参照してください。</dd> + <dt><delay-seconds></dt> + <dd>レスポンスを受信してから遅延する秒数を示す負でない10進数の整数。</dd> +</dl> + +<h2 id="例">例</h2> + +<h3 id="スケジュールされたダウンタイムの処理">スケジュールされたダウンタイムの処理</h3> + +<p>クライアントとサーバーの両方で <code>Retry-After</code> ヘッダーがサポートされているのは、依然として矛盾しています。ただし、Googlebot のような一部のクローラとスパイダーは <code>Retry-After</code> ヘッダーを尊重します。{{HTTPStatus(503)}} (Service Unavailable) レスポンスと共に送信すると便利です。これにより、ダウンタイムが終了したときに検索エンジンがサイトのインデックスを作成し続けるようになります。</p> + +<pre>Retry-After: Wed, 21 Oct 2015 07:28:00 GMT +Retry-After: 120 +</pre> + +<h2 id="仕様">仕様</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様書</th> + <th scope="col">タイトル</th> + </tr> + <tr> + <td>{{RFC("7231", "Retry-After", "7.1.3")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="ブラウザの互換性">ブラウザの互換性</h2> + +<p class="hidden">このページの互換表は構造化データから生成されます。データに貢献したい場合は <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックし、プルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Retry-After")}}</p> + +<h2 id="関連情報">関連情報</h2> + +<ul> + <li><a href="https://webmasters.googleblog.com/2011/01/how-to-deal-with-planned-site-downtime.html">Google Webmaster blog: How to deal with planned site downtime</a></li> + <li>{{HTTPStatus(503)}} (Service Unavailable)</li> + <li>{{HTTPStatus(301)}} (Moved Permanently)</li> +</ul> diff --git a/files/ja/web/http/headers/server-timing/index.html b/files/ja/web/http/headers/server-timing/index.html new file mode 100644 index 0000000000..eb66d99e3e --- /dev/null +++ b/files/ja/web/http/headers/server-timing/index.html @@ -0,0 +1,89 @@ +--- +title: Server-Timing +slug: Web/HTTP/Headers/Server-Timing +tags: + - HTTP + - Reference + - パフォーマンス + - ヘッダー +translation_of: Web/HTTP/Headers/Server-Timing +--- +<p>{{HTTPSidebar}}</p> + +<p><strong><code>Server-Timing</code></strong> ヘッダーは、指定されたリクエスト-レスポンスのサイクルについての1つ以上のメトリックと説明を通信します。ユーザーのブラウザーの開発ツール内や、 {{domxref("PerformanceServerTiming")}} インターフェイス内で、任意のバックエンドサーバーのタイミングメトリック (データベースの読み書き、 CPU 時間、ファイルシステムアクセス、など) を表面化させるために使用します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p><code>Server-Timing</code> ヘッダーの構文では、さまざまな方法でメトリックを通信することができます。サーバーメトリック名のみ、メトリックと値、メトリックと値と説明、メトリックと説明などです。</p> + +<p>仕様書では、 HTTP のオーバーヘッドを最小化するために、名前と説明を (略語を使用したり可能な限り値を省略したりして) できるだけ短くすることを推奨しています。</p> + +<pre>// 単一の値のないメトリック +Server-Timing: missedCache + +// 単一のメトリックと値 +Server-Timing: cpu;dur=2.4 + +// 単一のメトリックと説明と値 +Server-Timing: cache;desc="Cache Read";dur=23.2 + +// 二つのメトリックと値 +Server-Timing: db;dur=53, app;dur=47.2 + +// Server-Timing as trailer +Trailer: Server-Timing +--- response body --- +Server-Timing: total;dur=123.4 +</pre> + +<h2 id="Privacy_and_security" name="Privacy_and_security">プライバシーとセキュリティ</h2> + +<p><code>Server-Timing</code> ヘッダーは微妙なアプリケーションやインフラの情報を公開する可能性があります。どのメトリックが、いつ、サーバー側の誰に返されるかを制御することを検討してください。例えば、メトリックを認証されたユーザーのみに見せ、一般には見せないようにすることもできます。</p> + +<h2 id="PerformanceServerTiming_interface" name="PerformanceServerTiming_interface">PerformanceServerTiming インターフェイス</h2> + +<p><code>Server-Timing</code> ヘッダーのメトリックがブラウザーの開発者ツールに現れるのに加えて、 {{domxref("PerformanceServerTiming")}} インターフェイスでツールが JavaScript から自動的にメトリックを収集し処理することができます。このインターフェイスは同じオリジンに制約されていますが、 {{HTTPHeader("Timing-Allow-Origin")}} ヘッダーを使用することで、サーバーメトリックにアクセスすることができるドメインを指定することができます。このインターフェイスはブラウザーによっては、安全なコンテキスト (HTTPS) のみでしか利用できません。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Server Timing','#the-server-timing-header-field', 'Server-Timing Header Field')}}</td> + <td>{{Spec2("Server Timing")}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Server-Timing")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{domxref("PerformanceServerTiming")}}</li> +</ul> diff --git a/files/ja/web/http/headers/server/index.html b/files/ja/web/http/headers/server/index.html new file mode 100644 index 0000000000..92a7b3dcfd --- /dev/null +++ b/files/ja/web/http/headers/server/index.html @@ -0,0 +1,78 @@ +--- +title: Server +slug: Web/HTTP/Headers/Server +tags: + - HTTP + - Reference + - header +translation_of: Web/HTTP/Headers/Server +--- +<div>{{HTTPSidebar}}</div> + +<p><span class="seoSummary"><code><strong>Server</strong></code> ヘッダーは、リクエストを処理したオリジンサーバー、すなわち、レスポンスを生成したサーバーで使用されたソフトウェアを説明します。</span></p> + +<div class="blockIndicator warning"> +<p><code>Server</code> の値は、攻撃者が既知のセキュリティホールを悪用するのを (少し) 容易にする情報を暴露する可能性があるので、過度に詳細にすることは避けてください。</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Server: <product> +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code><product></code></dt> + <dd> + <p>リクエストを処理したソフトウェアまたは製品の名前です。通常は {{HTTPHeader('User-Agent')}}} と似た形式です。</p> + </dd> +</dl> + +<p>どのくらいの詳細を含めるかのバランスを取るのは興味深いことです。 OS のバージョンを公開することは、先ほどの過度に詳細な値についての警告で述べたように、おそらく悪い考えです。しかし、 Apache のバージョンを公開すると、あるバージョンが持つ {{HTTPHeader('Content-Encoding')}} と {{HTTPHeader('Range')}} を組み合わせたバグをブラウザーが回避するのに役立ちます。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>Server: Apache/2.4.1 (Unix)</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "Server", "7.4.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Server")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Allow")}}</li> +</ul> diff --git a/files/ja/web/http/headers/set-cookie/index.html b/files/ja/web/http/headers/set-cookie/index.html new file mode 100644 index 0000000000..e15c438304 --- /dev/null +++ b/files/ja/web/http/headers/set-cookie/index.html @@ -0,0 +1,201 @@ +--- +title: Set-Cookie +slug: Web/HTTP/Headers/Set-Cookie +tags: + - Cookies + - HTTP + - Reference + - ヘッダー + - レスポンス + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/Set-Cookie +--- +<div>{{HTTPSidebar}}</div> + +<p><span class="seoSummary"><strong><code>Set-Cookie</code></strong> は HTTP のレスポンスヘッダーで、サーバーからユーザーエージェントへクッキーを送信するために使用され、ユーザーエージェントはそれを後でサーバーに送り返すことができます。</span></p> + +<p>詳細については、<a href="/ja/docs/Web/HTTP/Cookies">HTTP クッキーのガイド</a>を参照してください。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Set-Cookie: <cookie-name>=<cookie-value> +Set-Cookie: <cookie-name>=<cookie-value>; Expires=<date> +Set-Cookie: <cookie-name>=<cookie-value>; Max-Age=<non-zero-digit> +Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain-value> +Set-Cookie: <cookie-name>=<cookie-value>; Path=<path-value> +Set-Cookie: <cookie-name>=<cookie-value>; Secure +Set-Cookie: <cookie-name>=<cookie-value>; HttpOnly + +Set-Cookie: <cookie-name>=<cookie-value>; SameSite=Strict +Set-Cookie: <cookie-name>=<cookie-value>; SameSite=Lax +Set-Cookie: <cookie-name>=<cookie-value>; SameSite=None + +// 以下の例のように、複数のディレクティブも利用することができます。 +Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain-value>; Secure; HttpOnly +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code><cookie-name>=<cookie-value></code></dt> + <dd>クッキーは名前と値の組で始まります。 + <ul> + <li><code><cookie-name></code> は任意の US-ASCII 文字の集合で、制御文字、空白、タブを除いたものです。 <code>( ) < > @ , ; : \ " / [ ] ? = { }</code> のような区切り文字も含めることができません。</li> + <li><code><cookie-value></code> は任意で二重引用符で囲むことができ、制御文字、{{glossary("Whitespace", "ホワイトスペース")}}、二重引用符、カンマ、セミコロン、バックスラッシュを除くすべての US-ASCII 文字が利用できます。 <strong>エンコーディング</strong>: 多くの実装ではクッキーの値に URL エンコーディングを施しますが、 RFC の仕様書では要求されていません。これは <cookie-value> に許可された文字についての要件を満足させるのに役立ちます。</li> + <li><strong><code>__Secure-</code> の接頭辞</strong>{{non-standard_inline}}: <code>__Secure-</code> (接頭辞にダッシュを含む) で始まるクッキー名は、 <code>secure</code> フラグを設定することが必要で、安全なページ (HTTPS) でなければなりません。</li> + <li><strong><code>__Host-</code> の接頭辞</strong>{{non-standard_inline}}: <code>__Host-</code> で始まるクッキー名は、 <code>secure</code> フラグを設定し、安全なページ (HTTPS) から読み込む必要があり、ドメインを指定することができず (従ってサブドメインにも送られません)、パスが <code>/</code> で終わる必要があります。</li> + </ul> + </dd> + <dt><code>Expires=<date></code> {{optional_inline}}</dt> + <dd> + <p>クッキーの有効期限で、 HTTP の日時タイムスタンプです。詳細な書式は {{HTTPHeader("Date")}} を参照してください。</p> + + <p>指定されなかった場合は、クッキーは<strong>セッションクッキー</strong>の寿命になります。セッションはクライアントが終了したときに終了するので、セッションクッキーはその時点で削除されます。</p> + + <div class="blockIndicator warning"> + <p><strong>警告:</strong> 多くのウェブブラウザーはセッション復元と呼ばれる機能を持っており、これによってすべてのタブを保存し、次回ブラウザーを起動したときに復元することができます。ブラウザーを実際には閉じていないかのように、セッションクッキーも復元されます。</p> + </div> + + <p>有効期限が設定されていた場合、期限はサーバーではなく、クッキーが設定されているクライアントからの相対時刻で設定されます。</p> + </dd> + <dt><code>Max-Age=<number> </code>{{optional_inline}}</dt> + <dd>クッキーの期限までの秒数です。ゼロまたは負の数値の場合は、クッキーは直ちに期限切れになります。 <code>Expires</code> および <code>Max-Age</code> の両方が設定されていたら、 <code>Max-Age</code> が優先されます。</dd> + <dt><code>Domain=<domain-value></code> {{optional_inline}}</dt> + <dd>クッキーを送信する先のホストです。 + <ul> + <li>指定されなかった場合は、既定で現在の文書の URL におけるホスト名の部分になり、サブドメインを含みません。</li> + <li>初期の仕様書とは逆に、ドメイン名の前のドット (<code>.example.com</code>) は無視されます。</li> + <li>複数のホストやドメインの値を指定することは<em>できません</em>が、ドメイン<em>が</em>指定された場合、すべてのサブドメインが常に含まれます。</li> + </ul> + </dd> + <dt><code>Path=<path-value></code> {{optional_inline}}</dt> + <dd>リクエストの URL に含まれるべきパスです。含まれていないと、ブラウザーは <code>Cookie</code> ヘッダーを送信しません。</dd> + <dd>スラッシュ ("/") の文字はディレクトリ区切りとして解釈され、サブディレクトリも同様に一致します (例えば <code>Path=/docs</code> であれば、 <code>/docs</code>, <code>/docs/Web/</code>, <code>/docs/Web/HTTP</code> はすべて一致します)。</dd> + <dt id="Secure"><code>Secure</code> {{optional_inline}}</dt> + <dd>セキュアクッキーは、リクエストが SSL と HTTPS プロトコルを使用して行われた場合にのみサーバーに送信されます。ただし HTTP クッキーは、例えば情報が暗号化されないなど、安全ではない仕組みを継承しているので、機密な情報や敏感な情報を転送したり格納したりしないようにしてください。 + <p class="note"><strong>メモ:</strong> 安全ではないサイト (<code>http:</code>) は <code>Secure</code> ディレクティブを付けてクッキーを設定することができなくなりました (Chrome 52 以降および Firefox 52 以降の新機能).</p> + </dd> + <dt id="HttpOnly"><code>HttpOnly</code> {{optional_inline}}</dt> + <dd>JavaScript が {{domxref("Document.cookie")}} プロパティなどを介してこのクッキーにアクセスすることを禁止します。HttpOnly で作成されたクッキーは、JavaScript で開始されたリクエスト、例えば、 {{domxref("XMLHttpRequest.send()")}} や {{domxref("fetch()")}} と共に送信されます。これにより、クロスサイトスクリプティング ({{Glossary("XSS")}}) の攻撃を軽減します。</dd> + <dt><code>SameSite=<samesite-value></code> {{optional_inline}}</dt> + <dd> + <ul> + <li><code>Strict</code>: ブラウザは same-site のリクエスト(つまり、クッキーを設定したのと同じサイトから発信されたリクエスト)に対してのみクッキーを送信します。リクエストが現在のURLとは異なるURLから発生した場合、<code>SameSite=Strict</code> 属性を持つクッキーは送信されません。</li> + <li><code>Lax</code>: 画像やフレームをロードするための呼び出しなどのクロスサイトサブリクエストではクッキーが抑止されますが、ユーザーがリンクをクリックするなどして外部サイトからURLに移動すると送信されます。</li> + <li><code>None</code>: ブラウザはクロスサイトと same-site の両方のリクエストでクッキーを送信します。</li> + </ul> + + <p>クッキーがオリジン間リクエストで送信されないことを主張することで、クロスサイトリクエストフォージェリ攻撃 ({{Glossary("CSRF")}}) に対していくらか防御することができます。</p> + + <p class="note">ブラウザーは <a href="https://www.chromestatus.com/feature/5088147346030592">クッキーに <code>SameSite=Lax</code> の既定値</a>を持たせるよう移行しつつあります。オリジンをまたいでクッキーを送信する必要がある場合、 <code>None</code> ディレクティブを用いて SameSite の制約を外してください。 <code>None</code> ディレクティブは <a href="#Secure"><code>Secure</code></a> 属性を必要とします。</p> + </dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Session_cookie" name="Session_cookie">セッションクッキー</h3> + +<p><strong>セッションクッキー</strong>はクライアントが終了したときに削除されます。 <code>Expires</code> や <code>Max-Age</code> ディレクティブを指定しないとクッキーはセッションクッキーになります。</p> + +<pre class="notranslate">Set-Cookie: sessionId=38afes7a8</pre> + +<h3 id="Permanent_cookie" name="Permanent_cookie">永続的クッキー</h3> + +<p><strong>永続的クッキー</strong>は、クライアントが終了したときに期限切れにならず、特定の期限 (<code>Expires</code>) または特定の時間が過ぎた後 (<code>Max-Age</code>) に期限切れになります。</p> + +<pre class="notranslate">Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT +</pre> + +<pre class="notranslate">Set-Cookie: id=a3fWa; Max-Age=2592000</pre> + +<h3 id="Invalid_domains" name="Invalid_domains">不正なドメイン</h3> + +<p>オリジンのサーバーを含まないドメインに所属するクッキーは、<a href="https://tools.ietf.org/html/rfc6265#section-4.1.2.3">ユーザーエージェントが拒否します</a>。</p> + +<p>次のクッキーは <code>originalcompany.com</code> でホストされたサーバーから設定しようとすると拒否されます。</p> + +<pre class="notranslate">Set-Cookie: qwerty=219ffwef9w0f; Domain=somecompany.co.uk</pre> + +<p>提供するドメインのサブドメインへのクッキーは拒否されます。</p> + +<p>以下のクッキーは、 <code>example.com</code> にホスティングされたサーバーからセットされた場合は拒否されます。</p> + +<pre class="notranslate">Set-Cookie: sessionId=e8bb43229de9; Domain=foo.example.com</pre> + +<h3 id="Cookie_prefixes" name="Cookie_prefixes">クッキーの接頭辞</h3> + +<p><code>__Secure-</code> または <code>__Host-</code> の接頭辞が付いたクッキー名は、安全な (HTTPS の) オリジンから <code>secure</code> ディレクティブを設定した場合のみ使用することができます。</p> + +<p>加えて、 <code>__Host-</code> の接頭辞が付いたクッキーは、 <code>/</code> (ホストの任意のパスという意味) を持つ必要があり、 <code>Domain</code> ディレクティブを持つことができません。</p> + +<div class="blockIndicator warning"> +<p>クッキーの接頭辞を実装していないクライアントでは、これらの保証を受けることができず、クッキーは常に受け入れられます。</p> +</div> + +<pre class="notranslate">// どちらも安全な (HTTPS の) オリジンから受け入れられます +Set-Cookie: __Secure-ID=123; Secure; Domain=example.com +Set-Cookie: __Host-ID=123; Secure; Path=/ + +// Secure ディレクティブが無いため、拒否されます +Set-Cookie: __Secure-id=1 + +// Path=/ ディレクティブが無いため、拒否されます +Set-Cookie: __Host-id=1; Secure + +// Domain を設定したため、拒否されます +Set-Cookie: __Host-id=1; Secure; Path=/; Domain=example.com +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("6265", "Set-Cookie", "4.1")}}</td> + <td>HTTP State Management Mechanism</td> + </tr> + <tr> + <td><a href="https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-02">draft-ietf-httpbis-rfc6265bis-02</a></td> + <td>Cookie Prefixes, Same-Site Cookies, and Strict Secure Cookies</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Set-Cookie")}}</p> + +<h2 id="Compatibility_notes" name="Compatibility_notes">互換性のメモ</h2> + +<ul> + <li>Chrome 52 および Firefox 52 以降、セキュリティで保護されていないサイト (<code>http:</code>) では、 "secure" ディレクティブ付きでクッキーを設定することはできなくなりました。</li> +</ul> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="/ja/docs/Web/HTTP/Cookies">HTTP クッキー</a></li> + <li>{{HTTPHeader("Cookie")}}</li> + <li>{{domxref("Document.cookie")}}</li> +</ul> diff --git a/files/ja/web/http/headers/set-cookie/samesite/index.html b/files/ja/web/http/headers/set-cookie/samesite/index.html new file mode 100644 index 0000000000..1a5dcf3310 --- /dev/null +++ b/files/ja/web/http/headers/set-cookie/samesite/index.html @@ -0,0 +1,119 @@ +--- +title: SameSite cookies +slug: Web/HTTP/Headers/Set-Cookie/SameSite +tags: + - Cookies + - HTTP + - Reference + - samesite +translation_of: Web/HTTP/Headers/Set-Cookie/SameSite +--- +<div>{{HTTPSidebar}}</div> + +<p><span class="seoSummary">{{HTTPHeader("Set-Cookie")}} HTTP レスポンスヘッダーの <strong><code>SameSite</code></strong> 属性を使用すると、Cookie をファーストパーティまたは同じサイトのコンテキストに制限するかどうかを宣言できます。</span></p> + +<h2 id="値">値</h2> + +<p><code>SameSite</code> 属性は3つの値をとります。</p> + +<h3 id="Lax"><code>Lax</code></h3> + +<p>Cookie はトップレベルナビゲーションで送信することが許可されており、サードパーティの Web サイトによって開始された GET リクエストとともに送信されます。これは、モダンブラウザのデフォルト値です。</p> + +<h3 id="Strict"><code>Strict</code></h3> + +<p>Cookie はファーストパーティのコンテキストでのみ送信され、サードパーティの Web サイトによって開始されたリクエストと一緒に送信されることはありません。</p> + +<h3 id="None"><code>None</code></h3> + +<p>Cookie はすべてのコンテキストで送信されます。つまり、クロスオリジンの送信が許可されます。</p> + +<p><code>None</code> はデフォルト値でしたが、最近のブラウザバージョンでは、<code>Lax</code> をデフォルト値にして、クロスサイトリクエストフォージェリ ({{Glossary("CSRF")}}) 攻撃のクラスに対して適度に堅牢な防御を提供しました。</p> + +<p><code>None</code> では、最新バージョンのブラウザで <a href="#Secure"><code>Secure</code></a> 属性が必要です。詳細については、以下を参照してください。</p> + +<h2 id="一般的な警告の修正">一般的な警告の修正</h2> + +<h3 id="SameSiteNone_requires_Secure"><code>SameSite=None</code> requires <code>Secure</code></h3> + +<p>次の警告がコンソールに表示される場合があります。</p> + +<blockquote> +<p>Some cookies are misusing the “sameSite“ attribute, so it won’t work as expected.<br> + Cookie “<em>myCookie</em>” rejected because it has the “sameSite=none” attribute but is missing the “secure” attribute.</p> +</blockquote> + +<p><code>SameSite=None</code> を要求するが <code>Secure</code> とマークされていない Cookie は拒否されるため、警告が表示されます。</p> + +<pre class="example-bad notranslate">Set-Cookie: flavor=choco; SameSite=None</pre> + +<p>これを修正するには、<code>SameSite=None</code> Cookie に <code>Secure</code> 属性を追加する必要があります。</p> + +<pre class="example-good notranslate">Set-Cookie: flavor=choco; SameSite=None; <strong>Secure</strong></pre> + +<p><a href="#Secure"><code>Secure</code></a> Cookie は、HTTPS プロトコルを介した暗号化されたリクエストでのみサーバーに送信されます。安全でないサイト (<code>http:</code>) は <code>Secure</code> ディレクティブで Cookie を設定できないことに注意してください。</p> + +<h3 id="Cookies_without_SameSite_default_to_SameSiteLax">Cookies without <code>SameSite</code> default to <code>SameSite=Lax</code></h3> + +<p>モダンブラウザの最近のバージョンでは、デフォルトで <code>SameSite</code> がより安全に Cookie に提供されているため、次のメッセージがコンソールに表示される場合があります。</p> + +<blockquote> +<p>Some cookies are misusing the “sameSite“ attribute, so it won’t work as expected.<br> + Cookie “<em>myCookie</em>” has “sameSite” policy set to “lax” because it is missing a “sameSite” attribute, and “sameSite=lax” is the default value for this attribute.</p> +</blockquote> + +<p>Cookie の <code>SameSite</code> ポリシーが明示的に指定されていないため、警告が表示されます。</p> + +<pre class="example-bad notranslate">Set-Cookie: flavor=choco</pre> + +<p>モダンブラウザを使用して <code>SameSite=Lax</code> を自動的に適用することもできますが、明示的に指定して、Cookie に適用される <code>SameSite</code> ポリシーの意図を明確に伝える必要があります。すべてのブラウザのデフォルトがまだ <code>Lax</code> であるわけではないため、これによりブラウザ全体のエクスペリエンスも向上します。</p> + +<pre class="example-good notranslate">Set-Cookie: flavor=choco; <strong>SameSite=Lax</strong></pre> + +<h2 id="例"><strong>例:</strong></h2> + +<pre class="notranslate">RewriteEngine on +RewriteBase "/" +RewriteCond "%{HTTP_HOST}" "^example\.org$" [NC] +RewriteRule "^(.*)" "https://www.example.org/index.html" [R=301,L,QSA] +RewriteRule "^(.*)\.ht$" "index.php?nav=$1 [NC,L,QSA,CO=RewriteRule:01:https://www.example.org:30/:SameSite=None:Secure] +RewriteRule "^(.*)\.htm$" "index.php?nav=$1 [NC,L,QSA,CO=RewriteRule:02:https://www.example.org:30/:SameSite=None:Secure] +RewriteRule "^(.*)\.html$" "index.php?nav=$1 [NC,L,QSA,CO=RewriteRule:03:https://www.example.org:30/:SameSite=None:Secure] +[...] +RewriteRule "^admin/(.*)\.html$" "admin/index.php?nav=$1 [NC,L,QSA,CO=RewriteRule:09:https://www.example.org:30/:SameSite=Strict:Secure] +</pre> + +<h2 id="仕様">仕様</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">タイトル</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("6265", "Set-Cookie", "4.1")}}</td> + <td>HTTP 状態管理メカニズム</td> + </tr> + <tr> + <td><a href="https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-05">draft-ietf-httpbis-rfc6265bis-05</a></td> + <td>Cookie プレフィックス、同一サイト Cookie、および厳格なセキュア Cookie</td> + </tr> + </tbody> +</table> + +<h2 id="ブラウザの互換性">ブラウザの互換性</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Set-Cookie", 5)}}</p> + +<h2 id="あわせて参照">あわせて参照</h2> + +<ul> + <li><a href="/ja/docs/Web/HTTP/Cookies">HTTP cookies</a></li> + <li>{{HTTPHeader("Cookie")}}</li> + <li>{{domxref("Document.cookie")}}</li> +</ul> diff --git a/files/ja/web/http/headers/set-cookie2/index.html b/files/ja/web/http/headers/set-cookie2/index.html new file mode 100644 index 0000000000..4375cc7850 --- /dev/null +++ b/files/ja/web/http/headers/set-cookie2/index.html @@ -0,0 +1,75 @@ +--- +title: Set-Cookie2 +slug: Web/HTTP/Headers/Set-Cookie2 +tags: + - Cookies + - HTTP + - Obsolete + - ヘッダー + - リファレンス +translation_of: Web/HTTP/Headers/Set-Cookie2 +--- +<p>{{HTTPSidebar}} {{obsolete_header}}</p> + +<p>サーバーからユーザーエージェントにCookieを送信するために使用された古い <strong><code>Set-Cookie2</code></strong> HTTP レスポンスヘッダーですが、仕様で廃止されました。代わりに {{HTTPHeader("Set-Cookie")}} を使用してください。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダータイプ</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="構文">構文</h2> + +<pre class="syntaxbox">Set-Cookie2: <cookie-name>=<cookie-value> +Set-Cookie2: <cookie-name>=<cookie-value>; Comment=<value> +Set-Cookie2: <cookie-name>=<cookie-value>; CommentURL=<http-url> +Set-Cookie2: <cookie-name>=<cookie-value>; Discard +Set-Cookie2: <cookie-name>=<cookie-value>; Domain=<domain-value> +Set-Cookie2: <cookie-name>=<cookie-value>; Max-Age=<non-zero-digit> +Set-Cookie2: <cookie-name>=<cookie-value>; Path=<path-value> +Set-Cookie2: <cookie-name>=<cookie-value>; Port=<port-number> +Set-Cookie2: <cookie-name>=<cookie-value>; Secure +Set-Cookie2: <cookie-name>=<cookie-value>; Version=<version-number> + +// Multiple directives are also possible, for example: +Set-Cookie2: <cookie-name>=<cookie-value>; Domain=<domain-value>; Secure + +// Multiple cookies are seperated by a comma +Set-Cookie2: <cookie-name>=<cookie-value>, <cookie-name>=<cookie-value>, ... +</pre> + +<h2 id="仕様">仕様</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様書</th> + <th scope="col">タイトル</th> + </tr> + <tr> + <td>{{RFC("2965", "Set-Cookie2")}}</td> + <td>Historic specification of HTTP State Management Mechanism, obsoleted by {{RFC("6265")}}</td> + </tr> + </tbody> +</table> + +<h2 id="ブラウザの互換性">ブラウザの互換性</h2> + +<p class="hidden">このページの互換表は構造化データから生成されます。データに貢献したい場合は <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックし、プルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Set-Cookie2")}}</p> + +<h2 id="関連情報">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Set-Cookie")}}</li> + <li>{{domxref("Document.cookie")}}</li> +</ul> diff --git a/files/ja/web/http/headers/sourcemap/index.html b/files/ja/web/http/headers/sourcemap/index.html new file mode 100644 index 0000000000..cab7efca74 --- /dev/null +++ b/files/ja/web/http/headers/sourcemap/index.html @@ -0,0 +1,71 @@ +--- +title: SourceMap +slug: Web/HTTP/Headers/SourceMap +tags: + - HTTP + - HTTP ヘッダー + - ヘッダー + - リファレンス + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/SourceMap +--- +<p>{{HTTPSidebar}}</p> + +<p><strong><code>SourceMap</code></strong> <a href="/ja/docs/Web/HTTP">HTTP</a> レスポンスヘッダーは、生成されたコードを<a href="/ja/docs/Tools/Debugger/How_to/Use_a_source_map">ソースマップ</a>にリンクし、ブラウザが元のソースを再構成し、再構成されたオリジナルをデバッガに提示できるようにします。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダータイプ</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="構文">構文</h2> + +<pre class="syntaxbox">SourceMap: <url> +X-SourceMap: <url> (deprecated) +</pre> + +<h3 id="ディレクティブ">ディレクティブ</h3> + +<dl> + <dt><code><url></code></dt> + <dd>(リクエスト URL に対する) 相対パスまたはソースマップファイルを指す絶対 URL</dd> +</dl> + +<h2 id="例">例</h2> + +<pre>SourceMap: /path/to/file.js.map</pre> + +<h2 id="仕様">仕様</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様書</th> + <th scope="col">タイトル</th> + </tr> + <tr> + <td><a href="https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k">Draft document</a></td> + <td>Source Map Revision 3 Proposal</td> + </tr> + </tbody> +</table> + +<h2 id="ブラウザの互換性">ブラウザの互換性</h2> + +<p class="hidden">このページの互換表は構造化データから生成されます。データに貢献したい場合は <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックし、プルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.SourceMap")}}</p> + +<h2 id="関連情報">関連情報</h2> + +<ul> + <li><a href="/en-US/docs/Tools/Debugger/How_to/Use_a_source_map">Firefox Developer Tools: using a source map</a></li> +</ul> diff --git a/files/ja/web/http/headers/strict-transport-security/index.html b/files/ja/web/http/headers/strict-transport-security/index.html new file mode 100644 index 0000000000..7a69b31fc8 --- /dev/null +++ b/files/ja/web/http/headers/strict-transport-security/index.html @@ -0,0 +1,123 @@ +--- +title: Strict-Transport-Security +slug: Web/HTTP/Headers/Strict-Transport-Security +tags: + - HSTS + - HTTP + - HTTPS + - セキュリティ + - ヘッダー + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/Strict-Transport-Security +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の <strong><code>Strict-Transport-Security</code></strong> レスポンスヘッダー (しばしば {{Glossary("HSTS")}} と略されます) は、ウェブサイトがブラウザーに HTTP の代わりに HTTPS を用いて通信を行うよう指示するためのものです。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Strict-Transport-Security: max-age=<expire-time> +Strict-Transport-Security: max-age=<expire-time>; includeSubDomains +Strict-Transport-Security: max-age=<expire-time>; preload +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code>max-age=<expire-time></code></dt> + <dd>秒単位で、そのサイトに HTTPS だけで接続することをブラウザーが記憶する時間です。</dd> + <dt><code>includeSubDomains</code> {{optional_inline}}</dt> + <dd>省略可能で、この引数が指定されると、この規則がサイトのすべてのサブドメインにも適用されます。</dd> + <dt><code>preload</code> {{optional_inline}}</dt> + <dd>詳しくは {{anch("Preloading Strict Transport Security", "Strict Transport Security のプリロード")}} を参照してください。仕様書で定義されているものではありません。</dd> +</dl> + +<h2 id="Description" name="Description">解説</h2> + +<p>もし、訪問者が http://www.foo.com/ または単に foo.com と入力したとき、ウェブサイトが接続を HTTP で受け付け、 HTTPS にリダイレクトするようになっていると、訪問者はリダイレクトされる前にまず、暗号化されないバージョンのサイトと通信する可能性があります。これは中間者攻撃の機会を作ってしまいます。リダイレクトは訪問者を、本来のサイトの安全なバージョンではなく、悪意のあるサイトに導くために利用される可能性があるからです。</p> + +<p>HTTP の Strict Transport Security ヘッダーは、ブラウザーに対してサイトを HTTP を使用して読み込まず、サイトへのすべてのアクセスを、自動的に HTTP から HTTPS リクエストに変換するよう指示することができます。</p> + +<div class="note"><strong>メモ:</strong> サイトに HTTP を使用してアクセスしたとき、ブラウザーは <code>Strict-Transport-Security</code> ヘッダーを無視します。これは攻撃者が HTTP 接続に介入して、ヘッダーを挿入したり削除したりするかもしれないからです。ウェブサイトに HTTPS でアクセスして、証明書のエラーがない場合、ブラウザーはサイトが HTTPS でアクセスできることを知り、 <code>Strict-Transport-Security</code> ヘッダーを信用します。</div> + +<h3 id="An_example_scenario" name="An_example_scenario">事例</h3> + +<p>あなたが、空港で無料の Wi-Fi アクセスポイントにログインしてウェブの利用を開始し、オンラインバンキングサービスで残高の確認や取引を行ったとします。しかし不運にも、あなたが使用したアクセスポイントはハッカーのノートパソコンであり、そのハッカーはあなたの HTTP リクエストを傍受して、本物の銀行のサイトではなく偽のサイトへリダイレクトしたとします。こうなると、あなたの個人情報はハッカーにさらされてしまいます。</p> + +<p>Strict Transport Security はこの問題を解決します。いったん銀行のウェブサイトへ HTTPS でアクセスすれば、そして銀行のウェブサイトが Strict Transport Security を利用していれば、ブラウザーは自動的に HTTPS のみを用いるよう理解して、ハッカーによるこの種の中間者攻撃の実行を防ぎます。</p> + +<h3 id="How_the_browser_handles_it" name="How_the_browser_handles_it">ブラウザーでの扱い</h3> + +<p>最初にサイトに HTTPS でアクセスして <code>Strict-Transport-Security</code> ヘッダーが返されると、ブラウザーはこの情報を記録し、以降は HTTP を使用してサイトを読み込みもうとすると、自動的に HTTPS を使用するようになります。</p> + +<p>Strict-Transport-Security ヘッダーで指定された有効期限が経過すると、次回は自動的に HTTPS を使用するのではなく、通常通りに HTTP でサイトを読み込もうとします。</p> + +<p>なお、 Strict-Transport-Security ヘッダーがブラウザーへ送られるたびに、そのウェブサイトに対する有効期限が更新されるので、サイトはこの情報を更新して期限切れを防ぐことができます。 Strict-Transport-Security を無効にする必要がある場合は、 HTTPS 通信時に max-age の値を 0 に設定することで <code>Strict-Transport-Security</code> ヘッダーが失効し、ブラウザーからの HTTP 接続が許されるようになります。</p> + +<h2 id="Preloading_Strict_Transport_Security" name="Preloading_Strict_Transport_Security">Strict Transport Security のプリロード</h2> + +<p>Google は <a href="https://hstspreload.org/">HSTS 先読みサービス</a> を行っています。ガイドラインに従ってドメインを登録すれば、ブラウザーはドメインに安全ではない接続を行わないようになります。サービスは Google によって運営されており、すべてのブラウザーが先読みリストを使用する意志を示しています (または既に使用を始めています)。但し、これは HSTS 仕様書にあるものではなく、公式なものとして扱うべきではありません。</p> + +<ul> + <li>Chrome が実装している HSTS 先読みリストに関する情報 : <a href="https://www.chromium.org/hsts">https://www.chromium.org/hsts</a></li> + <li>Firefox が実装している HSTS 先読みリストに関する参照 : <a href="https://hg.mozilla.org/mozilla-central/raw-file/tip/security/manager/ssl/nsSTSPreloadList.inc">nsSTSPreloadList.inc</a></li> +</ul> + +<h2 id="Examples" name="Examples">例</h2> + +<p>既存および将来のすべてのサブドメインで、1年間を期限として HTTPS を使用する設定です。これは HTTP のみで提供できるページやサブドメインへのアクセスをブロックします。</p> + +<pre class="notranslate">Strict-Transport-Security: max-age=31536000; includeSubDomains</pre> + +<p>以下の例では、 <code>max-age</code> は前回の1年間を期限とする <code>max-age</code> を延長して2年間に設定します。なお、1年間はブラウザーの HSTS 先読みリストに含まれるドメインで有効です。しかし、2年間は <a href="https://hstspreload.org">https://hstspreload.org</a> で説明されているとおり、ウェブサイトの最終的な HSTS 設定のゴールとして推奨されています。また、最後の <code>preload</code> は Chromium, Edge, Firefox などの主要なブラウザーの HSTS 先読みリストで必要です。</p> + +<pre class="notranslate">Strict-Transport-Security: max-age=63072000; includeSubDomains; preload</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HSTS')}}</td> + <td>{{Spec2('HSTS')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Strict-Transport-Security")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>ブログ記事: <a class="external" href="http://blog.sidstamm.com/2010/08/http-strict-transport-security-has.html">HTTP Strict Transport Security has landed!</a></li> + <li>ブログ記事: <a class="external" href="http://hacks.mozilla.org/2010/08/firefox-4-http-strict-transport-security-force-https/">HTTP Strict Transport Security (force HTTPS)</a></li> + <li>OWASP の記事: <a href="https://cheatsheetseries.owasp.org/cheatsheets/HTTP_Strict_Transport_Security_Cheat_Sheet.html">HTTP Strict Transport Security</a></li> + <li>Wikipedia: {{interwiki("wikipedia", "HTTP Strict Transport Security")}}</li> + <li>ブラウザー試験サイト: <a href="https://projects.dm.id.lv/Public-Key-Pins_test">HSTS and HPKP test</a></li> + <li><a href="/ja/docs/Web/Security/Secure_Contexts/features_restricted_to_secure_contexts">安全なコンテキストに制限されている機能</a></li> +</ul> diff --git a/files/ja/web/http/headers/timing-allow-origin/index.html b/files/ja/web/http/headers/timing-allow-origin/index.html new file mode 100644 index 0000000000..893970a421 --- /dev/null +++ b/files/ja/web/http/headers/timing-allow-origin/index.html @@ -0,0 +1,85 @@ +--- +title: Timing-Allow-Origin +slug: Web/HTTP/Headers/Timing-Allow-Origin +tags: + - CORS + - HTTP + - Reference + - Timing-Allow-Origin + - header +translation_of: Web/HTTP/Headers/Timing-Allow-Origin +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Timing-Allow-Origin</code></strong> レスポンスヘッダーは、 <a href="/ja/docs/Web/API/Resource_Timing_API">Resource Timing API</a> の機能を介して取得された属性の値の表示を許可されているオリジンを指定します。そうでない場合、クロスオリジンの制限によりゼロとして報告されます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Timing-Allow-Origin: * +Timing-Allow-Origin: <origin>[, <origin>]* +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code>*</code></dt> + <dd>サーバーはワイルドカードとして "*" を指定することができ、それによって全てのオリジンがタイミングリソースを見ることができます。</dd> + <dt><code><origin></code></dt> + <dd>タイミングリソースを表示できる URI を指定します。 複数のオリジンをカンマ区切りで指定できます。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<p>リソースがタイミングリソースを表示できるようにする場合。</p> + +<pre class="notranslate">Timing-Allow-Origin: *</pre> + +<p><code>https://developer.mozilla.org</code> がタイミングリソースを表示できるようにするには、次のように指定できます。</p> + +<pre class="notranslate">Timing-Allow-Origin: https://developer.mozilla.org</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Resource Timing 3', '#sec-timing-allow-origin', 'Timing-Allow-Origin')}}</td> + <td>{{Spec2("Resource Timing 3")}}</td> + <td>Initial definition.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Timing-Allow-Origin")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="/ja/docs/Web/API/Resource_Timing_API">Resource Timing API</a></li> + <li><a href="/ja/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API">Resource Timing API の使用</a></li> + <li>{{HTTPHeader("Vary")}}</li> +</ul> diff --git a/files/ja/web/http/headers/tk/index.html b/files/ja/web/http/headers/tk/index.html new file mode 100644 index 0000000000..6335a9169a --- /dev/null +++ b/files/ja/web/http/headers/tk/index.html @@ -0,0 +1,103 @@ +--- +title: Tk +slug: Web/HTTP/Headers/Tk +tags: + - DNT + - HTTP + - ヘッダー + - リファレンス + - レスポンス + - レスポンスヘッダー + - 追跡 +translation_of: Web/HTTP/Headers/Tk +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Tk</code></strong> 応答ヘッダーは、該当する要求に適用される追跡状態を示します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "応答ヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Tk: ! (工事中) +Tk: ? (動的) +Tk: G (ゲートウェイ又は複数の関係者) +Tk: N (追跡なし) +Tk: T (追跡中) +Tk: C (同意済みの追跡中) +Tk: P (潜在的な同意) +Tk: D (DNT を無視) +Tk: U (更新済み) +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt>!</dt> + <dd>工事中。オリジンのサーバーは現在の追跡状態の通信のテストを行っています。</dd> + <dt>?</dt> + <dd>動的。オリジンのサーバーは追跡状態を特定するために追加情報が必要です。</dd> + <dt>G</dt> + <dd>ゲートウェイ又は複数の関係者。サーバーは、複数の関係者が関わる交換のゲートウェイとして機能しています。</dd> + <dt>N</dt> + <dd>追跡なし。</dd> + <dt>T</dt> + <dd>追跡中。</dd> + <dt>C</dt> + <dd>同意済みの追跡中。オリジンのサーバーは、このユーザー、ユーザーエージェント、機器が追跡に関する事前の同意を得ていると考えています。</dd> + <dt>P</dt> + <dd>潜在的な同意。オリジンのサーバーは、このユーザー、ユーザーエージェント、機器を追跡するための事前の同意をリアルタイムで受け取ったかどうかを知りませんが、そのような同意が確定するまで <code>DNT:1</code> データを使用または共有しないことを約束します。 そのような同意が受領されていない <code>DNT:1</code> データを48時間以内に削除または永久に匿名化することを約束します。</dd> + <dt>D</dt> + <dd>DNT を無視。オリジンのサーバーは、要求しているユーザーエージェントから受信した追跡設定を尊重することができないか、またはそうしたくない。</dd> + <dt>U</dt> + <dd>更新済み。この要求により、このユーザー、ユーザーエージェント、機器に適用可能な追跡状態が変更される可能性があります。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<p>追跡しないように宣言しているリソースへの <code>Tk</code> ヘッダーは次のようになります。</p> + +<pre>Tk: N</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Tracking','#Tk-header-defn', 'Tk header field')}}</td> + <td>{{Spec2("Tracking")}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力したいのであれば、 <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Tk")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("DNT")}} ヘッダー</li> + <li>{{domxref("Navigator.doNotTrack")}}</li> +</ul> diff --git a/files/ja/web/http/headers/transfer-encoding/index.html b/files/ja/web/http/headers/transfer-encoding/index.html new file mode 100644 index 0000000000..4dbace4204 --- /dev/null +++ b/files/ja/web/http/headers/transfer-encoding/index.html @@ -0,0 +1,113 @@ +--- +title: Transfer-Encoding +slug: Web/HTTP/Headers/Transfer-Encoding +tags: + - HTTP + - Reference + - ヘッダー + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/Transfer-Encoding +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Transfer-Encoding</code></strong> ヘッダーは、{{Glossary("Payload body","ペイロード本文")}}をユーザーに安全に転送するために使われる符号化方式を指定します。</p> + +<div class="note"><a href="https://wikipedia.org/wiki/HTTP/2">HTTP/2</a> は HTTP 1.1 のチャンク化した転送エンコードの仕組みに対応しておらず、新規にもっと効率的な、データストリーミングの仕組みを提供しています。</div> + +<p><code>Transfer-Encoding</code> は<a href="/ja/docs/Web/HTTP/Headers#hbh">ホップバイホップヘッダー</a>であり、リソース自体ではなく、二つのノード間のメッセージに適用されます。複数ノードコネクションのそれぞれの区間は、異なる <code>Transfer-Encoding</code> の値を使用することがあります。コネクション全体を通してデータを圧縮したい場合は、代わりにエンドトゥエンドの {{HTTPHeader("Content-Encoding")}} ヘッダーを使用してください。</p> + +<p>本文のない {{HTTPMethod("HEAD")}} リクエストに対するレスポンスで使われたときは、対応する {{HTTPMethod("GET")}} メッセージに適用されるであろう値を示します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>はい</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Transfer-Encoding: chunked +Transfer-Encoding: compress +Transfer-Encoding: deflate +Transfer-Encoding: gzip +Transfer-Encoding: identity + +<em>// コンマで区切って複数の値を並べることができます</em> +Transfer-Encoding: gzip, chunked</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code>chunked</code></dt> + <dd>データはチャンク (塊) の連続で送られます。この場合は {{HTTPHeader("Content-Length")}} ヘッダーが省略されます。それぞれのチャンクの先頭に現在のチャンクの長さを16進数の形式で追加し、その後で '<code>\r\n</code>' が続き、チャンク自体ももう一つの '<code>\r\n</code>' が続きます。最後のチャンクは通常のチャンクですが、長さが0であるという点が異なります。この後に、一連のエンティティのヘッダーフィールド (おそらく空) から成るトレイラーが続きます。</dd> + <dt><code>compress</code></dt> + <dd><a class="external" href="http://en.wikipedia.org/wiki/LZW">Lempel-Ziv-Welch</a> (LZW) アルゴリズムを使用した形式です。この値の名前はこのアルゴリズムを実装している UNIX の <em>compress</em> プログラムから採られました。<br> + 特許問題 (2003年に期限切れ) の影響もあり、多くの UNIX ディストリビューションから compress プログラムが消滅したように、今日ではこのコンテンツ符号化方式を使用しているブラウザーはほとんどありません。</dd> + <dt><code>deflate</code></dt> + <dd><a class="external" href="http://en.wikipedia.org/wiki/Zlib">zlib</a> 構造体 (<a class="external" href="http://tools.ietf.org/html/rfc1950">RFC 1950</a> で定義) と <a class="external" href="http://en.wikipedia.org/wiki/DEFLATE"><em>deflate</em></a> 圧縮アルゴリズム (<a class="external" href="http://tools.ietf.org/html/rfc1952">RFC 1951</a> で定義) を使用します。</dd> + <dt><code>gzip</code></dt> + <dd><a class="external" href="http://en.wikipedia.org/wiki/LZ77_and_LZ78#LZ77">Lempel-Ziv coding</a> (LZ77) と32ビット CRC を使用する形式です。これは元は UNIX の <em>gzip</em> プログラムの形式です。 HTTP/1.1 標準は、互換性のために、このコンテンツ符号化方式の別名として<code>x-gzip</code> を解釈することにサーバーが対応することを推奨しています。</dd> + <dt><code>identity</code></dt> + <dd>恒等写像 (つまり、圧縮なし、変更なし) であることを示します。このトークンは、特に明示された場合は、常に受け付けられるとみなされます。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Chunked_encoding" name="Chunked_encoding">チャンク化の符号化</h3> + +<p>チャンク化の符号化は、大量のデータをクライアントに送り、リクエストが完了するまでレスポンスの合計の長さが分からない場合に便利です。例えば、巨大な HTML の表をデータベースのクエリの結果として作成したり、大きな画像を転送したりする場合などです。チャンク化されたレスポンスは以下のようになります。</p> + +<pre>HTTP/1.1 200 OK +Content-Type: text/plain +Transfer-Encoding: chunked + +7\r\n +Mozilla\r\n +9\r\n +Developer\r\n +7\r\n +Network\r\n +0\r\n +\r\n</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7230", "Transfer-Encoding", "3.3.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Transfer-Encoding")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Accept-Encoding")}}</li> + <li>{{HTTPHeader("Content-Encoding")}}</li> + <li>{{HTTPHeader("Content-Length")}}</li> + <li>トレイラーの使用を制御するヘッダーフィールド: {{HTTPHeader("TE")}} (リクエスト) および {{HTTPHeader("Trailer")}} (レスポンス)</li> + <li> + <p><a href="https://en.wikipedia.org/wiki/Chunked_transfer_encoding">チャンク化された転送エンコーディング</a></p> + </li> +</ul> diff --git a/files/ja/web/http/headers/upgrade-insecure-requests/index.html b/files/ja/web/http/headers/upgrade-insecure-requests/index.html new file mode 100644 index 0000000000..944504ad3c --- /dev/null +++ b/files/ja/web/http/headers/upgrade-insecure-requests/index.html @@ -0,0 +1,75 @@ +--- +title: Upgrade-Insecure-Requests +slug: Web/HTTP/Headers/Upgrade-Insecure-Requests +tags: + - HTTP + - HTTPS + - Security + - header +translation_of: Web/HTTP/Headers/Upgrade-Insecure-Requests +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の <strong><code>Upgrade-Insecure-Requests</code></strong> リクエストヘッダーは、暗号化および認証されたレスポンスに対するクライアントの設定を表す信号をサーバーに送信し 、{{CSP("upgrade-insecure-requests")}} <a href="/ja/docs/Web/Security/CSP">CSP</a> ディレクティブを正常に処理できることを示します。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">Upgrade-Insecure-Requests: 1</pre> + +<h2 id="Examples" name="Examples">例</h2> + +<p>クライアントは、次のように {{CSP("upgrade-insecure-requests")}} のアップグレードメカニズムをサポートしていることをサーバーに通知します。</p> + +<pre class="notranslate">GET / HTTP/1.1 +Host: example.com +Upgrade-Insecure-Requests: 1</pre> + +<p>これで、サーバーは安全なバージョンのサイトにリダイレクトできます。 {{HTTPHeader("Vary")}} ヘッダーを使用することで、アップグレードメカニズムをサポートしていないクライアントにキャッシュからサイトが提供されなくなります。</p> + +<pre class="notranslate">Location: https://example.com/ +Vary: Upgrade-Insecure-Requests</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">コメント</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("Upgrade Insecure Requests", "#preference", "upgrade-insecure-requests")}}</td> + <td>{{Spec2('Upgrade Insecure Requests')}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.Upgrade-Insecure-Requests")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>CSP の {{CSP("upgrade-insecure-requests")}} ディレクティブ</li> +</ul> diff --git a/files/ja/web/http/headers/user-agent/firefox/index.html b/files/ja/web/http/headers/user-agent/firefox/index.html new file mode 100644 index 0000000000..c6ad156fc5 --- /dev/null +++ b/files/ja/web/http/headers/user-agent/firefox/index.html @@ -0,0 +1,473 @@ +--- +title: Firefox ユーザーエージェント文字列リファレンス +slug: Web/HTTP/Headers/User-Agent/Firefox +tags: + - Compatibility + - Firefox + - Firefox 4 + - Gecko + - Gecko 2.0 + - Guide + - User-agent + - 互換性 +translation_of: Web/HTTP/Headers/User-Agent/Firefox +--- +<div>{{HTTPSidebar}}</div> + +<p>この文書では、 Firefox 4 以降および <a href="/ja/docs/Mozilla/Gecko">Gecko</a> 2.0 以降ベースのアプリケーションで用いられるユーザーエージェント文字列について説明します。 Gecko 2.0 での変更点について詳しくは <a class="external" href="http://hacks.mozilla.org/2010/09/final-user-agent-string-for-firefox-4/">Final User Agent string for Firefox 4</a> (ブログ記事) をご覧ください。<a href="/ja/docs/Web/HTTP/Browser_detection_using_the_user_agent">ユーザーエージェントの検出</a>に関する文書や <a href="https://hacks.mozilla.org/2013/09/user-agent-detection-history-and-checklist/">Hacks の投稿</a>もご覧ください。</p> + +<h2 id="General_form" name="General_form">一般形</h2> + +<p>Firefox 自身のユーザーエージェント文字列は、4つの部分に分けられます。</p> + +<p><code>Mozilla/5.0 (<var>platform</var>; rv:<var>geckoversion</var>) Gecko/<var>geckotrail</var> Firefox/<var>firefoxversion</var></code></p> + +<ul> + <li><code>Mozilla/5.0</code> はブラウザーが Mozilla 互換であることを示す一般的なトークンであり、今日のほとんどすべてのブラウザーで共通しています。</li> + <li> + <p><code><var>platform</var></code> は、ブラウザーが動作しているネイティブプラットフォーム (例: Windows、Mac、Linux、または Android)、およびモバイル端末であるかを表します。 Firefox OS 端末は単に "<code>Mobile</code>" となり、ウェブがプラットフォームです。 <code><var>platform</var></code> は "; " (セミコロン) 区切りの複数トークンで構成されることがある点に注意してください。詳細や例については後述します。</p> + + <div class="blockIndicator note"> + <p>Firefox 69 で修正されましたが、以前の32ビット版の Firefox は64ビットプロセッサーで実行されている場合、システムが32ビット CPU であると報告していました。</p> + </div> + </li> + <li><code>rv:<var>geckoversion</var></code> は、Gecko のリリースバージョンを示します (例: "<code>17.0</code>")。最近のブラウザーでは <code><var>geckoversion</var></code> と <code><var>firefoxversion</var></code> が同じです。</li> + <li><code>Gecko/<var>geckotrail</var></code> は、ブラウザーが Gecko ベースであることを示します。</li> + <li>デスクトップ版では、 <code><var>geckotrail</var></code> は固定文字列 "<code>20100101</code>" です。</li> + <li><code>Firefox/<var>firefoxversion</var></code> はブラウザーが Firefox であることを示すとともに、バージョン番号を提供します (例: "<code>17.0</code>")。</li> + <li>{{gecko_minversion_inline("10.0")}} モバイル版は Firefox 10 より、 <code><var>geckotrail</var></code> と <code><var>firefoxversion</var></code> が同じです。</li> +</ul> + +<div class="note"><strong>メモ:</strong> Gecko ベースのブラウザー向けに推奨するスニッフィング法 (機能の検出を行う代わりにブラウザーエンジンのスニッフィングを<em>行わなければならない</em>場合) は、 "<code>Gecko</code>" および "<code>rv:</code>" の文字列が存在するかの検出です。これは、他ブラウザーの一部に "<code>like Gecko</code>" というトークンが含まれるためです。</div> + +<p>Gecko ベースの他製品では下記 2 つの形式のいずれかであり、各トークンの意味は以下に記載した内容を除いて同じです:</p> + +<p><code>Mozilla/5.0 (<var>platform</var>; rv:<var>geckoversion</var>) Gecko/<var>geckotrail</var> <var>appname</var>/<var>appversion</var></code><br> + <code>Mozilla/5.0 (<var>platform</var>; rv:<var>geckoversion</var>) Gecko/<var>geckotrail</var> Firefox/<var>firefoxversion</var> <var>appname</var>/<var>appversion</var></code></p> + +<ul> + <li><code><var>appname</var>/<var>appversion</var></code> は、アプリケーションの名称とバージョンを示します。例えばこれは、"<code>Camino/2.1.1</code>" や "<code>SeaMonkey/2.7.1</code>" となります。</li> + <li> + <p><code>Firefox/<var>firefoxversion</var></code> は、Firefox を想定する Web サイトと最大限の互換性を得るために一部の Gecko ベースのブラウザーが組み入れる場合がある、省略可能な互換性トークンです。 <code><var>firefoxversion</var></code> は一般的に、導入した Gecko のバージョンに相当する Firefox のリリースを表します。一部の Gecko ベースのブラウザーはこのトークンを使用しないかもしれません。従って、スニッフィングの際は Firefox ではなく Gecko を探してください! このトークンを表示するかは、<em>"general.useragent.compatMode.firefox"</em> という真偽値の設定項目で制御できます。</p> + </li> +</ul> + +<h2 id="Mobile_and_Tablet_indicators" name="Mobile_and_Tablet_indicators">モバイルおよびタブレットの標示</h2> + +<div class="note"> +<p>Firefox 11 以降のみです。</p> +</div> + +<p>UA 文字列で <code><var>platform</var></code> の部分は、 Firefox が携帯電話サイズまたはタブレットの機器で動作しているかを示します。携帯電話フォームファクターの機器で Firefox が動作している場合は、 <code>Mobile;</code> というトークンが UA 文字列で <code><var>platform</var></code> の部分に現れます。一方タブレット機器で Firefox が動作している場合は、 <code>Tablet;</code> というトークンが UA 文字列で <code><var>platform</var></code> の部分に現れます。例えば:</p> + +<pre>Mozilla/5.0 (Android 4.4; <strong>Mobile</strong>; rv:41.0) Gecko/41.0 Firefox/41.0 +Mozilla/5.0 (Android 4.4; <strong>Tablet</strong>; rv:41.0) Gecko/41.0 Firefox/41.0</pre> + +<div class="note">バージョン番号は重要ではありません。バージョン番号を基に判断しないでください。</div> + +<p>ある機器のフォームファクター向けのコンテンツを決めるために好ましい方法は、CSS メディアクエリの使用です。しかし機器のフォームファクターの対象コンテンツを決めるために UA スニッフィングを用いている場合は、携帯電話フォームファクターでは <strong>Mobi</strong> (Opera Mobile が "Mobile" ではなく "Mobi" と表記するため) を検索するようにして、"Android" と機器のフォームファクターに対応関連があるとは<strong>考えない</strong>ようにしてください。そうすることで Firefox を他の携帯電話やタブレットのオペレーティングシステム向けに公開した場合や Android がラップトップ PC に使用された場合でもコードが動作します。また、タッチ対応端末を検出するには "Mobi" や "Tablet" を検索するのではなく、タッチ機能を検出してください。タブレットではないタッチ対応端末の場合もあります。</p> + +<div class="note">Firefox OS 端末では、オペレーティングシステムを示す部分がない形式となります (例: "Mozilla/5.0 (Mobile; rv:15.0) Gecko/15.0 Firefox/15.0")。Web がプラットフォームです。</div> + +<h2 id="Windows" name="Windows">Windows</h2> + +<p>Windows のユーザーエージェントには以下のバリエーションがあり、その中で <em>x.y</em> は Windows NT のバージョンを表します (例えば、Windows NT 6.1)。</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Windows のバージョン</th> + <th scope="col">Gecko のユーザーエージェント文字列</th> + </tr> + </thead> + <tbody> + <tr> + <td>x86 CPU の Windows NT</td> + <td>Mozilla/5.0 (Windows NT <em>x</em>.<em>y</em>; rv:10.0) Gecko/20100101 Firefox/10.0</td> + </tr> + <tr> + <td>x64 CPU の Windows NT</td> + <td>Mozilla/5.0 (Windows NT <em>x</em>.<em>y</em>; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0</td> + </tr> + </tbody> +</table> + +<h2 id="Macintosh" name="Macintosh">Macintosh</h2> + +<p>ここで <em>x.y</em> は Mac OS X のバージョンを表します (例えば、Mac OS X 10.6)。</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Mac OS X のバージョン</th> + <th scope="col">Gecko のユーザーエージェント文字列</th> + </tr> + </thead> + <tbody> + <tr> + <td>Intel x86 または x86_64 環境の Mac OS X</td> + <td>Mozilla/5.0 (Macintosh; Intel Mac OS X <em>x.y</em>; rv:10.0) Gecko/20100101 Firefox/10.0</td> + </tr> + <tr> + <td>PowerPC 環境の Mac OS X</td> + <td>Mozilla/5.0 (Macintosh; PPC Mac OS X <em>x.y</em>; rv:10.0) Gecko/20100101 Firefox/10.0</td> + </tr> + </tbody> +</table> + +<h2 id="Linux" name="Linux">Linux</h2> + +<p>Linux には多様なプラットフォームが存在します。 Linux ディストリビューションによってはユーザーエージェント文字列を変更する拡張機能を含んでいることがあります。いくつかの一般的な例は以下のとおりです。</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Linux のバージョン</th> + <th scope="col">Gecko のユーザーエージェント文字列</th> + </tr> + </thead> + <tbody> + <tr> + <td>i686 CPU の Linux デスクトップ</td> + <td>Mozilla/5.0 (X11; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0</td> + </tr> + <tr> + <td>x86_64 CPU の Linux デスクトップ</td> + <td>Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0</td> + </tr> + <tr> + <td>Nokia N900 Linux モバイルの Fennec ブラウザー</td> + <td>Mozilla/5.0 (Maemo; Linux armv7l; rv:10.0) Gecko/20100101 Firefox/10.0 Fennec/10.0</td> + </tr> + </tbody> +</table> + +<h2 id="Android_version_40_and_below" name="Android_version_40_and_below">Android (バージョン 40 以下)</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">フォームファクター</th> + <th scope="col">Gecko のユーザーエージェント文字列</th> + </tr> + </thead> + <tbody> + <tr> + <td>携帯電話</td> + <td>Mozilla/5.0 (Android; Mobile; rv:40.0) Gecko/40.0 Firefox/40.0</td> + </tr> + <tr> + <td>タブレット</td> + <td>Mozilla/5.0 (Android; Tablet; rv:40.0) Gecko/40.0 Firefox/40.0</td> + </tr> + <tr> + </tr> + </tbody> +</table> + +<h2 id="Android_version_41_and_above" name="Android_version_41_and_above">Android (バージョン 41 以降)</h2> + +<p>バージョン 41 以降の Android 版 Firefox では <var>platform</var> トークンに Android バージョンが含まれます。相互運用性向上のため、 Android 4 以前のバージョンでブラウザーが動作している場合は 4.4 と出力します。 Android バージョン 4 以降では実際のバージョン番号が出力されます。なお、Gecko エンジンはすべての Android バージョンに対して同じ機能を提供しています。</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">フォームファクター</th> + <th scope="col">Gecko のユーザーエージェント文字列</th> + </tr> + </thead> + <tbody> + <tr> + <td>携帯電話</td> + <td>Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0</td> + </tr> + <tr> + <td>タブレット</td> + <td>Mozilla/5.0 (Android 4.4; Tablet; rv:41.0) Gecko/41.0 Firefox/41.0</td> + </tr> + </tbody> +</table> + +<h2 id="Focus_for_Android" name="Focus_for_Android">Focus for Android</h2> + +<p>バージョン1から、 Focus は Android WebView によって実現されており、以下のユーザーエージェント文字列書式を使用しています。</p> + +<pre>Mozilla/5.0 (Linux; <Android Version> <Build Tag etc.>) AppleWebKit/<WebKit Rev> (KHTML, like Gecko) Version/4.0 Focus/<focusversion> Chrome/<Chrome Rev> Mobile Safari/<WebKit Rev></pre> + +<p>タブレット版の WebView はモバイル版のミラーですが、 <code>Mobile</code> トークンを含みません。</p> + +<p>バージョン6から、ユーザーが GeckoView ベースの Focus for Android を隠し設定で選択できるようになっています。 Gecko との互換性を示すため、 GeckoView の UA 文字列を使用します。</p> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Focus Version (レンダリングエンジン)</th> + <th scope="col">ユーザーエージェント文字列</th> + </tr> + <tr> + <td>1.0 (WebView Mobile)</td> + <td>Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.0 Chrome/59.0.3029.83 Mobile Safari/537.36</td> + </tr> + <tr> + <td>1.0 (WebView Tablet)</td> + <td>Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.0 Chrome/59.0.3029.83 Safari/537.36</td> + </tr> + <tr> + <td>6.0 (GeckoView)</td> + <td>Mozilla/5.0 (Android 7.0; Mobile; rv:62.0) Gecko/62.0 Firefox/62.0</td> + </tr> + </tbody> +</table> + +<h2 id="Klar_for_Android">Klar for Android</h2> + +<p>バージョン 4.1 以降、 Klar for Android は <a href="#Focus_for_Android">Focus for Android</a> と同じ UA 文字列を使用します。バージョン 4.1 より前では、 <var>Klar/<version></var> <var>product/version</var> のトークンを送っていました。.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Klar バージョン (レンダリングエンジン)</th> + <th scope="col">iOS 版 Firefox のユーザーエージェント文字列</th> + </tr> + </thead> + <tbody> + <tr> + <td>1.0 (WebView)</td> + <td>Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Klar/1.0 Chrome/58.0.3029.83 Mobile Safari/537.36</td> + </tr> + <tr> + <td>4.1+ (WebView)</td> + <td>Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/4.1 Chrome/62.0.3029.83 Mobile Safari/537.36</td> + </tr> + <tr> + <td>6.0+ (GeckoView)</td> + <td>Mozilla/5.0 (Android 7.0; Mobile; rv:62.0) Gecko/62.0 Firefox/62.0</td> + </tr> + </tbody> +</table> + +<h2 id="Focus_for_iOS" name="Focus_for_iOS">Focus for iOS</h2> + +<p>Focus for iOS のバージョン7は、以下の形式のユーザーエージェント文字列を使用します。</p> + +<pre>Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/7.0.4 Mobile/16B91 Safari/605.1.15</pre> + +<p>メモ: このユーザーエージェント文字列は iPhone XR シミュレーターから取得したもので、端末によって異なるかもしれません。</p> + +<h2 id="Firefox_for_Fire_TV" name="Firefox_for_Fire_TV">Firefox for Fire TV</h2> + +<p>Firefox for Fire TV のバージョン3 (およびそれ以前もおそらく) は、以下の書式のユーザーエージェント文字列を使用します。</p> + +<pre>Mozilla/5.0 (Linux; <Android version>) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/<firefoxversion> Chrome/<Chrome Rev> Safari/<WebKit Rev></pre> + +<table class="standard-table"> + <tbody> + <tr> + <td><strong>Firefox TV バージョン</strong></td> + <td><strong>ユーザーエージェント文字列</strong></td> + </tr> + <tr> + <td>v3.0</td> + <td>Mozilla/5.0 (Linux; Android 7.1.2) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/3.0 Chrome/59.0.3017.125 Safari/537.36</td> + </tr> + </tbody> +</table> + +<h2 id="Firefox_for_Echo_Show" name="Firefox_for_Echo_Show">Firefox for Echo Show</h2> + +<p>Firefox for Echo Show はバージョン1.1から、以下の書式のユーザーエージェント文字列を使用しています。</p> + +<pre>Mozilla/5.0 (Linux; <Android version>) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/<firefoxversion> Chrome/<Chrome Rev> Safari/<WebKit Rev> +</pre> + +<table class="standard-table"> + <tbody> + <tr> + <td><strong>Firefox for Echo Show バージョン</strong></td> + <td><strong>ユーザーエージェント文字列</strong></td> + </tr> + <tr> + <td>v1.1</td> + <td>Mozilla/5.0 (Linux; Android 5.1.1) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.1 Chrome/59.0.3017.125 Safari/537.36</td> + </tr> + </tbody> +</table> + +<h2 id="Firefox_OS" name="Firefox_OS">Firefox OS</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">フォームファクター</th> + <th scope="col">Gecko のユーザーエージェント文字列</th> + </tr> + <tr> + <td>携帯電話</td> + <td>Mozilla/5.0 (Mobile; rv:26.0) Gecko/26.0 Firefox/26.0</td> + </tr> + <tr> + <td>タブレット</td> + <td>Mozilla/5.0 (Tablet; rv:26.0) Gecko/26.0 Firefox/26.0</td> + </tr> + <tr> + <td>テレビ</td> + <td>Mozilla/5.0 (TV; rv:44.0) Gecko/44.0 Firefox/44.0</td> + </tr> + <tr> + <td>端末特有</td> + <td>Mozilla/5.0 (Mobile; <em><strong>nnnn;</strong></em> rv:26.0) Gecko/26.0 Firefox/26.0</td> + </tr> + </tbody> +</table> + +<h3 id="Device-specific_user_agent_strings" name="Device-specific_user_agent_strings">端末特有のユーザーエージェント文字列</h3> + +<p>Mozilla は<strong>強く反対</strong>していますが、残念ながら一部の機器メーカーは端末の ID を表すトークンを、ユーザーエージェント文字列に含めています。これに当てはまる場合は Firefox OS のユーザーエージェント文字列が、前出の表で示したように端末特有の文字列になります。 <em><strong>nnnn;</strong></em> が、端末を示すメーカーのコードです (<a href="https://wiki.mozilla.org/B2G/User_Agent/Device_Model_Inclusion_Requirements">ガイドライン</a>もご覧ください)。私たちは "<strong>NexusOne;</strong>", "<strong>ZTEOpen;</strong>", "<strong>Open C;</strong>" などを見つけました (空白を入れることも非推奨です)。ユーザーエージェント検出のロジックを支援するためにこの情報を提供しますが、 Mozilla はユーザーエージェント文字列で端末 ID を検出することを推奨しません。</p> + +<p>ユーザーエージェント文字列に端末 ID を持つ場合を含むすべてのモバイル端末を検出するであろう、JavaScript の正規表現は以下のとおりです。</p> + +<pre>/mobi/i</pre> + +<p><code>i</code> は大文字・小文字を区別しないことを示し、 <code>mobi</code> がすべてのモバイルブラウザーに一致します。</p> + +<h3 id="Firefox_OS_version_number" name="Firefox_OS_version_number">Firefox OS のバージョン番号</h3> + +<p>Firefox OS のバージョン番号は UA 文字列に含まれませんが、 UA 文字列には Gecko のバージョンからバージョン情報を特定することができます。</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Firefox OS のバージョン番号</th> + <th scope="col">Gecko のバージョン番号</th> + </tr> + </thead> + <tbody> + <tr> + <td>1.0.1</td> + <td>18.0</td> + </tr> + <tr> + <td>1.1</td> + <td>18.1</td> + </tr> + <tr> + <td>1.2</td> + <td>26.0</td> + </tr> + <tr> + <td>1.3</td> + <td>28.0</td> + </tr> + <tr> + <td>1.4</td> + <td>30.0</td> + </tr> + <tr> + <td>2.0</td> + <td>32.0</td> + </tr> + <tr> + <td>2.1</td> + <td>34.0</td> + </tr> + <tr> + <td>2.2</td> + <td>37</td> + </tr> + <tr> + <td>2.5</td> + <td>44</td> + </tr> + </tbody> +</table> + +<div class="note"> +<p>この対応関係は <a href="https://hg.mozilla.org/releases">Mercurial リポジトリ名</a>から容易に判断できます。<code>mozilla-b2g</code> で始まるリポジトリが Firefox OS のリリースリポジトリであり、Firefox OS と Gecko の両バージョンがその名前に含まれています。</p> +</div> + +<p>Firefox OS のバージョン番号は 4 つの数字があります: <samp>X.X.X.Y</samp>. 始めの 2 つの数字は Mozilla の製品チームが管理しており、新機能を伴うバージョンを表します (例: v1.1、1.2 など)。3 番目の番号はセキュリティ更新向けの定期的なバージョンの識別 (最大 6 週間ごと) として増えていきます。4 番目の番号は OEM が管理します。</p> + +<h2 id="iOS">iOS</h2> + +<p>iOS 版の Firefox では既定の Mobile Safari の UA 文字列に <strong>FxiOS/<version></strong> トークンを追加したものになります。これは <a href="https://developer.chrome.com/multidevice/user-agent#chrome_for_ios_user_agent">Chrome for iOS の UA 定義と同じ形式です</a>。</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">フォームファクター</th> + <th scope="col">iOS 版 Firefox のユーザエージェント文字列</th> + </tr> + </thead> + <tbody> + <tr> + <td>iPod</td> + <td>Mozilla/5.0 (iPod touch; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) <strong>FxiOS/1.0</strong> Mobile/12F69 Safari/600.1.4</td> + </tr> + <tr> + <td>iPhone</td> + <td>Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) <strong>FxiOS/1.0</strong> Mobile/12F69 Safari/600.1.4</td> + </tr> + <tr> + <td>iPad</td> + <td>Mozilla/5.0 (iPad; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) <strong>FxiOS/1.0</strong> Mobile/12F69 Safari/600.1.4</td> + </tr> + </tbody> +</table> + +<h2 id="Firefox_Web_Runtime">Firefox Web Runtime</h2> + +<p>Web Runtime はデスクトップ版 Firefox と同じユーザーエージェント文字列を使います。</p> + +<h2 id="Other_Gecko-based_browsers" name="Other_Gecko-based_browsers">その他の Gecko ベースのブラウザー</h2> + +<p>以下は、さまざまなプラットフォームの Gecko ベースのブラウザーにおける UA 文字列の一例です。これらの多くはまだ Gecko 2.0 ベースで公開されていないことに注意してください!</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">ブラウザー</th> + <th scope="col">Gecko のユーザーエージェント文字列</th> + </tr> + </thead> + <tbody> + <tr> + <td>Maemo 版 Firefox (Nokia N900)</td> + <td>Mozilla/5.0 (Maemo; Linux armv7l; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 Fennec/10.0.1</td> + </tr> + <tr> + <td>Mac 版 Camino</td> + <td>Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 Camino/2.2.1</td> + </tr> + <tr> + <td>Windows 版 SeaMonkey</td> + <td>Mozilla/5.0 (Windows NT 5.2; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1</td> + </tr> + <tr> + <td>Mac 版 SeaMonkey</td> + <td>Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1</td> + </tr> + <tr> + <td>Linux 版 SeaMonkey</td> + <td>Mozilla/5.0 (X11; Linux i686; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1</td> + </tr> + </tbody> +</table> + +<h2 id="Implementation_notes_for_applications.2C_vendors.2C_and_extensions" name="Implementation_notes_for_applications.2C_vendors.2C_and_extensions"><span><span id="implementation">アプリケーション、ベンダー、拡張向けの実装上の注意</span></span></h2> + +<p>Firefox 4 および Gecko 2.0 以前では、拡張機能が設定項目 <code>general.useragent.extra.<em>identifier</em></code> を通してユーザーエージェント文字列を追加することができました (<a href="/ja/docs/User_Agent_Strings_Reference" title="User_Agent_Strings_Reference">ユーザーエージェント文字列の旧版リファレンス</a> をご覧ください。しかし、これは {{Bug(581008)}} により不可能になりました。</p> + +<p>以前は特定のプラグイン・アドオン・拡張機能が、自身がインストールされていることを知らせるためにユーザーエージェント文字列を追加していました。現在、やむを得ず必要である場合に推奨される方法 (すべての要求が遅くなることに留意してください) は、<a href="/ja/docs/Setting_HTTP_request_headers" title="Setting_HTTP_request_headers">カスタム HTTP ヘッダを設定すること</a> です。</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="http://lawrencemandel.com/2012/07/27/decision-made-firefox-os-user-agent-string/">Firefox OS User Agent String</a> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=777710" title="https://bugzilla.mozilla.org/show_bug.cgi?id=777710">bug 777710</a> に言及したブログ投稿)</li> + <li><a class="external" href="https://hacks.mozilla.org/2010/09/final-user-agent-string-for-firefox-4/">Final User Agent string for Firefox 4</a> (ブログ記事)</li> + <li><a href="/ja/docs/Browser_Detection_and_Cross_Browser_Support" title="Browser_Detection_and_Cross_Browser_Support">クロスブラウザーで UA 文字列のスニッフィングをサポートする</a> ための推奨事項</li> + <li><a href="/ja/docs/Web/API/window.navigator.userAgent">window.navigator.userAgent</a></li> + <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1169772">Add Android version to Fennec UA String (bug 1169772)</a></li> +</ul> + +<hr> +<p><a class="link-news" href="news://news.mozilla.org/netscape.public.mozilla.netlib">mozilla.dev.platform</a> へのコメント</p> diff --git a/files/ja/web/http/headers/user-agent/index.html b/files/ja/web/http/headers/user-agent/index.html new file mode 100644 index 0000000000..65579ff9fc --- /dev/null +++ b/files/ja/web/http/headers/user-agent/index.html @@ -0,0 +1,148 @@ +--- +title: User-Agent +slug: Web/HTTP/Headers/User-Agent +tags: + - HTTP + - HTTP Header + - HTTP ヘッダー + - Reference + - User-agent +translation_of: Web/HTTP/Headers/User-Agent +--- +<div>{{HTTPSidebar}}</div> + +<p><strong>User-Agent</strong> {{Glossary("request header", "リクエストヘッダー")}}は、サーバーやネットワークピアがアプリケーション、オペレーティングシステム、ベンダーや、リクエストしている{{Glossary("user agent", "ユーザーエージェント")}}のバージョン等を識別できるようにする特性文字列です。</p> + +<div class="blockIndicator warning"> +<p>ブラウザーによって異なるウェブページやサービスを提供することが、通常は悪い考えである理由については、<a href="/ja/docs/Web/HTTP/Browser_detection_using_the_user_agent">ユーザーエージェント文字列を用いたブラウザーの判定</a>をお読みください。</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">User-Agent: <product> / <product-version> <comment></pre> + +<p>ウェブブラウザーでよくある書式は以下のようなものです。</p> + +<pre class="syntaxbox notranslate">User-Agent: Mozilla/5.0 (<system-information>) <platform> (<platform-details>) <extensions></pre> + +<h3 id="Directives" name="Directives">ディレクティブ</h3> + +<dl> + <dt><code><product></code></dt> + <dd>製品の識別子です。名前または開発コードネームです。</dd> + <dt><code><product-version></code></dt> + <dd>製品のバージョン番号です。</dd> + <dt><code><comment></code></dt> + <dd>ゼロ個以上のコメントで、サブ製品情報など、より詳細な情報を含みます。</dd> +</dl> + +<h2 id="Firefox_UA_string" name="Firefox_UA_string">Firefox の UA 文字列</h2> + +<p>Firefox や Gecko ベースのユーザエージェント文字列の詳細については、 <a href="/ja/docs/Web/HTTP/Headers/User-Agent/Firefox">Firefox のユーザエージェント文字列リファレンス</a>を参照してください。 Firefox の UA 文字列は4つの部分に分解されます。</p> + +<pre class="notranslate">Mozilla/5.0 (<strong><em>platform</em></strong>; rv:<strong><em>geckoversion</em></strong>) Gecko/<strong><em>geckotrail</em></strong> Firefox/<strong><em>firefoxversion</em></strong></pre> + +<ol> + <li><code>Mozilla/5.0</code> は、 Mozilla と互換性があるブラウザーであるということを示す一般的なトークンで、現在はほぼすべてのブラウザーで共通です。</li> + <li><strong><em>platform</em></strong> は、ブラウザーが動作しているプラットフォーム (Windows, Mac, Linux, Android など)、およびモバイル端末かどうかを示します。 {{Glossary("Firefox OS")}} のスマートフォンはウェブプラットフォームなので、 <code>Mobile</code> だけです。 <strong><em>platform</em></strong> が複数の "<code>; </code>" という区切りから成っていることに留意してください。後述の詳細と例も併せてご覧ください。</li> + <li><strong>rv:<em>geckoversion</em></strong> は Gecko のリリースバージョンです ("<em>17.0</em>" など)。最近のブラウザーの <strong><em>geckoversion</em></strong> は <strong><em>firefoxversion</em></strong> と同じです。</li> + <li><strong><em>Gecko/geckotrail</em></strong> は、ブラウザーが <a href="/ja/docs/Mozilla/Gecko">Gecko</a> を基にしていることを示します。 (デスクトップでは、 <em><strong>geckotrail</strong></em> は常に <code>20100101</code> の固定文字列です。)</li> + <li><em><strong>Firefox/firefoxversion</strong></em> は、ブラウザーが Firefox であること、またそのバージョン ("<em>17.0</em>" など) を示しています。</li> +</ol> + +<h3 id="Examples" name="Examples">例</h3> + +<pre class="no-line-numbers notranslate">Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X <em>x.y</em>; rv:42.0) Gecko/20100101 Firefox/42.0 +</pre> + +<h2 id="Chrome_UA_string" name="Chrome_UA_string">Chrome の UA 文字列</h2> + +<p>Chrome (または Chromium/Blink ベースのエンジン) のユーザーエージェント文字列は Firefox のものと似ています。互換性のため、 <code>KHTML, like Gecko</code> や <code>Safari</code> のような文字列が追加されています。</p> + +<h3 id="Examples_2" name="Examples_2">例</h3> + +<pre class="no-line-numbers notranslate">Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36</pre> + +<h2 id="Opera_UA_string" name="Opera_UA_string">Opera の UA 文字列</h2> + +<p>Opera ブラウザーも Blink エンジンに基づいているので、大部分は同じですが、 <code>"OPR/<version>"</code> を追加します。</p> + +<h3 id="Examples_3" name="Examples_3">例</h3> + +<pre class="no-line-numbers notranslate">Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41</pre> + +<p>古い Presto ベースの Opera のリリースは、次のものを使用していました。</p> + +<pre class="no-line-numbers notranslate">Opera/9.80 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.15 Version/10.00 +Opera/9.60 (Windows NT 6.0; U; en) Presto/2.1.1</pre> + +<h2 id="Safari_UA_string" name="Safari_UA_string">Safari の UA 文字列</h2> + +<p>この例では、ユーザーエージェント文字列はモバイル Safari のものです。これは <code>Mobile</code> という語を含んでいます。</p> + +<h3 id="Examples_4" name="Examples_4">例</h3> + +<pre class="no-line-numbers notranslate">Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1</pre> + +<h2 id="Internet_Explorer_UA_string" name="Internet_Explorer_UA_string">Internet Explorer の UA 文字列</h2> + +<h3 id="Examples_5" name="Examples_5">例</h3> + +<pre class="no-line-numbers notranslate">Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)</pre> + +<h2 id="Crawler_and_bot_UA_strings" name="Crawler_and_bot_UA_strings">クローラーやボットの UA 文字列</h2> + +<h3 id="Examples_6" name="Examples_6">例</h3> + +<pre class="no-line-numbers notranslate">Googlebot/2.1 (+http://www.google.com/bot.html)</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC(7231, "User-Agent", "5.5.3")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + <tr> + <td>{{RFC(2616, "User-Agent", "14.43")}}</td> + <td>Hypertext Transfer Protocol -- HTTP/1.1</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.User-Agent")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="https://hacks.mozilla.org/2013/09/user-agent-detection-history-and-checklist/">User-Agent detection, history and checklist</a></li> + <li><a href="/ja/docs/Web/HTTP/Headers/User-Agent/Firefox">Firefox ユーザーエージェント文字列リファレンス</a></li> + <li> + <p><a href="/ja/docs/Web/HTTP/Browser_detection_using_the_user_agent">ユーザーエージェント文字列を用いたブラウザーの判定</a></p> + </li> +</ul> diff --git a/files/ja/web/http/headers/vary/index.html b/files/ja/web/http/headers/vary/index.html new file mode 100644 index 0000000000..9847ca58c0 --- /dev/null +++ b/files/ja/web/http/headers/vary/index.html @@ -0,0 +1,90 @@ +--- +title: Vary +slug: Web/HTTP/Headers/Vary +tags: + - HTTP + - Reference + - ヘッダー + - リファレンス + - レスポンス + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/Vary +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>Vary</code></strong> HTTP レスポンスヘッダーは、オリジンのサーバーから新しく要求するのではなく、キャッシュされたレスポンスを使用できるかどうかを決定するために将来のリクエストヘッダーをどのように一致させるかを決定します。これは、<a href="/ja/docs/Web/HTTP/Content_negotiation">コンテンツネゴシエーション</a>アルゴリズムでリソースの表現を選択するときにどのヘッダーを使用したかを示すためにサーバーによって使用されます。</p> + +<p><code>Vary</code> ヘッダーは {{HTTPStatus("200")}} <code>OK</code> レスポンスに設定されるのと同様に、 {{HTTPStatus("304")}} <code>Not Modified</code> にも設定されます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Vary: * +Vary: <header-name>, <header-name>, ... +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt>*</dt> + <dd>URL のための各リクエストは、固有でキャッシュ不可能なリクエストとして扱われると仮定されます。これを示すのには {{HTTPHeader("Cache-Control")}}: <code>no-store</code> を使用したほうが良く、こちらはより明確に読むことができ、オブジェクトが保存されないことを示します。</dd> + <dt><header-name></dt> + <dd>コンマ区切りで、キャッシュされたレスポンスが使用されるかどうかを決定する際に関わるヘッダー名のリストです。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Dynamic_serving" name="Dynamic_serving">動的な提供</h3> + +<p><code>Vary: User-Agent</code> ヘッダーが使用されたとき、キャッシュサーバーはキャッシュからページを提供するかどうかを決定する際にユーザーエージェントを考慮するべきです。例えば、モバイルユーザーに対して異なるコンテンツを提供しているのであれば、誤ってサイトのデスクトップ版のサイトをモバイルユーザーに対して提供してしまうことを防ぐのに役立ちます。これは Google 等の検索エンジンがページのモバイル版を発見するのに役立ち、 <a href="https://en.wikipedia.org/wiki/Cloaking">Cloaking</a> を求めずに区別することができる可能性があります。</p> + +<pre>Vary: User-Agent</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "Vary", "7.1.4")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Vary")}}</p> + +<h2 id="Compatibility_notes" name="Compatibility_notes">互換性メモ</h2> + +<ul> + <li><a href="https://blogs.msdn.microsoft.com/ieinternals/2009/06/17/vary-with-care/">Vary with care – Vary header problems in IE6-9</a></li> +</ul> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="https://www.smashingmagazine.com/2017/11/understanding-vary-header/">Understanding The Vary Header - Smashing Magazine</a></li> + <li><a href="https://www.fastly.com/blog/best-practices-for-using-the-vary-header">Best Practices for Using the Vary Header – fastly.com</a></li> + <li><a href="https://developer.mozilla.org/docs/Web/HTTP/Content_negotiation">Content negotiation</a></li> +</ul> diff --git a/files/ja/web/http/headers/via/index.html b/files/ja/web/http/headers/via/index.html new file mode 100644 index 0000000000..fb057eb094 --- /dev/null +++ b/files/ja/web/http/headers/via/index.html @@ -0,0 +1,76 @@ +--- +title: Via +slug: Web/HTTP/Headers/Via +translation_of: Web/HTTP/Headers/Via +--- +<div>{{HTTPSidebar}}</div> + +<p>一般ヘッダーの<code><strong>Via</strong></code> は、フォワードプロキシとリバースプロキシの両方のプロキシによって追加され、リクエストヘッダーとレスポンスヘッダーに表示されます。 メッセージ転送の追跡、要求ループの回避、および要求/応答チェーンに沿った送信者のプロトコル機能の識別に使用されます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("General header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>yes</td> + </tr> + </tbody> +</table> + +<h2 id="構文">構文</h2> + +<pre class="syntaxbox">Via: [ <protocol-name> "/" ] <protocol-version> <host> [ ":" <port> ] +or +Via: [ <protocol-name> "/" ] <protocol-version> <pseudonym> +</pre> + +<h2 id="ディレクティブ">ディレクティブ</h2> + +<dl> + <dt><protocol-name></dt> + <dd>オプション。"HTTP"など、使用するプロトコル名。</dd> + <dt><protocol-version></dt> + <dd>"1.1"など、使用されているプロトコルのバージョン。</dd> + <dt><host> and <port></dt> + <dd>パブリックプロキシのURLとポート。</dd> + <dt><pseudonym></dt> + <dd>内部プロキシの名前/エイリアス。</dd> +</dl> + +<h2 id="例">例</h2> + +<pre>Via: 1.1 vegur +Via: HTTP/1.1 GWA +Via: 1.0 fred, 1.1 p.example.net +</pre> + +<h2 id="仕様書">仕様書</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Title</th> + </tr> + <tr> + <td>{{RFC("7230", "Via", "5.7.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</td> + </tr> + </tbody> +</table> + +<h2 id="ブラウザの互換">ブラウザの互換</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Via")}}</p> + +<h2 id="関連情報">関連情報</h2> + +<ul> + <li>{{HTTPHeader("X-Forwarded-For")}}</li> + <li><a href="https://github.com/heroku/vegur">Heroku's proxy library Vegur</a></li> +</ul> diff --git a/files/ja/web/http/headers/warning/index.html b/files/ja/web/http/headers/warning/index.html new file mode 100644 index 0000000000..f96db11fe6 --- /dev/null +++ b/files/ja/web/http/headers/warning/index.html @@ -0,0 +1,146 @@ +--- +title: Warning +slug: Web/HTTP/Headers/Warning +tags: + - General Header + - HTTP + - Reference + - header +translation_of: Web/HTTP/Headers/Warning +--- +<div>{{HTTPSidebar}}</div> + +<div class="blockIndicator note"> +<p><strong>メモ</strong>: <code>Warning</code> ヘッダーはまもなく非推奨になる予定です。詳しくは <a href="https://github.com/httpwg/http-core/issues/139">Warning (https://github.com/httpwg/http-core/issues/139)</a> や <a href="https://github.com/whatwg/fetch/issues/913">Warning: header & stale-while-revalidate (https://github.com/whatwg/fetch/issues/913)</a> をご覧ください。</p> +</div> + +<p><strong><code>Warning</code></strong> は HTTP の一般ヘッダーで、可能性のある問題についてメッセージのステータスによる情報を含みます。一つのレスポンスに複数の <code>Warning</code> ヘッダーが含まれる可能性があります。</p> + +<p><code>Warning</code> ヘッダーフィールドは一般的にあらゆるメッセージに適用できますが、一部の警告コードはキャッシュ専用であり、レスポンスメッセージのみに適用することができます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("General header", "一般ヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">Warning: <warn-code> <warn-agent> <warn-text> [<warn-date>] +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><warn-code></dt> + <dd>3桁の警告番号です。最初の桁は、検証後にレスポンスを格納する際に <code>Warning</code> を削除する必要があるかどうかを示します。 + <ul> + <li><code>1xx</code> の警告コードは、新鮮さやレスポンスの検証ステータスを表し、キャッシュされる際に削除されます。</li> + <li> + <p><code>2xx</code> の警告コードは、検証によって修正されない表現のいくつかの側面を説明しており、レスポンス全体が送信されない限り、検証後もキャッシュによって削除されないことを表します。</p> + </li> + </ul> + </dd> + <dt><warn-agent></dt> + <dd> + <p><code>Warning</code> ヘッダーを追加するサーバーやソフトウェアの名前または仮名です (エージェントが不明な場合は "-" になることがあります)。</p> + </dd> + <dt><warn-text></dt> + <dd>エラーを説明する助言のテキストです。</dd> + <dt><warn-date></dt> + <dd>任意。複数の <code>Warning</code> ヘッダーが送信される場合は、 {{HTTPHeader("Date")}} ヘッダーと一致する日付を入れてください。</dd> +</dl> + +<h2 id="Warning_codes" name="Warning_codes">警告コード</h2> + +<p><a href="http://www.iana.org/assignments/http-warn-codes/http-warn-codes.xhtml">HTTP Warn Codes registry at iana.org</a> では、警告コードの名前空間を定義しています。</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">コード</th> + <th scope="col">テキスト</th> + <th scope="col">説明</th> + </tr> + </thead> + <tbody> + <tr> + <td>110</td> + <td>Response is Stale</td> + <td>キャッシュによって提供されたレスポンスが古くなっている (有効期限が切れている)。</td> + </tr> + <tr> + <td>111</td> + <td>Revalidation Failed</td> + <td>サーバーへ到達できなかったため、レスポンスの検証をしようとして失敗した。</td> + </tr> + <tr> + <td>112</td> + <td>Disconnected Operation</td> + <td>キャッシュがネットワークの他の部分から切断された。</td> + </tr> + <tr> + <td>113</td> + <td>Heuristic Expiration</td> + <td>キャッシュが24時間より長い保持時間を選択しており、かつレスポンスの時間が24時間よりも長い場合。</td> + </tr> + <tr> + <td>199</td> + <td>Miscellaneous Warning</td> + <td>任意で特定されていない警告</td> + </tr> + <tr> + <td>214</td> + <td>Transformation Applied</td> + <td>コンテンツのエンコーディング、メディア種別など、表現方法の変換を行った場合にプロキシが追加します。</td> + </tr> + <tr> + <td>299</td> + <td>Miscellaneous Persistent Warning</td> + <td>199 と同様だが、永続的な警告を含む場合</td> + </tr> + </tbody> +</table> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>Warning: 110 anderson/1.3.37 "Response is stale" + +Date: Wed, 21 Oct 2015 07:28:00 GMT +Warning: 112 - "cache down" "Wed, 21 Oct 2015 07:28:00 GMT" +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + <tr> + <td>{{RFC("7234", "Warning", "5.5")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Caching</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.Warning")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Date")}}</li> + <li><a href="/ja/docs/Web/HTTP/Status">HTTP response status codes</a></li> +</ul> diff --git a/files/ja/web/http/headers/www-authenticate/index.html b/files/ja/web/http/headers/www-authenticate/index.html new file mode 100644 index 0000000000..16213e54e1 --- /dev/null +++ b/files/ja/web/http/headers/www-authenticate/index.html @@ -0,0 +1,93 @@ +--- +title: WWW-Authenticate +slug: Web/HTTP/Headers/WWW-Authenticate +tags: + - HTTP + - HTTP ヘッダー + - ヘッダー + - リファレンス + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/WWW-Authenticate +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の <strong><code>WWW-Authenticate</code></strong> 応答ヘッダーは、リソースへのアクセス権を得るために使われる認証方法を定義します。</p> + +<p><code>WWW-Authenticate</code> ヘッダーは {{HTTPStatus("401")}} <code>Unauthorized</code> 応答と共に送られます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "応答ヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">WWW-Authenticate: <type> realm=<realm> +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><type></dt> + <dd><a href="/ja/docs/Web/HTTP/Authentication#Authentication_schemes">認証の種類</a>。一般的には <a href="/ja/docs/Web/HTTP/Authentication#Basic_authentication_scheme">"Basic"</a> です。 IANA は <a href="http://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml">認証方式の一覧</a>を管理しています。</dd> + <dt>realm=<realm></dt> + <dd>保護領域の説明です。 realm が指定されていない場合は、クライアントはよく書式化されたホスト名を代わりに表示します。</dd> + <dt>charset=<charset></dt> + <dd>ユーザー名とパスワードを送信するときのサーバーが推奨するエンコーディング方式をクライアントに伝えます。大文字小文字の区別なしの文字列 "UTF-8" だけが許可されています。これは realm 文字列のエンコーディングとは関係がありません。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<p>通常、 <code>WWW-Authenticate</code> ヘッダーを含むサーバーの応答は以下のようなものです。</p> + +<pre>WWW-Authenticate: Basic + +WWW-Authenticate: Basic realm="Access to the staging site", charset="UTF-8" +</pre> + +<p>Apache や nginx サーバーで HTTP Basic 認証を使用してサイトを保護する方法の例については、 <a href="/ja/docs/Web/HTTP/Authentication">HTTP 認証</a> を参照してください。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7235", "WWW-Authenticate", "4.1")}}</td> + <td>HTTP/1.1: Authentication</td> + </tr> + <tr> + <td>{{RFC("7617")}}</td> + <td>The 'Basic' HTTP Authentication Scheme</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力したいのであれば、 <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.WWW-Authenticate")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="/ja/docs/Web/HTTP/Authentication">HTTP 認証</a></li> + <li>{{HTTPHeader("Authorization")}}</li> + <li>{{HTTPHeader("Proxy-Authorization")}}</li> + <li>{{HTTPHeader("Proxy-Authenticate")}}</li> + <li>{{HTTPStatus("401")}}, {{HTTPStatus("403")}}, {{HTTPStatus("407")}}</li> +</ul> diff --git a/files/ja/web/http/headers/x-content-type-options/index.html b/files/ja/web/http/headers/x-content-type-options/index.html new file mode 100644 index 0000000000..d5af6cf22d --- /dev/null +++ b/files/ja/web/http/headers/x-content-type-options/index.html @@ -0,0 +1,101 @@ +--- +title: X-Content-Type-Options +slug: Web/HTTP/Headers/X-Content-Type-Options +tags: + - HTTP + - HTTP ヘッダー + - Reference + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/X-Content-Type-Options +--- +<div>{{HTTPSidebar}}</div> + +<p><code><strong>X-Content-Type-Options</strong></code> は HTTP のレスポンスヘッダーで、 {{HTTPHeader("Content-Type")}} ヘッダーで示された <a href="/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME タイプ</a>を変更せずに従うべきであることを示すために、サーバーによって使用されるマーカーです。これにより、<a href="/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types#MIME_sniffing">MIME タイプのスニッフィング</a>を抑止することができます。すなわち、ウェブマスターが自分が何をしているかを分かっていると言う手段です。</p> + +<p>このヘッダーは、コンテンツのスニッフィングにより、実行不可能な MIME タイプを実行可能な MIME タイプに変換してしまうという事故をウェブマスターが抑止するための方法として、マイクロソフトが IE 8 で導入したものです。それ以来、他のブラウザーは MIME スニッフィングのアルゴリズムがそれほど積極的ではなくても、このヘッダーを導入してきました。</p> + +<p>Firefox 72 から、 {{HTTPHeader("Content-type")}} が提供されている場合、 MIME スニッフィングの抑止が最上位の文書にも適用されるようになりました。これにより、 HTML のウェブページが <code>text/html</code> 以外の MIME タイプで提供されている場合、表示される代わりにダウンロードされることがあります。両方のヘッダーを正しく設定してください。</p> + +<p>サイトのセキュリティテスターは通常、このヘッダーが設定されていることを期待しています。</p> + +<p class="blockIndicator note">注: <code>X-Content-Type-Options</code> は、 <a href="https://fetch.spec.whatwg.org/#should-response-to-request-be-blocked-due-to-nosniff?"><code>nosniff</code> によるリクエストブロッキング</a>を<a href="https://fetch.spec.whatwg.org/#concept-request-destination">リクエスト先</a>が "<code>script</code>" と "<code>style</code>" の場合のみ適用します。しかし、 <a href="https://chromium.googlesource.com/chromium/src/+/master/services/network/cross_origin_read_blocking_explainer.md#determining-whether-a-response-is-corb_protected">Cross-Origin Read Blocking (CORB)</a> 保護を HTML, TXT, JSON, XML の各ファイル (SVG <code>image/svg+xml</code> を除く) に対して有効にすることもできます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">X-Content-Type-Options: nosniff +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><code>nosniff</code></dt> + <dd>リクエスト先のタイプが以下の場合、リクエストをブロックします。 + <ul> + <li>"<code>style</code>" で MIME タイプが <code>text/css</code> でない、または</li> + <li>"<code>script</code>" で MIME タイプが <a href="https://html.spec.whatwg.org/multipage/scripting.html#javascript-mime-type">JavaScript の MIME タイプ</a>でない</li> + </ul> + </dd> + <dd>Cross-Origin Read Blocking (CORB) 保護を次の MIME タイプに対して有効にします。 + <ul> + <li><code>text/html</code></li> + <li><code>text/plain</code></li> + <li><code>text/json</code>, <code>application/json</code> またはその他の JSON 拡張を伴うタイプ: <code>*/*+json</code></li> + <li><code>text/xml</code>, <code>application/xml</code> またはその他の XML 拡張を伴うタイプ: <code>*/*+xml</code> (<code>image/svg+xml</code> を除く)</li> + </ul> + </dd> +</dl> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">状態</th> + <th scope="col">備考</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName("Fetch", "#x-content-type-options-header", "X-Content-Type-Options definition")}}</td> + <td>{{Spec2("Fetch")}}</td> + <td>初回定義</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.X-Content-Type-Options")}}</p> + +<h3 id="Browser_specific_notes" name="Browser_specific_notes">ブラウザー固有の注意事項</h3> + +<ul> + <li>Firefox 72 は最上位文書で <code>X-Content-Type-Options: nosniff</code> を有効にします。</li> +</ul> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Type")}}</li> + <li>Microsoft による X-Content-Type-Options の <a href="https://blogs.msdn.microsoft.com/ie/2008/09/02/ie8-security-part-vi-beta-2-update/">元の定義</a></li> + <li>The <a href="https://observatory.mozilla.org/">Mozilla Observatory</a> tool testing the configuration (including this header) of Web sites for safety and security</li> + <li><a href="https://blog.mozilla.org/security/2016/08/26/mitigating-mime-confusion-attacks-in-firefox/">Mitigating MIME Confusion Attacks in Firefox</a></li> + <li><a href="https://fetch.spec.whatwg.org/#corb">Cross-Origin Read Blocking (CORB)</a></li> + <li><a href="https://chromium.googlesource.com/chromium/src/+/master/services/network/cross_origin_read_blocking_explainer.md">Google Docs CORB explainer</a></li> +</ul> diff --git a/files/ja/web/http/headers/x-dns-prefetch-control/index.html b/files/ja/web/http/headers/x-dns-prefetch-control/index.html new file mode 100644 index 0000000000..8653820d29 --- /dev/null +++ b/files/ja/web/http/headers/x-dns-prefetch-control/index.html @@ -0,0 +1,97 @@ +--- +title: X-DNS-Prefetch-Control +slug: Web/HTTP/Headers/X-DNS-Prefetch-Control +tags: + - DNS + - HTTP + - X-DNS-Prefetch-Control + - header +translation_of: Web/HTTP/Headers/X-DNS-Prefetch-Control +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>X-DNS-Prefetch-Control</code></strong> は HTTP のレスポンスヘッダーで、 DNS 先読み、つまりユーザーが進むことができるリンクと、画像、 CSS、 JavaScript などの文書から参照される項目の両方で、ブラウザーが事前にドメイン名の解決を実行する機能を制御します。</p> + +<p>この先読みはバックグラウンドで行われるので、参照されている項目が必要になった時に {{glossary("DNS")}} が解決されている可能性が高くなります。これによって、ユーザーがリンクをクリックしたときに遅延が短縮されます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">X-DNS-Prefetch-Control: on +X-DNS-Prefetch-Control: off +</pre> + +<h3 id="Directives" name="Directives">ディレクティブ</h3> + +<dl> + <dt>on</dt> + <dd>DNS 先読みを有効にします。この機能に対応しているブラウザーは、このヘッダーが存在しない場合はこの動作をします。</dd> + <dt>off</dt> + <dd>DNS 先読みを無効にします。これはページのリンクを制御しない場合や、ドメインに情報漏洩させたくないと分かる場合に有用です。</dd> +</dl> + +<h2 id="Description" name="Description">解説</h2> + +<p>DNS リクエストは帯域で見ればとても小さいものですが、遅延は、特にモバイルネットワークではとても大きいものです。 DNS の先読みを投機的に行うと、ユーザーがリンクをクリックするときなど特定の場面の遅延を著しく短縮することができます。場合によっては、遅延を秒単位で短縮することができます。</p> + +<p>ブラウザーによってはこの先読みの実装で、ドメイン名の解決が実際のページのコンテンツの読み込みと (直後ではなく) 並列で行うことができます。これを行うことで、遅延の大きい名前解決プロセスがコンテンツの読み込みを遅らせないようにします。</p> + +<p>ページの読み込み時間は – 特にモバイルネットワークにおいては – この方法で著しく改善できます。画像のドメイン名がリクエストに先立って解決できれば、多数の画像を読み込むページの読み込み時間に 5% 以上の改善が見られることがあります。</p> + +<h3 id="Configuring_prefetching_in_the_browser" name="Configuring_prefetching_in_the_browser">ブラウザーの先読みの構成</h3> + +<p>一般に、先読みを管理することを考える必要はありません。しかし、ユーザーは先読みを無効にしたいと思うかもしれません。 Firefox では、設定の <code>network.dns.disablePrefetch</code> を <code>true</code> にすることで実現できます。</p> + +<p>また、既定では、埋め込みリンクのホスト名の先読みは {{glossary("HTTPS")}} で読み込まれた文書では実行されません。 Firefox では、設定の <code>network.dns.disablePrefetchFromHTTPS</code> を <code>false</code> に設定することでこれを変更することができます。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<h3 id="Turning_on_and_off_prefetching" name="Turning_on_and_off_prefetching">先読みの有効化と無効化</h3> + +<p>次のように、サーバー側から <code>X-DNS-Prefetch-Control</code> ヘッダーを送信するか、個別の文書で {{ htmlattrxref("http-equiv", "meta") }} 属性を {{ HTMLElement("meta") }} 要素に設定します。</p> + +<pre class="brush: html notranslate"><meta http-equiv="x-dns-prefetch-control" content="off"> +</pre> + +<p>逆の設定をするには <code>content</code> を "<code>on</code>" にしてください。</p> + +<h3 id="Forcing_lookup_of_specific_hostnames" name="Forcing_lookup_of_specific_hostnames">特定のホスト名の参照の強制</h3> + +<p><a href="/ja/docs/Web/HTML/Link_types">リンク種別</a>を <code>dns-prefetch</code> にした {{ HTMLElement("link") }} 要素に {{ htmlattrxref("rel","link") }} 属性を使用することで、そのホスト名を使用した特定のアンカーを提供せずに、特定のホスト名を強制的に検索することができます。</p> + +<pre class="brush: html notranslate"><link rel="dns-prefetch" href="https://www.mozilla.org/contribute/"> +</pre> + +<p>この例では、 "<a class="linkification-ext external" href="https://www.mozilla.org/contribute/" title="Linkification: https://www.mozilla.org/contribute/">www.mozilla.org/contribute</a>" というドメイン名が事前に解決されます。</p> + +<p>同様に、 link 要素は完全な URL を提供せずにホスト名を解決するために使用することができますが、ホスト名の前に2つのスラッシュを付けた場合だけです。</p> + +<pre class="brush: html notranslate"><link rel="dns-prefetch" href="//www.mozilla.org/contribute/"> +</pre> + +<p>ホスト名の強制的な先読みは、例えば、あるサイトのホームページ自体では使用されていないにもかかわらず、サイト全体で頻繁に参照されるドメイン名を強制的に事前解決するために有用かもしれません。これは、ホームページの性能には影響しないかもしれませんが、サイトの全体的なパフォーマンスを向上させます。</p> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.X-DNS-Prefetch-Control")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a class="external" href="https://bitsup.blogspot.com/2008/11/dns-prefetching-for-firefox.html">Firefox の DNS 先読み (ブログ記事)</a></li> + <li><a class="external" href="https://dev.chromium.org/developers/design-documents/dns-prefetching">Google Chrome じゃ DNS 先読み制御を扱います</a></li> +</ul> diff --git a/files/ja/web/http/headers/x-forwarded-for/index.html b/files/ja/web/http/headers/x-forwarded-for/index.html new file mode 100644 index 0000000000..b5f0fe1174 --- /dev/null +++ b/files/ja/web/http/headers/x-forwarded-for/index.html @@ -0,0 +1,81 @@ +--- +title: X-Forwarded-For +slug: Web/HTTP/Headers/X-Forwarded-For +tags: + - HTTP + - HTTP ヘッダー + - ヘッダー + - リクエストヘッダー + - リファレンス + - 標準外 +translation_of: Web/HTTP/Headers/X-Forwarded-For +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>X-Forwarded-For</code></strong> (XFF) ヘッダーは、 HTTP プロキシ又はロードバランサーを通過してウェブサーバーへ接続したクライアントの、送信元 IP アドレスを特定するために事実上の標準となっているヘッダーです。クライアントとサーバーとの間でトラフィックに何かが介在すると、サーバーのアクセスログにはプロキシ又はロードバランサーのアドレスしか残りません。クライアントの元 IP アドレスを記録するために、 <code>X-Forwarded-For</code> 要求ヘッダーが使用されます。</p> + +<p>このヘッダーはデバッグ、統計、位置に依存したコンテンツの生成などに使用され、クライアントの IP アドレスのようなプライバシーに敏感な情報を公開します。従って、このヘッダーを展開する時は、ユーザーのプライバシーを念頭に置く必要があります。</p> + +<p>標準化されたヘッダーは HTTP {{HTTPHeader("Forwarded")}} ヘッダーです。</p> + +<p><code>X-Forwarded-For</code> は、電子メールメッセージが他のアカウントから転送されたことを示す電子メールヘッダーとしても使われます。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "要求ヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">X-Forwarded-For: <client>, <proxy1>, <proxy2> +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><client></dt> + <dd>クライアントの IP アドレス</dd> + <dt><proxy1>, <proxy2></dt> + <dd>要求が複数のプロキシを通して行われる場合、それぞれの通過するプロキシの IP アドレスが書き出されます。つまり、最も右の IP アドレスが最も後のプロキシであり、最も左の IP アドレスが元のクライアントの IP アドレスです。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>X-Forwarded-For: 2001:db8:85a3:8d3:1319:8a2e:370:7348 + +X-Forwarded-For: 203.0.113.195 + +X-Forwarded-For: 203.0.113.195, 70.41.3.18, 150.172.238.178 +</pre> + +<p>そのほかの標準外の形式:</p> + +<pre># いくつかの Google サービスで使用された +X-ProxyUser-Ip: 203.0.113.19</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<p>現時点で、仕様書の一部ではありません。このヘッダーの標準化版は {{HTTPHeader("Forwarded")}} ヘッダーです。</p> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力したいのであれば、 <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.X-Forwarded-For")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Forwarded")}}</li> + <li>{{HTTPHeader("X-Forwarded-Host")}}</li> + <li>{{HTTPHeader("X-Forwarded-Proto")}}</li> + <li>{{HTTPHeader("Via")}}</li> +</ul> diff --git a/files/ja/web/http/headers/x-forwarded-host/index.html b/files/ja/web/http/headers/x-forwarded-host/index.html new file mode 100644 index 0000000000..fa2c3dc451 --- /dev/null +++ b/files/ja/web/http/headers/x-forwarded-host/index.html @@ -0,0 +1,70 @@ +--- +title: X-Forwarded-Host +slug: Web/HTTP/Headers/X-Forwarded-Host +tags: + - HTTP + - HTTPヘッダー + - Reference + - ヘッダー + - リクエストヘッダー + - 標準外 +translation_of: Web/HTTP/Headers/X-Forwarded-Host +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>X-Forwarded-Host</code></strong> (XFH) ヘッダーは、 HTTP の {{HTTPHeader("Host")}} リクエストヘッダー内でクライアントから要求された元のホストを特定するための事実上の標準となっているヘッダーです。</p> + +<p>リバースプロキシ (ロードバランサー、 CDN) のホスト名とポート番号は、リクエストを扱う元のサーバーとは異なってもよく、この場合はもともと使用されていたのがどのホストであるかを特定するのに <code>X-Forwarded-Host</code> ヘッダーが便利です。</p> + +<p>このヘッダーはデバッグ、統計、位置に依存したコンテンツの生成などに使用され、クライアントの IP アドレスのようなプライバシーに敏感な情報を公開します。従って、このヘッダーを展開する時は、ユーザーのプライバシーを念頭に置く必要があります。</p> + +<p>標準化されたヘッダーは HTTP {{HTTPHeader("Forwarded")}} ヘッダーです。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">X-Forwarded-Host: <host> +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><host></dt> + <dd>転送されたサーバーのドメイン名</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>X-Forwarded-Host: id42.example-cdn.com +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<p>現時点で、仕様書の一部ではありません。このヘッダーの標準化版は {{HTTPHeader("Forwarded")}} ヘッダーです。</p> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.X-Forwarded-Host")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Host")}}</li> + <li>{{HTTPHeader("Forwarded")}}</li> + <li>{{HTTPHeader("X-Forwarded-For")}}</li> + <li>{{HTTPHeader("X-Forwarded-Proto")}}</li> +</ul> diff --git a/files/ja/web/http/headers/x-forwarded-proto/index.html b/files/ja/web/http/headers/x-forwarded-proto/index.html new file mode 100644 index 0000000000..5442b9fe29 --- /dev/null +++ b/files/ja/web/http/headers/x-forwarded-proto/index.html @@ -0,0 +1,74 @@ +--- +title: X-Forwarded-Proto +slug: Web/HTTP/Headers/X-Forwarded-Proto +tags: + - HTTP + - HTTPヘッダー + - Reference + - ヘッダー + - リクエストヘッダー + - 標準外 +translation_of: Web/HTTP/Headers/X-Forwarded-Proto +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>X-Forwarded-Proto</code></strong> (XFP) ヘッダーは、プロキシまたはロードバランサーへ接続するのに使っていたクライアントのプロトコル (HTTP または HTTPS) を特定するために事実上の標準となっているヘッダーです。サーバーのアクセスログにはサーバーとロードバランサーの間で使われたプロトコルが含まれていますが、クライアントとロードバランサーの間で使用されたプロトコルは含まれていません。クライアントとロードバランサーの間で使用されたプロトコルを特定するには、 <code>X-Forwarded-Proto</code> リクエストヘッダーを使用することができます。</p> + +<p>標準化されたヘッダーは HTTP {{HTTPHeader("Forwarded")}} ヘッダーです。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Request header", "リクエストヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">X-Forwarded-Proto: <protocol> +</pre> + +<h2 id="Directives" name="Directives">ディレクティブ</h2> + +<dl> + <dt><protocol></dt> + <dd>転送されたプロトコル (http または https).</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<pre>X-Forwarded-Proto: https</pre> + +<p>その他の標準外の形式:</p> + +<pre># Microsoft +Front-End-Https: on + +X-Forwarded-Protocol: https +X-Forwarded-Ssl: on +X-Url-Scheme: https +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<p>現時点で、仕様書の一部ではありません。このヘッダーの標準化版は {{HTTPHeader("Forwarded")}} ヘッダーです。</p> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> + +<p class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</p> + +<p>{{Compat("http.headers.X-Forwarded-Proto")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Forwarded")}}</li> + <li>{{HTTPHeader("X-Forwarded-For")}}</li> + <li>{{HTTPHeader("X-Forwarded-Host")}}</li> +</ul> diff --git a/files/ja/web/http/headers/x-frame-options/index.html b/files/ja/web/http/headers/x-frame-options/index.html new file mode 100644 index 0000000000..321f582862 --- /dev/null +++ b/files/ja/web/http/headers/x-frame-options/index.html @@ -0,0 +1,158 @@ +--- +title: X-Frame-Options +slug: Web/HTTP/Headers/X-Frame-Options +tags: + - Apache + - Gecko + - HAProxy + - HTTP + - Security + - nginx + - セキュリティ + - レスポンスヘッダー +translation_of: Web/HTTP/Headers/X-Frame-Options +--- +<div>{{HTTPSidebar}}</div> + +<p><strong><code>X-Frame-Options</code></strong> は <a href="/ja/docs/Web/HTTP">HTTP</a> のレスポンスヘッダーで、ブラウザーがページを {{HTMLElement("frame")}}, {{HTMLElement("iframe")}}, {{HTMLElement("embed")}}, {{HTMLElement("object")}} の中に表示することを許可するかどうかを示すために使用されます。サイトはコンテンツが他のサイトに埋め込まれないよう保証することで、{{interwiki("wikipedia", "クリックジャッキング")}}攻撃を防ぐために使用することができます。</p> + +<p>強化されたセキュリティは、ユーザーが <code>X-Frame-Options</code> に対応したブラウザーを使用して文書にアクセスした場合のみ提供されます。</p> + +<div class="note"> +<p><strong>Note:</strong> {{HTTPHeader("Content-Security-Policy")}} ヘッダーには <code><a href="/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors">frame-ancestors</a></code> ディレクティブがあり、対応しているブラウザーにおいてこのヘッダーを<a href="https://www.w3.org/TR/CSP2/#frame-ancestors-and-frame-options">置き換えて</a>います。</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<p><code>X-Frame-Options</code> には二つの有効なディレクティブがあります。</p> + +<pre class="syntaxbox notranslate">X-Frame-Options: DENY +X-Frame-Options: SAMEORIGIN +</pre> + +<h3 id="Directives" name="Directives">ディレクティブ</h3> + +<p><code>DENY</code> を指定した場合は、他のサイトからフレームにページを読み込もうとした時に失敗するだけでなく、同じサイトから読み込もうとした時にも失敗します。一方、 <code>SAMEORIGIN</code> を指定した場合は、フレームの中のページを含むサイトが、ページを提供しているサイトと同じである限り、フレーム内でページを利用することができます。</p> + +<dl> + <dt><code>DENY</code></dt> + <dd>サイト側の意図に関わらず、ページをフレーム内に表示することはできません。</dd> + <dt><code>SAMEORIGIN</code></dt> + <dd>ページは、ページ自体と同じオリジンのフレーム内でのみ表示されます。仕様書ではこのオプションを最上位、親、チェーン全体のどれに適用するかをブラウザーベンダーに任せていますが、すべての生成元が同じオリジンでない限り、利用価値がないと議論されています。 ({{bug(725490)}} を参照)。対応の詳細は{{anch("Browser compatibility", "ブラウザーの互換性")}}もご覧ください。</dd> + <dt><code>ALLOW-FROM <em>uri</em></code><em> (廃止)</em></dt> + <dd>これは廃止されたディレクティブであり、最近のブラウザーでは動作しません。使用しないでください。対応している古いブラウザーでは、ページは指定されたオリジン <em>uri</em> のフレーム内でのみ表示されます。なお、従来の Firefox では <code>SAMEORIGIN</code> と同じ問題がありました。 — フレームの生成元が同じオリジンであるかどうかをチェックしません。 {{HTTPHeader("Content-Security-Policy")}} ヘッダーには <code>frame-ancestors</code> ディレクティブがあり、代わりにこれを使用することができます。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<div class="note"> +<p><strong>メモ:</strong> meta タグに設定しても意味がありません。例えば、 <code><meta http-equiv="X-Frame-Options" content="deny"></code> は効果がありません。使用しないでください。以下の例にあるように、 <code>X-Frame-Options</code> は HTTP ヘッダーを通じて設定された場合のみ動作します。</p> +</div> + +<h3 id="Configuring_Apache" name="Configuring_Apache">Apache の設定</h3> + +<p>Apache で X-Frame-Options ヘッダをすべてのページで送信するように設定するには、サイトの設定に以下の記述を追加してください。</p> + +<pre class="notranslate">Header always set X-Frame-Options "SAMEORIGIN" +</pre> + +<p>Apache で <code>X-Frame-Options</code> を DENY に設定するには、サイトの設定に以下の記述を追加してください</p> + +<pre class="notranslate">Header set X-Frame-Options "DENY" +</pre> + +<h3 id="Configuring_nginx" name="Configuring_nginx">nginx の設定</h3> + +<p>nginx で <code>X-Frame-Options</code> ヘッダーを送信するように設定するには、以下の記述を http、server、 location のいずれかの設定に追加してください。</p> + +<pre class="notranslate">add_header X-Frame-Options SAMEORIGIN always; +</pre> + +<h3 id="Configuring_IIS" name="Configuring_IIS">IIS の設定</h3> + +<p>IIS で <code>X-Frame-Options</code> ヘッダーを送信するように設定するには、サイトの <code>Web.config</code> ファイルに以下の設定を追加してください。</p> + +<pre class="brush: xml notranslate"><system.webServer> + ... + + <httpProtocol> + <customHeaders> + <add name="X-Frame-Options" value="SAMEORIGIN" /> + </customHeaders> + </httpProtocol> + + ... +</system.webServer> +</pre> + +<h3 id="Configuring_HAProxy" name="Configuring_HAProxy">HAProxy の設定</h3> + +<p>HAProxy で <code>X-Frame-Options</code> ヘッダーを送信するように設定するには、以下の記述を front-end、listen、backend のいずれかの設定に追加してください。</p> + +<pre class="notranslate">rspadd X-Frame-Options:\ SAMEORIGIN +</pre> + +<p>他にも、より新しいバージョンでは次のような設定ができます。</p> + +<pre class="notranslate">http-response set-header X-Frame-Options SAMEORIGIN +</pre> + +<h3 id="Configuring_Express" name="Configuring_Express">Express の設定</h3> + +<p>Express で <code>X-Frame-Options</code> ヘッダーを送信するように設定するには、 <a href="https://helmetjs.github.io/">helmet</a> を使用して <a href="https://helmetjs.github.io/docs/frameguard/">frameguard</a> でヘッダーを設定します。以下の記述をサーバー設定に追加してください。</p> + +<pre class="brush: js notranslate">const helmet = require('helmet'); +const app = express(); +app.use(helmet.frameguard({ action: 'SAMEORIGIN' })); +</pre> + +<p>他にも、直接 frameguard を使用することもできます。</p> + +<pre class="brush: js notranslate">const frameguard = require('frameguard') +app.use(frameguard({ action: 'SAMEORIGIN' })) +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + <th scope="col">題名</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7034")}}</td> + <td>HTTP Header Field X-Frame-Options</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.X-Frame-Options")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors"><code>frame-ancestors</code> (CSP)</a></li> + <li><a href="https://tools.ietf.org/html/rfc7034">HTTP Header Field X-Frame-Options - RFC 7034</a></li> + <li><a class="external" href="https://blogs.msdn.com/b/ie/archive/2009/01/27/ie8-security-part-vii-clickjacking-defenses.aspx">ClickJacking Defenses - IEBlog</a></li> + <li><a href="https://blogs.msdn.com/b/ieinternals/archive/2010/03/30/combating-clickjacking-with-x-frame-options.aspx">Combating ClickJacking with X-Frame-Options - IEInternals</a></li> +</ul> diff --git a/files/ja/web/http/headers/x-xss-protection/index.html b/files/ja/web/http/headers/x-xss-protection/index.html new file mode 100644 index 0000000000..1b73646d98 --- /dev/null +++ b/files/ja/web/http/headers/x-xss-protection/index.html @@ -0,0 +1,97 @@ +--- +title: X-XSS-Protection +slug: Web/HTTP/Headers/X-XSS-Protection +tags: + - HTTP + - Reference + - XSS + - セキュリティ + - ヘッダー +translation_of: Web/HTTP/Headers/X-XSS-Protection +--- +<div>{{HTTPSidebar}}</div> + +<p>HTTP の <strong><code>X-XSS-Protection</code></strong> レスポンスヘッダーは Internet Explorer, Chrome, Safari の機能で、反射型クロスサイトスクリプティング ({{Glossary("XSS")}}) 攻撃を検出したときに、ページの読み込みを停止するためのものです。強い {{HTTPHeader("Content-Security-Policy")}} をサイトが実装して、インライン JavaScript の使用を無効にしていれば (<code>'unsafe-inline'</code>)、現在のブラウザーではこれらの防御は大枠で不要なものですが、まだ {{Glossary("CSP")}} に対応していない古いウェブブラウザーを使用しているユーザーには防御になります。</p> + +<div class="note"> +<ul> + <li>Chrome は <a href="https://www.chromestatus.com/feature/5021976655560704">XSS Auditor を削除</a>しました</li> + <li>Firefox は対応しておらず、 <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=528661"><code>X-XSS-Protection</code> を今後も実装しません</a></li> + <li>Edge は <a href="https://blogs.windows.com/windowsexperience/2018/07/25/announcing-windows-10-insider-preview-build-17723-and-build-18204/">XSS filter を廃止しました</a></li> +</ul> + +<p>つまり、レガシーブラウザをサポートする必要がない場合は、代わりに <code><a href="/en-US/docs/Web/HTTP/Headers/Content-Security-Policy">Content-Security-Policy</a></code> を使用し <code>unsafe-inline</code> を許可しないことをお勧めします。</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">ヘッダー種別</th> + <td>{{Glossary("Response header", "レスポンスヘッダー")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name", "禁止ヘッダー名")}}</th> + <td>いいえ</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox notranslate">X-XSS-Protection: 0 +X-XSS-Protection: 1 +X-XSS-Protection: 1; mode=block +X-XSS-Protection: 1; report=<reporting-uri> +</pre> + +<dl> + <dt>0</dt> + <dd>XSS フィルタリングを無効化します。</dd> + <dt>1</dt> + <dd>XSS フィルタリングを有効化します (通常はブラウザーの既定値です)。クロスサイトスクリプティング攻撃を検知すると、ブラウザーはページをサニタイズします (安全でない部分を取り除きます)。</dd> + <dt>1; mode=block</dt> + <dd>XSS フィルタリングを有効化します。攻撃を検知すると、ページをサニタイジングするよりも、ページのレンダリングを停止します。</dd> + <dt>1; report=<reporting-URI> (Chromium only)</dt> + <dd>XSS フィルタリングを有効化します。クロスサイトスクリプティング攻撃を検知すると、ブラウザーはページをサニタイズし、攻撃レポートを作成します。レポートを送信するために、 CSP {{CSP("report-uri")}} ディレクティブ機能を利用します。</dd> +</dl> + +<h2 id="Example" name="Example">例</h2> + +<p>XSS 攻撃が反映されたページを見つけたらその読み込みをブロックする場合。</p> + +<pre class="brush: bash notranslate">X-XSS-Protection: 1; mode=block</pre> + +<p>PHP</p> + +<pre class="brush: php notranslate">header("X-XSS-Protection: 1; mode=block");</pre> + +<p>Apache (.htaccess)</p> + +<pre class="brush: bash notranslate"><IfModule mod_headers.c> + Header set X-XSS-Protection "1; mode=block" +</IfModule></pre> + +<p>Nginx</p> + +<pre class="brush: bash notranslate">add_header "X-XSS-Protection" "1; mode=block";</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<p>仕様書や草案で定義されたものではありません。</p> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("http.headers.X-XSS-Protection")}}</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li><a href="https://blogs.msdn.microsoft.com/ieinternals/2011/01/31/controlling-the-xss-filter/">Controlling the XSS Filter – Microsoft</a></li> + <li><a href="https://www.virtuesecurity.com/blog/understanding-xss-auditor/">Understanding XSS Auditor – Virtue Security</a></li> + <li> + <p><a href="https://blog.innerht.ml/the-misunderstood-x-xss-protection/">The misunderstood X-XSS-Protection – blog.innerht.ml</a></p> + </li> +</ul> |