From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../web/http/headers/accept-ch-lifetime/index.html | 53 +++ files/ja/web/http/headers/accept-ch/index.html | 59 +++ .../ja/web/http/headers/accept-charset/index.html | 94 ++++ .../ja/web/http/headers/accept-encoding/index.html | 117 +++++ .../ja/web/http/headers/accept-language/index.html | 101 +++++ files/ja/web/http/headers/accept-patch/index.html | 88 ++++ files/ja/web/http/headers/accept-ranges/index.html | 79 ++++ files/ja/web/http/headers/accept/index.html | 97 +++++ .../access-control-allow-credentials/index.html | 101 +++++ .../access-control-allow-headers/index.html | 127 ++++++ .../access-control-allow-methods/index.html | 82 ++++ .../headers/access-control-allow-origin/index.html | 107 +++++ .../access-control-expose-headers/index.html | 107 +++++ .../http/headers/access-control-max-age/index.html | 81 ++++ .../access-control-request-headers/index.html | 73 ++++ .../access-control-request-method/index.html | 73 ++++ files/ja/web/http/headers/age/index.html | 74 ++++ files/ja/web/http/headers/allow/index.html | 67 +++ files/ja/web/http/headers/alt-svc/index.html | 72 ++++ files/ja/web/http/headers/authorization/index.html | 92 ++++ files/ja/web/http/headers/cache-control/index.html | 230 ++++++++++ .../ja/web/http/headers/clear-site-data/index.html | 117 +++++ files/ja/web/http/headers/connection/index.html | 53 +++ .../http/headers/content-disposition/index.html | 136 ++++++ .../web/http/headers/content-encoding/index.html | 110 +++++ .../web/http/headers/content-language/index.html | 105 +++++ .../ja/web/http/headers/content-length/index.html | 68 +++ .../web/http/headers/content-location/index.html | 162 +++++++ files/ja/web/http/headers/content-range/index.html | 89 ++++ .../content-security-policy-report-only/index.html | 154 +++++++ .../content-security-policy/base-uri/index.html | 108 +++++ .../block-all-mixed-content/index.html | 72 ++++ .../content-security-policy/connect-src/index.html | 130 ++++++ .../content-security-policy/default-src/index.html | 183 ++++++++ .../frame-ancestors/index.html | 127 ++++++ .../content-security-policy/frame-src/index.html | 99 +++++ .../content-security-policy/img-src/index.html | 99 +++++ .../headers/content-security-policy/index.html | 262 ++++++++++++ .../manifest-src/index.html | 95 +++++ .../content-security-policy/media-src/index.html | 103 +++++ .../content-security-policy/object-src/index.html | 105 +++++ .../plugin-types/index.html | 123 ++++++ .../prefetch-src/index.html | 89 ++++ .../content-security-policy/referrer/index.html | 61 +++ .../content-security-policy/report-to/index.html | 83 ++++ .../require-sri-for/index.html | 59 +++ .../content-security-policy/sandbox/index.html | 113 +++++ .../script-src-elem/index.html | 98 +++++ .../content-security-policy/script-src/index.html | 176 ++++++++ .../content-security-policy/style-src/index.html | 180 ++++++++ .../trusted-types/index.html | 70 +++ .../upgrade-insecure-requests/index.html | 90 ++++ .../content-security-policy/worker-src/index.html | 97 +++++ files/ja/web/http/headers/content-type/index.html | 124 ++++++ files/ja/web/http/headers/cookie/index.html | 76 ++++ files/ja/web/http/headers/cookie2/index.html | 59 +++ .../cross-origin-resource-policy/index.html | 78 ++++ files/ja/web/http/headers/date/index.html | 100 +++++ files/ja/web/http/headers/device-memory/index.html | 85 ++++ files/ja/web/http/headers/dnt/index.html | 91 ++++ files/ja/web/http/headers/dpr/index.html | 61 +++ files/ja/web/http/headers/early-data/index.html | 62 +++ files/ja/web/http/headers/etag/index.html | 107 +++++ files/ja/web/http/headers/expect-ct/index.html | 89 ++++ files/ja/web/http/headers/expect/index.html | 96 +++++ files/ja/web/http/headers/expires/index.html | 85 ++++ .../headers/feature-policy/autoplay/index.html | 59 +++ .../http/headers/feature-policy/battery/index.html | 62 +++ .../http/headers/feature-policy/camera/index.html | 57 +++ .../feature-policy/encrypted-media/index.html | 67 +++ .../headers/feature-policy/fullscreen/index.html | 89 ++++ .../headers/feature-policy/geolocation/index.html | 78 ++++ .../ja/web/http/headers/feature-policy/index.html | 161 +++++++ .../headers/feature-policy/microphone/index.html | 57 +++ .../http/headers/feature-policy/midi/index.html | 62 +++ .../http/headers/feature-policy/payment/index.html | 68 +++ .../web/http/headers/feature-policy/vr/index.html | 71 ++++ .../web/http/headers/feature-policy/xr/index.html | 8 + files/ja/web/http/headers/forwarded/index.html | 118 +++++ files/ja/web/http/headers/from/index.html | 74 ++++ files/ja/web/http/headers/host/index.html | 78 ++++ files/ja/web/http/headers/if-match/index.html | 94 ++++ .../web/http/headers/if-modified-since/index.html | 97 +++++ files/ja/web/http/headers/if-none-match/index.html | 98 +++++ files/ja/web/http/headers/if-range/index.html | 104 +++++ .../http/headers/if-unmodified-since/index.html | 101 +++++ files/ja/web/http/headers/index.html | 461 ++++++++++++++++++++ files/ja/web/http/headers/index/index.html | 13 + files/ja/web/http/headers/keep-alive/index.html | 99 +++++ files/ja/web/http/headers/last-modified/index.html | 94 ++++ files/ja/web/http/headers/link/index.html | 82 ++++ files/ja/web/http/headers/location/index.html | 83 ++++ files/ja/web/http/headers/nel/index.html | 58 +++ files/ja/web/http/headers/origin/index.html | 87 ++++ files/ja/web/http/headers/pragma/index.html | 83 ++++ .../web/http/headers/proxy-authenticate/index.html | 85 ++++ .../http/headers/proxy-authorization/index.html | 77 ++++ files/ja/web/http/headers/range/index.html | 97 +++++ files/ja/web/http/headers/referer/index.html | 88 ++++ .../ja/web/http/headers/referrer-policy/index.html | 258 +++++++++++ files/ja/web/http/headers/retry-after/index.html | 87 ++++ files/ja/web/http/headers/server-timing/index.html | 89 ++++ files/ja/web/http/headers/server/index.html | 78 ++++ files/ja/web/http/headers/set-cookie/index.html | 201 +++++++++ .../http/headers/set-cookie/samesite/index.html | 119 ++++++ files/ja/web/http/headers/set-cookie2/index.html | 75 ++++ files/ja/web/http/headers/sourcemap/index.html | 71 ++++ .../headers/strict-transport-security/index.html | 123 ++++++ .../http/headers/timing-allow-origin/index.html | 85 ++++ files/ja/web/http/headers/tk/index.html | 103 +++++ .../web/http/headers/transfer-encoding/index.html | 113 +++++ .../headers/upgrade-insecure-requests/index.html | 75 ++++ .../web/http/headers/user-agent/firefox/index.html | 473 +++++++++++++++++++++ files/ja/web/http/headers/user-agent/index.html | 148 +++++++ files/ja/web/http/headers/vary/index.html | 90 ++++ files/ja/web/http/headers/via/index.html | 76 ++++ files/ja/web/http/headers/warning/index.html | 146 +++++++ .../web/http/headers/www-authenticate/index.html | 93 ++++ .../http/headers/x-content-type-options/index.html | 101 +++++ .../http/headers/x-dns-prefetch-control/index.html | 97 +++++ .../ja/web/http/headers/x-forwarded-for/index.html | 81 ++++ .../web/http/headers/x-forwarded-host/index.html | 70 +++ .../web/http/headers/x-forwarded-proto/index.html | 74 ++++ .../ja/web/http/headers/x-frame-options/index.html | 158 +++++++ .../web/http/headers/x-xss-protection/index.html | 97 +++++ 125 files changed, 12894 insertions(+) create mode 100644 files/ja/web/http/headers/accept-ch-lifetime/index.html create mode 100644 files/ja/web/http/headers/accept-ch/index.html create mode 100644 files/ja/web/http/headers/accept-charset/index.html create mode 100644 files/ja/web/http/headers/accept-encoding/index.html create mode 100644 files/ja/web/http/headers/accept-language/index.html create mode 100644 files/ja/web/http/headers/accept-patch/index.html create mode 100644 files/ja/web/http/headers/accept-ranges/index.html create mode 100644 files/ja/web/http/headers/accept/index.html create mode 100644 files/ja/web/http/headers/access-control-allow-credentials/index.html create mode 100644 files/ja/web/http/headers/access-control-allow-headers/index.html create mode 100644 files/ja/web/http/headers/access-control-allow-methods/index.html create mode 100644 files/ja/web/http/headers/access-control-allow-origin/index.html create mode 100644 files/ja/web/http/headers/access-control-expose-headers/index.html create mode 100644 files/ja/web/http/headers/access-control-max-age/index.html create mode 100644 files/ja/web/http/headers/access-control-request-headers/index.html create mode 100644 files/ja/web/http/headers/access-control-request-method/index.html create mode 100644 files/ja/web/http/headers/age/index.html create mode 100644 files/ja/web/http/headers/allow/index.html create mode 100644 files/ja/web/http/headers/alt-svc/index.html create mode 100644 files/ja/web/http/headers/authorization/index.html create mode 100644 files/ja/web/http/headers/cache-control/index.html create mode 100644 files/ja/web/http/headers/clear-site-data/index.html create mode 100644 files/ja/web/http/headers/connection/index.html create mode 100644 files/ja/web/http/headers/content-disposition/index.html create mode 100644 files/ja/web/http/headers/content-encoding/index.html create mode 100644 files/ja/web/http/headers/content-language/index.html create mode 100644 files/ja/web/http/headers/content-length/index.html create mode 100644 files/ja/web/http/headers/content-location/index.html create mode 100644 files/ja/web/http/headers/content-range/index.html create mode 100644 files/ja/web/http/headers/content-security-policy-report-only/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/base-uri/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/block-all-mixed-content/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/connect-src/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/default-src/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/frame-ancestors/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/frame-src/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/img-src/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/manifest-src/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/media-src/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/object-src/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/plugin-types/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/prefetch-src/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/referrer/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/report-to/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/require-sri-for/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/sandbox/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/script-src-elem/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/script-src/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/style-src/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/trusted-types/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/upgrade-insecure-requests/index.html create mode 100644 files/ja/web/http/headers/content-security-policy/worker-src/index.html create mode 100644 files/ja/web/http/headers/content-type/index.html create mode 100644 files/ja/web/http/headers/cookie/index.html create mode 100644 files/ja/web/http/headers/cookie2/index.html create mode 100644 files/ja/web/http/headers/cross-origin-resource-policy/index.html create mode 100644 files/ja/web/http/headers/date/index.html create mode 100644 files/ja/web/http/headers/device-memory/index.html create mode 100644 files/ja/web/http/headers/dnt/index.html create mode 100644 files/ja/web/http/headers/dpr/index.html create mode 100644 files/ja/web/http/headers/early-data/index.html create mode 100644 files/ja/web/http/headers/etag/index.html create mode 100644 files/ja/web/http/headers/expect-ct/index.html create mode 100644 files/ja/web/http/headers/expect/index.html create mode 100644 files/ja/web/http/headers/expires/index.html create mode 100644 files/ja/web/http/headers/feature-policy/autoplay/index.html create mode 100644 files/ja/web/http/headers/feature-policy/battery/index.html create mode 100644 files/ja/web/http/headers/feature-policy/camera/index.html create mode 100644 files/ja/web/http/headers/feature-policy/encrypted-media/index.html create mode 100644 files/ja/web/http/headers/feature-policy/fullscreen/index.html create mode 100644 files/ja/web/http/headers/feature-policy/geolocation/index.html create mode 100644 files/ja/web/http/headers/feature-policy/index.html create mode 100644 files/ja/web/http/headers/feature-policy/microphone/index.html create mode 100644 files/ja/web/http/headers/feature-policy/midi/index.html create mode 100644 files/ja/web/http/headers/feature-policy/payment/index.html create mode 100644 files/ja/web/http/headers/feature-policy/vr/index.html create mode 100644 files/ja/web/http/headers/feature-policy/xr/index.html create mode 100644 files/ja/web/http/headers/forwarded/index.html create mode 100644 files/ja/web/http/headers/from/index.html create mode 100644 files/ja/web/http/headers/host/index.html create mode 100644 files/ja/web/http/headers/if-match/index.html create mode 100644 files/ja/web/http/headers/if-modified-since/index.html create mode 100644 files/ja/web/http/headers/if-none-match/index.html create mode 100644 files/ja/web/http/headers/if-range/index.html create mode 100644 files/ja/web/http/headers/if-unmodified-since/index.html create mode 100644 files/ja/web/http/headers/index.html create mode 100644 files/ja/web/http/headers/index/index.html create mode 100644 files/ja/web/http/headers/keep-alive/index.html create mode 100644 files/ja/web/http/headers/last-modified/index.html create mode 100644 files/ja/web/http/headers/link/index.html create mode 100644 files/ja/web/http/headers/location/index.html create mode 100644 files/ja/web/http/headers/nel/index.html create mode 100644 files/ja/web/http/headers/origin/index.html create mode 100644 files/ja/web/http/headers/pragma/index.html create mode 100644 files/ja/web/http/headers/proxy-authenticate/index.html create mode 100644 files/ja/web/http/headers/proxy-authorization/index.html create mode 100644 files/ja/web/http/headers/range/index.html create mode 100644 files/ja/web/http/headers/referer/index.html create mode 100644 files/ja/web/http/headers/referrer-policy/index.html create mode 100644 files/ja/web/http/headers/retry-after/index.html create mode 100644 files/ja/web/http/headers/server-timing/index.html create mode 100644 files/ja/web/http/headers/server/index.html create mode 100644 files/ja/web/http/headers/set-cookie/index.html create mode 100644 files/ja/web/http/headers/set-cookie/samesite/index.html create mode 100644 files/ja/web/http/headers/set-cookie2/index.html create mode 100644 files/ja/web/http/headers/sourcemap/index.html create mode 100644 files/ja/web/http/headers/strict-transport-security/index.html create mode 100644 files/ja/web/http/headers/timing-allow-origin/index.html create mode 100644 files/ja/web/http/headers/tk/index.html create mode 100644 files/ja/web/http/headers/transfer-encoding/index.html create mode 100644 files/ja/web/http/headers/upgrade-insecure-requests/index.html create mode 100644 files/ja/web/http/headers/user-agent/firefox/index.html create mode 100644 files/ja/web/http/headers/user-agent/index.html create mode 100644 files/ja/web/http/headers/vary/index.html create mode 100644 files/ja/web/http/headers/via/index.html create mode 100644 files/ja/web/http/headers/warning/index.html create mode 100644 files/ja/web/http/headers/www-authenticate/index.html create mode 100644 files/ja/web/http/headers/x-content-type-options/index.html create mode 100644 files/ja/web/http/headers/x-dns-prefetch-control/index.html create mode 100644 files/ja/web/http/headers/x-forwarded-for/index.html create mode 100644 files/ja/web/http/headers/x-forwarded-host/index.html create mode 100644 files/ja/web/http/headers/x-forwarded-proto/index.html create mode 100644 files/ja/web/http/headers/x-frame-options/index.html create mode 100644 files/ja/web/http/headers/x-xss-protection/index.html (limited to 'files/ja/web/http/headers') 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 +--- +
{{HTTPSidebar}}{{securecontext_header}}{{SeeCompatTable}}
+ +

Accept-CH-Lifetime ヘッダーは、クライアントが後続のリクエストにどのクライアントヒントのヘッダーを含める必要があるかを指定する {{HTTPHeader("Accept-CH")}} ヘッダーの値の永続性を指定するためにサーバーによって設定されます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header","レスポンスヘッダー")}}
{{Glossary("Forbidden header name","禁止ヘッダー名")}}?
+ +
+

: クライアントヒントには、安全なオリジン(TLS 経由)でのみアクセスできます。 Accept-CH ヘッダーと Accept-CH-Lifetime ヘッダーは、クライアントヒントが確実に送信されるように、すべての安全なリクエストに対して永続化する必要があります。

+
+ +

構文

+ +
Accept-CH-Lifetime: <age>
+
+ +

+ +
Accept-CH: Viewport-Width, DPR
+Accept-CH-Lifetime: 86400
+
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Accept-CH-Lifetime")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}{{securecontext_header}}{{SeeCompatTable}}
+ +

Accept-CH ヘッダーはサーバーによって設定され、クライアントが後続のリクエストに含める{{glossary("Client Hints", "クライアントヒント")}}ヘッダーを指定します。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header","レスポンスヘッダー")}}
{{Glossary("Forbidden header name","禁止ヘッダー名")}}?
+ +
+

注: クライアントヒントには、安全なオリジン (TLS 経由) でのみアクセスできます。 Accept-CH ヘッダーと Accept-CH-Lifetime ヘッダーは、クライアントヒントが確実に送信されるように、すべての安全なリクエストに対して保持する必要があります。

+
+ +

構文

+ +
Accept-CH: <list of client hints>
+
+ +

+ +
Accept-CH: DPR, Viewport-Width
+Accept-CH: Width
+Accept-CH-Lifetime: 86400
+Vary: DPR, Viewport-Width, Width
+
+ +
+

注: 受け入れられたクライアントのヒントに基づいて、レスポンスを変更することを忘れないでください。

+
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Accept-CH")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Accept-Charset は HTTP のリクエストヘッダーで、クライアントが理解できる{{glossary("character encoding", "文字エンコーディング")}}を広報します。コンテンツネゴシエーションを使用して、サーバーは提案の1つを選択、使用し、クライアントに選択結果を {{HTTPHeader("Content-Type")}} レスポンスヘッダー内、ふつうは charset= 引数の中で通知します。通常はそれぞれのリソースの既定値が正しく、これを送信するとフィンガープリンティングを許してしまうことがあるため、ブラウザーは通常、このヘッダーを設定しません。

+ +

サーバーが一致する文字エンコーディングを提供できない場合、理論的には {{HTTPStatus("406", "406 Not Acceptable")}} エラーコードを返すことができます。しかし、より使い勝手をよくするために、これはめったに行われず、 Accept-Charset ヘッダーは無視されます。

+ +
+

HTTP/1.1 の初期のバージョンでは、既定の文字エンコーディングを ISO-8859-1 と定義していました。これはすでに推奨されなくなっており、コンテンツ型ごとに個別に既定値が設定されるようになりました。

+ +

UTF-8 への対応が進み、圧倒的に推奨される文字エンコーディングになっています。設定に基づいたエントロピーを減少させることでより良いプライバシーを保証するために、すべてのブラウザーが Accept-Charset ヘッダーを省略しています。 Internet Explorer 8 以降、 Safari 5 以降、 Opera 11 以降、 Firefox 10 以降、 Chrome 27 以降は送信しなくなりました。

+
+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}はい
+ +

構文

+ +
Accept-Charset: <charset>
+
+// 複数の型を{{glossary("quality values", "品質値")}}で重みづけした構文
+Accept-Charset: utf-8, iso-8859-1;q=0.5
+ +

ディレクティブ

+ +
+
<charset>
+
utf-8 または iso-8859-15 のような文字セット。
+
*
+
ヘッダー内の他の場所に記述されていない文字セット。 '*' はワイルドカードとして使用されます。
+
;q=<weight>
+
エンコーディングはすべて、重みと呼ばれる相対的な{{glossary("quality values", "品質値")}}を使用して表現された設定の順番で配置されます。
+
+ +

+ +
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
+
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7231", "Accept-Charset", "5.3.3")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Accept-Charset")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Accept-Encoding は HTTP のリクエストヘッダーで、コンテンツのエンコーディング、ふつうは圧縮アルゴリズムのどれをクライアントが理解することができるかを示します。 コンテンツ交渉を使用して、サーバーは提案されたものから一つを選択して使用し、 {{HTTPHeader("Content-Encoding")}} レスポンスヘッダーを使用してクライアントに選択結果を知らせます。

+ +

クライアントとサーバーが同じ圧縮アルゴリズムに対応していた場合でも、 identity の値が受け付けられる場合は、サーバーはレスポンスの本文を圧縮しないことを選択する場合があります。これには主に二つの場合があります。

+ + + +

identity の値、つまりエンコードをしないということは、 identity;q=0 または *;q=0identity とは別な値が明確に設定されていない限り、サーバーは{{HTTPStatus("406")}} Not Acceptable エラーを返してはいけません。

+ +
注: + + +
+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}はい
+ +

構文

+ +
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
+ +

ディレクティブ

+ +
+
gzip
+
Lempel-Ziv coding (LZ77) と32ビット CRC を用いた圧縮形式です。
+
compress
+
Lempel-Ziv-Welch (LZW) アルゴリズムを用いた圧縮形式です。
+
deflate
+
zlib 構造体と deflate 圧縮アルゴリズムを用いた圧縮形式です。
+
br
+
Brotli アルゴリズムを用いた圧縮形式です。
+
identity
+
等価関数を示します (つまり、圧縮も変更もありません)。この値は存在しなくても、常に受け付け可能とみなされます。
+
*
+
ヘッダーに挙げられていないあらゆるコンテンツエンコーディングに一致します。これはこのヘッダーがない場合の既定値です。すべてのアルゴリズムに対応しているという意味ではありません。評価される設定がないだけです。
+
;q= (q 値の重みづけ)
+
weight と呼ばれる相対的な品質質を使用して表現される設定の順序づけをするための任意の値です。
+
+ +

+ +
Accept-Encoding: gzip
+
+Accept-Encoding: gzip, compress, br
+
+Accept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1
+
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7231", "Accept-Encoding", "5.3.4")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Accept-Encoding")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

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

+ +

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

+ +

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

+ + + + + + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
{{Glossary("CORS セーフリストリクエストヘッダー")}}はい。値が 0-9, A-Z, a-z, space or *,-.;= のみであるという追加の制約あり。
+ +

構文

+ +
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
+ +

ディレクティブ

+ +
+
<language>
+
+

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

+
+
*
+
任意の言語です。 '*' はワイルドカードとして使用されます。
+
;q= (Q 値の重み)
+
重みと呼ばれる、相対的な{{glossary("Quality values", "品質値")}}を使用して表現される優先順位の順序で配置された値です。
+
+ +

+ +
Accept-Language: de
+
+Accept-Language: de-CH
+
+Accept-Language: en-US,en;q=0.5
+
+ +

仕様書

+ + + + + + + + + + + + + + + + + + +
仕様書題名
{{RFC("7231", "Accept-Language", "5.3.5")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context
BCP 47Tags for the Identification of Language
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Accept-Language")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Accept-Patch は HTTP のレスポンスヘッダーで、サーバーが認識できるメディアタイプを伝えます。

+ +

任意のメソッドに応答するAccept-Patchは、Request-URIで識別されるリソースで、 {{HTTPMethod("PATCH")}} が許可されることを意味します。 2つの一般的なケースがこれにつながります。

+ +

サポートされていないメディアタイプの {{HTTPMethod("PATCH")}} リクエストを受信したサーバーは、{{HTTPStatus("415")}} Unsupported Media Typeと、1つ以上のサポートされているメディアタイプを参照するAccept-Patchヘッダーで応答する可能性があります。

+ +
注: + + +
+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}はい
+ +

構文

+ +
Accept-Patch: application/example, text/example
+Accept-Patch: text/example;charset=utf-8
+Accept-Patch: application/merge-patch+json
+
+ +

ディレクティブ

+ +

なし

+ +

+ +
Accept-Patch: application/example, text/example
+
+Accept-Patch: text/example;charset=utf-8
+
+Accept-Patch: application/merge-patch+json
+
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("5789", "Accept-Patch", "3.1")}}HTTP PATCH
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Accept-Patch")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の Accept-Ranges レスポンスヘッダーは、サーバーが部分的なリクエストに対応していることを周知するために使用するマーカーです。このフィールドの値は、範囲の定義に使用できる単位を示します。

+ +

Accept-Ranges ヘッダーがあると、ブラウザーは開始から再開するのではなく、中断されたダウンロードを再開しようとする可能性があります。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Accept-Ranges: <range-unit>
+Accept-Ranges: none
+ +

ディレクティブ

+ +
+
<range-unit>
+
サーバーが対応している範囲の単位を定義します。 bytes は {{RFC("7233")}} で公式に定義されている唯一の範囲の単位ですが、追加の範囲の単位が HTTP Range Unit Registry に登録されている可能性があります。
+
none
+
範囲の単位には対応していないことを示し、これはヘッダー自体がないのと等価になりますので、滅多に使用されませんが、 IE9 のように一部のブラウザーでは、ダウンロードマネージャーで一時停止ボタンを無効にしたり削除したりするために使用されます。
+
+ +

+ +
Accept-Ranges: bytes
+
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7233", "Accept-Ranges", "2.3")}}Hypertext Transfer Protocol (HTTP/1.1): Range Requests
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Accept-Ranges")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の Accept リクエストヘッダーは、クライアントが理解できるコンテンツタイプを MIME タイプで伝えます。 コンテンツネゴシエーションを使用して、サーバーは提案のうちの一つを選択し、それを使用してクライアントに {{HTTPHeader("Content-Type")}} レスポンスヘッダーで選択を伝えます。ブラウザーはリクエストを行う場面に応じて適切な値をこのヘッダーに設定します。 CSS スタイルシートを取得するときは、画像、動画、スクリプトを取得するときとは異なる値をリクエストで設定します。

+ + + + + + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
{{Glossary("CORS-safelisted request header", "CORS セーフリストリクエストヘッダー")}}はい、ただし、値に CORS-unsafe リクエストヘッダーバイト、 0x00-0x1F (0x09 (HT) を除く)、"():<>?@[\]{}、0x7F (DEL) を含むことができないという追加の制限があります。
+ +

構文

+ +
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
+
+ +

ディレクティブ

+ +
+
<MIME_type>/<MIME_subtype>
+
単一の詳細な MIME タイプ、例えば text/html です。
+
<MIME_type>/*
+
MIME タイプですが、サブタイプがありません。 image/*image/png, image/svg, image/gif 及びその他の画像タイプに一致します。
+
*/*
+
すべての MIME タイプ
+
;q= (Q 値の重み)
+
重みと呼ばれる、相対的な品質値を使用して表現される優先順位の順序で配置された値です。
+
+ +

+ +
Accept: text/html
+
+Accept: image/*
+
+// 全般的な既定値
+Accept: */*
+
+// ナビゲーション時のリクエストの既定値
+Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8
+
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7231", "Accept", "5.3.2")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Accept")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Access-Control-Allow-Credentials レスポンスヘッダーは、リクエストの資格情報モード ({{domxref("Request.credentials")}}) が include である場合に、レスポンスをフロントエンドの JavaScript コードに公開するかどうかをブラウザーに指示します。

+ +

証明書の資格情報モード ({{domxref("Request.credentials")}}) が include である場合、レスポンスがフロントエンドの JavaScript コードに公開されるのは Access-Control-Allow-Credentials の値が true である場合のみです。

+ +

資格情報は Cookie、認証ヘッダー、または TLS クライアント証明書です。

+ +

プリフライトリクエストに対するレスポンスの一部として使用された場合は、実際のリクエストが資格情報を使用して行われた可能性があるかどうかを示します。なお、単純な {{HTTPMethod("GET")}} リクエストはプリフライトが行われないので、資格情報を持つリソースに対してリクエストが行われた場合、このヘッダーがリソースとともに返されない場合、レスポンスはブラウザーによって無視されウェブコンテンツは返されません。

+ +

Access-Control-Allow-Credentials ヘッダーは、 {{domxref("XMLHttpRequest.withCredentials")}} プロパティまたは Fetch API の {{domxref("Request.Request()", "Request()")}} コンストラクター内の credentials オプションとの組み合わせで動作します。資格情報を含む CORS リクエストにおいて、ブラウザーがレスポンスを JavaScript コードに公開するようにするためには、サーバー側 (Access-Control-Allow-Credentials ヘッダーを使用) とクライアント側 (XHR, Fetch Ajax リクエストの資格情報モードの設定) の両方が、資格情報を含むことを承認しなければなりません。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Access-Control-Allow-Credentials: true
+
+ +

ディレクティブ

+ +
+
true
+
このヘッダーの唯一の有効な値は true です (大文字小文字を区別します)。資格情報を必要としない場合は、 (値を false に設定するのではなく) このヘッダーを完全に省略します。
+
+ +

+ +

資格情報の許可:

+ +
Access-Control-Allow-Credentials: true
+ +

XHR を資格情報付きで使用:

+ +
var xhr = new XMLHttpRequest();
+xhr.open('GET', 'http://example.com/', true);
+xhr.withCredentials = true;
+xhr.send(null);
+ +

Fetch を資格情報付きで使用:

+ +
fetch(url, {
+  credentials: 'include'
+})
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('Fetch','#http-access-control-allow-credentials', 'Access-Control-Allow-Credentials')}}{{Spec2("Fetch")}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Access-Control-Allow-Credentials")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Access-Control-Allow-Headers レスポンスヘッダーは、 {{HTTPHeader("Access-Control-Request-Headers")}} を含む{{glossary("preflight request", "プリフライトリクエスト")}}へのレスポンスで、実際のリクエストの間に使用できる HTTP ヘッダーを示すために使用されます。

+ +

このヘッダーは、リクエストに {{HTTPHeader("Access-Control-Request-Headers")}} ヘッダーが含まれている時に必要です。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Access-Control-Allow-Headers: <header-name>[, <header-name>]*
+Access-Control-Allow-Headers: *
+
+ +

ディレクティブ

+ +
+
<header-name>
+
対応しているリクエストヘッダーの名前です。ヘッダーはコンマで区切って、任意の数のリストにすることができます。
+
* (ワイルドカード)
+
"*" の値は、資格情報のないリクエスト (HTTP Cookie や HTTP の認証情報のないリクエスト) の特殊なワイルドカード値です。認証情報付きのリクエストでは、特別な意味のない "*" というヘッダー名として扱われます。なお、 {{HTTPHeader("Authorization")}} ヘッダーはワイルドカードで表すことができず、常に明示的に列挙する必要があります。
+
+ +

{{glossary("CORS-safelisted_request_header", "CORS セーフリストリクエストヘッダー")}}, {{HTTPHeader("Accept")}}, {{HTTPHeader("Accept-Language")}}, {{HTTPHeader("Content-Language")}}, {{HTTPHeader("Content-Type")}} は常に許可されており、このヘッダーで列挙する必要はありません。しかし、これらのヘッダーを Access-Control-Allow-Headers に列挙することで、これらのヘッダーでも追加の制約の適用を回避することができることに注意してください。

+ +

+ +

カスタムヘッダー

+ +

Access-Control-Allow-Headers ヘッダーがどのように見えるかの例です。CORS セーフリストリクエストヘッダーに加えて、 X-Custom-Header という名前のカスタムヘッダーがサーバーへの CORS リクエストで対応しています。

+ +
Access-Control-Allow-Headers: X-Custom-Header
+ +

複数のヘッダー

+ +

この例は、複数のヘッダーへの対応を指定するときの Access-Control-Allow-Headers を示しています。

+ +
Access-Control-Allow-Headers: X-Custom-Header, Upgrade-Insecure-Requests
+ +

追加の制約の回避

+ +

{{glossary("CORS-safelisted_request_header", "CORS セーフリストリクエストヘッダー")}}は常に許可され、ふつうは Access-Control-Allow-Headers に列挙する必要はありませんが、それでも列挙すれば追加の制約が適用されることを回避できます。

+ +
Access-Control-Allow-Headers: Accept
+ +

プリフライトリクエストの例

+ +

Access-Control-Allow-Headers を伴うプリフライトリクエストの例を見てみましょう。

+ +

リクエスト

+ +

最初にリクエストです。プリフライトリクエストは {{HTTPMethod("OPTIONS")}} リクエストで、次のように3つのプリフライトリクエストヘッダー、 {{HTTPHeader("Access-Control-Request-Method")}}, {{HTTPHeader("Access-Control-Request-Headers")}}, {{HTTPHeader("Origin")}} の組み合わせを含みます。

+ +
OPTIONS /resource/foo
+Access-Control-Request-Method: DELETE
+Access-Control-Request-Headers: origin, x-requested-with
+Origin: https://foo.bar.org
+ +

レスポンス

+ +

CORS リクエストが {{HTTPMethod("DELETE")}} メソッドを使うことをサーバーが許可した場合、 {{HTTPHeader("Access-Control-Allow-Methods")}} レスポンスヘッダーで返信し、そこでは DELETE とともに対応するその他のメソッドのリストが含まれます。

+ +
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
+ +

要求されたメソッドに対応していない場合は、サーバーはエラーを返します。

+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('Fetch','#http-access-control-allow-headers', 'Access-Control-Allow-Headers')}}{{Spec2("Fetch")}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Access-Control-Allow-Headers")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Access-Control-Allow-Methods レスポンスヘッダーは、{{glossary("preflight request", "プリフライトリクエスト")}}のレスポンスの中で、リソースにアクセスするときに利用できる1つまたは複数のメソッドを指定します。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Access-Control-Allow-Methods: <method>, <method>, ...
+Access-Control-Allow-Methods: *
+
+ +

ディレクティブ

+ +
+
<method>
+
許可された HTTP リクエストメソッドのコンマ区切りリスト。
+
* (ワイルドカード)
+
"*" の値は、資格情報のないリクエスト (HTTP Cookie や HTTP 認証情報のないリクエスト) の特殊なワイルドカードです。資格情報付きのリクエストでは、特別な意味のない "*" というメソッド名として扱われます。
+
+ +

+ +
Access-Control-Allow-Methods: POST, GET, OPTIONS
+Access-Control-Allow-Methods: *
+
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('Fetch','#http-access-control-allow-methods', 'Access-Control-Allow-Methods')}}{{Spec2("Fetch")}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Access-Control-Allow-Methods")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Access-Control-Allow-Origin レスポンスヘッダーは、指定された{{glossary("origin", "オリジン")}}からのリクエストを行うコードでレスポンスが共有できるかどうかを示します。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Access-Control-Allow-Origin: *
+Access-Control-Allow-Origin: <origin>
+Access-Control-Allow-Origin: null
+
+ +

ディレクティブ

+ +
+
*
+
資格情報がないリクエストでは、リテラル値 "*" をワイルドカードとして指定することができます。この値はブラウザーに、すべてのオリジンからのリクエストコードにリソースへのアクセスを許可するように指示します。資格情報がある時にワイルドカードを使用すると、エラーを返します
+
<origin>
+
オリジンを指定します。1つのオリジンだけを指定することができます。サーバーが複数のオリジンからのクライアントに対応している場合、リクエストを行った特定のクライアントのオリジンを返さなければなりません。
+
null
+
オリジンを "null" に指定します。 +
注: null使用しないでください。「Access-Control-Allow-Origin: "null" を返すと安全であるように見えますが、リソースのオリジンが階層的ではないスキーム (例えば data:file:) を使用しており、サンドボックス化された文書はすべて "null" となるように定義されています。多くのユーザーエージェントはそのような文書に Access-Control-Allow-Origin: "null" ヘッダーが付いているとアクセスを許可するので、あらゆるオリジンが "null" を持つ悪意のある文書を生成することができます。したがって、 ACAO ヘッダーで "null" 値を使用することは避けるべきです。」
+
+
+ +

+ +

あらゆるオリジンからのコードにリソースへのアクセスを許可するようブラウザーに指示するレスポンスには、次のような行を含めてください。

+ +
Access-Control-Allow-Origin: *
+ +

https://developer.mozilla.org のオリジンからリクエストを行うコードに対して、リソースへのアクセスを許可するようブラウザーに指示するレスポンスには、次のような行を含めてください。

+ +
Access-Control-Allow-Origin: https://developer.mozilla.org
+ +

Access-Control-Allow-Origin の値で複数のオリジンに許可を限定するには、サーバー側で {{HTTPHeader("Origin")}} リクエストヘッダーの値をチェックし、許可するオリジンのリストと比較して、 {{HTTPHeader("Origin")}} の値がリスト中にあれば、 Access-Control-Allow-Origin の値に {{HTTPHeader("Origin")}} と同じ値を設定してください。

+ +

CORS とキャッシング

+ +

Access-Control-Allow-Origin の値が ("*" ワイルドカードではなく) 具体的なオリジンであるレスポンスをサーバーが送信する場合、レスポンスには {{HTTPHeader("Vary")}} レスポンスヘッダーに Origin という値を設定して、 Origin リクエストヘッダーの値によって値が変わることをブラウザーに対して示してください。

+ +
Access-Control-Allow-Origin: https://developer.mozilla.org
+Vary: Origin
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('Fetch','#http-access-control-allow-origin', 'Access-Control-Allow-Origin')}}{{Spec2("Fetch")}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Access-Control-Allow-Origin")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Access-Control-Expose-Headers レスポンスヘッダーは、レスポンスの一部としてどのヘッダーを公開するかを、その名前を列挙して示します。

+ +

既定では、公開される {{Glossary("CORS-safelisted response header", "CORS セーフリストレスポンスヘッダー")}}は7つだけです。

+ + + +

クライアントが他のヘッダーにアクセスできるようにするには、 Access-Control-Expose-Headers ヘッダーを使用してヘッダーを列挙する必要があります。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Access-Control-Expose-Headers: <header-name>, <header-name>, ...
+Access-Control-Expose-Headers: *
+
+ +

ディレクティブ

+ +
+
<header-name>
+
ゼロ個以上のヘッダー名の一覧で、 {{Glossary("CORS-safelisted response header", "CORS セーフリストレスポンスヘッダー")}}に含まれないものであり、リソースが使用する可能性があり、公開される可能性があるものです。
+
* (ワイルドカード)
+
"*" の値は、資格情報のないリクエスト (HTTP Cookie や HTTP の資格情報のないリクエスト) の特殊なワイルドカード値です。資格情報付きのリクエストでは、特別な意味のない "*" というヘッダー名として扱われます。
+ なお、 {{HTTPHeader("Authorization")}} ヘッダーはワイルドカードで表すことができず、常に明示的に列挙する必要があります。
+
+ +

+ +

CORS セーフリストにないレスポンスヘッダーを公開するには、次のように指定します。

+ +
Access-Control-Expose-Headers: Content-Length
+ +

X-Kuma-Revision のようなカスタムヘッダーをさらに公開するには、複数のヘッダーをカンマで区切って指定することができます。

+ +
Access-Control-Expose-Headers: Content-Length, X-Kuma-Revision
+ +

資格情報のないリクエストでは、ワイルドカード値を使うこともできます。

+ +
Access-Control-Expose-Headers: *
+ +

但し、 {{HTTPHeader("Authorization")}} ヘッダーはワイルドカードの対象にならないので、明示的に列挙する必要があります。

+ +
Access-Control-Expose-Headers: *, Authorization
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('Fetch','#http-access-control-expose-headers', 'Access-Control-Expose-Headers')}}{{Spec2("Fetch")}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Access-Control-Expose-Headers")}}

+ +

関連情報

+ + 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 +--- +

{{HTTPSidebar}}

+ +

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

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

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

ディレクティブ

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

+ +

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

+ +
Access-Control-Max-Age: 600 
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('Fetch','#http-access-control-max-age', 'Access-Control-Max-Age')}}{{Spec2("Fetch")}}初回定義。
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Access-Control-Max-Age")}}

+ +

関連情報

+ + 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 +--- +

{{HTTPSidebar}}

+ +

Access-Control-Request-Headers リクエストヘッダーは{{glossary("preflight request", "プリフライトリクエスト")}}を発行する際にブラウザーが使用し、実際のリクエストが行う際にどの HTTP ヘッダーを使用するかをサーバーに知らせます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}はい
+ +

構文

+ +
Access-Control-Request-Headers: <header-name>, <header-name>, ...
+
+ +

ディレクティブ

+ +
+
<header-name>
+
リクエストに含まれる HTTP ヘッダーのカンマ区切りのリスト。
+
+ +

+ +
Access-Control-Request-Headers: X-PINGOTHER, Content-Type
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('Fetch','#http-access-control-request-headers', 'Access-Control-Request-Headers')}}{{Spec2("Fetch")}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Access-Control-Request-Headers")}}

+ +

関連情報

+ + 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 +--- +

{{HTTPSidebar}}

+ +

Access-Control-Request-Method リクエストヘッダーは、{{glossary("preflight request", "プリフライトリクエスト")}}を発行する際にブラウザーが使用し、実際のリクエストが行われた際にどの HTTP メソッドが使用されるかをサーバーに知らせるために使用されます。プリフライトリクエストは常に OPTIONS であり、実際のリクエストとは同じメソッドを使用しないため、このヘッダーが必要です。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}はい
+ +

構文

+ +
Access-Control-Request-Method: <method>
+
+ +

ディレクティブ

+ +
+
<method>
+
HTTP リクエストメソッドの1つ。例えば {{HTTPMethod("GET")}}, {{HTTPMethod("POST")}}, {{HTTPMethod("DELETE")}} など。
+
+ +

+ +
Access-Control-Request-Method: POST
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('Fetch','#http-access-control-request-method', 'Access-Control-Request-Method')}}{{Spec2("Fetch")}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Access-Control-Request-Method")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Age ヘッダーには、プロキシーのキャッシュに入ってからの経過時間(秒)が含まれています。

+ +

Age ヘッダーは通常0に近い値となっています。もし Age: 0 であるなら、 おそらくオリジンサーバーからフェッチされただけでしょう。 それ以外の場合は、一般的にプロキシーの現在の日時とHTTPレスポンスに含まれていた{{HTTPHeader("Date")}} ヘッダーとの差分から算出されます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header","レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Age: <delta-seconds>
+
+ +

ディレクティブ

+ +
+
<delta-seconds>
+
+

オブジェクトがプロキシキャッシュに入っていた時間 (秒単位) を表す負でない整数。

+
+
+ +

+ +
Age: 24
+ +

仕様

+ + + + + + + + + + + + +
仕様書タイトル
{{RFC("7234", "Age", "5.1")}}Hypertext Transfer Protocol (HTTP/1.1): Caching
+ +

ブラウザの互換性

+ + + +

{{Compat("http.headers.Age")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Allow ヘッダーは、あるリソースが対応しているメソッドの一覧を示します。

+ +

このヘッダーは、サーバーが {{HTTPStatus("405")}} Method Not Allowed ステータスコードで返答する場合、使用することができるリクエストメソッドを示すために送信する必要があります。 Allow ヘッダーが空である場合、リソースが許可しているリクエストメソッドがないことを示し、例えば指定されたリソースにおいて一時的に発生する可能性があります。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Entity header", "エンティティヘッダー")}}
{{Glossary("Forbidden header name","禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Allow: <http-methods>
+
+ +

ディレクティブ

+ +
+
<http-methods>
+
許可されている HTTP リクエストメソッドの一覧。
+
+ +

+ +
Allow: GET, POST, HEAD
+ +

仕様書

+ + + + + + + + + + + + +
仕様書状態
{{RFC("7231", "Allow", "7.4.1")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Alt-Svc は HTTP のレスポンスヘッダーで、同じリソースに到達できる代替サービスを宣伝するために使用します。 代替サービスは、プロトコル/ホスト/ポートの組み合わせによって定義します。

+ +

構文

+ +
Alt-Svc: clear
+Alt-Svc: <protocol-id>=<alt-authority>; ma=<max-age>
+Alt-Svc: <protocol-id>=<alt-authority>; ma=<max-age>; persist=1
+ +
+
clear
+
特別な値 clear は、そのオリジンのすべての代替を無効にすることをオリジンが要求することを示します。
+
<protocol-id>
+
{{Glossary("ALPN")}} プロトコル識別子。 例には、HTTP/2 の h2 および HTTP/3 プロトコルのドラフト 25 の h3-25 が含まれています。
+
<alt-authority>
+
任意のホストのオーバーライド、コロン、および必須のポート番号で構成される代替機関を指定する引用符付きの文字列。
+
ma=<max-age>{{Optional_Inline}}
+
代替サービスが新鮮であると見なす秒数。 省略した場合のデフォルトは24時間です。 代替サービスのエントリは、最大で <max-age> から({{ httpheader("Age") }} ヘッダーからの)レスポンスの経過時間を差し引いた秒数までキャッシュできます。 キャッシュされたエントリが期限切れになると、クライアントは新しい接続にこの代替サービスを使用できなくなります。
+
persist=1{{Optional_Inline}}
+
通常、キャッシュされた代替サービスエントリは、ネットワーク構成の変更時にクリアされます。 persist=1 パラメータを使用すると、そのような変更によってエントリが削除されなくなります。
+
+ +

区切り文字としてカンマを使用して、単一の Alt-Svc ヘッダーで複数のエントリを指定できます。 その場合、早期のエントリーがより望ましいと考えられます。

+ +

+ +
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
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{RFC(7838)}}IETF RFC初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Alt-Svc")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の Authorization 要求ヘッダーは、ユーザーエージェントがサーバーから認証を受けるための証明書を保持し、ふつうはサーバーが {{HTTPStatus("401")}} Unauthorized 状態と {{HTTPHeader("WWW-Authenticate")}} ヘッダーを返した後に使われます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Authorization: <type> <credentials>
+ +

ディレクティブ

+ +
+
<type>
+
認証の種類。一般的には "Basic" です。それ以外の種類は以下に記述されています。 + +
+
<credentials>
+
"Basic" 認証方式を使用している場合、認証情報は次のように構築されます。 +
    +
  • コロンで結合したユーザー名とパスワード (aladdin:opensesame)。
  • +
  • 結果の文字列は Base64 でエンコードされます (YWxhZGRpbjpvcGVuc2VzYW1l)。
  • +
+ +
+

メモ: Base64 エンコードは暗号化でもハッシュでもありません。この方法の安全性はクリアテキストで認証情報を送るのと同等です (Base64 は可逆エンコーディングです)。 Basic 認証は HTTPS との組み合わせで使用することをお勧めします。

+
+
+
+ +

+ +
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
+
+ +

Apache や nginx サーバーで HTTP Basic 認証を使用してサイトを保護する方法の例については、 HTTP authentication を参照してください。

+ +

仕様書

+ + + + + + + + + + + + + + + + + + +
仕様書題名
{{RFC("7235", "Authorization", "4.2")}}HTTP/1.1: Authentication
{{RFC("7617")}}The 'Basic' HTTP Authentication Scheme
+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Cache-Control は HTTP のヘッダーで、リクエストとレスポンスの両方でキャッシュのためのディレクティブ (指示) が格納されています。リクエストで指定されたディレクティブは、レスポンスでも同じディレクティブを使用しなければならないということではありません。

+ + + + + + + + + + + + + + + + +
ヘッダー種別{{Glossary("General header", "一般ヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
{{Glossary("CORS-safelisted response header", "CORS セーフリストレスポンスヘッダー")}}はい
+ +

構文

+ +

キャッシュのディレクティブには、以下のような規則があります。

+ + + +

リクエスト時のキャッシュディレクティブ

+ +

クライアントからの HTTP リクエストで使用される可能性がある、標準的な Cache-Control ディレクティブです。

+ +
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
+
+ +

レスポンス時のキャッシュディレクティブ

+ +

サーバーからの HTTP レスポンスで使用される可能性がある、標準的な Cache-Control ディレクティブです。

+ +
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>
+
+ +

Cache-Control ディレクティブの拡張

+ +

Cache-Control ディレクティブの拡張は、 HTTP キャッシュ標準のコアドキュメントには含まれていません。対応状況については互換性一覧表を確認してください。解釈できないユーザーエージェントはこれらを無視します。

+ +
Cache-Control: immutable
+Cache-Control: stale-while-revalidate=<seconds>
+Cache-Control: stale-if-error=<seconds>
+
+ +

ディレクティブ

+ +

キャッシュ可能性

+ +

ブラウザーがレスポンスをキャッシュするのは通常以下の場合です。

+ + + +
+
public
+
レスポンスが通常はキャッシュ可能でなくても、レスポンスをどのキャッシュにも格納することができます。
+
private
+
レスポンスが通常はキャッシュ可能でなくても、ブラウザーのキャッシュにのみ格納することができます。レスポンスがどのキャッシュにも保存されないようにするには、代わりに no-store を使用してください。このディレクティブにはレスポンスがキャッシュに保存されないようにする効果はありません。
+
no-cache
+
レスポンスが通常はキャッシュ可能でなくても、レスポンスをどのキャッシュにも格納することができます。しかし、格納されたレスポンスは使用する前に常に元のサーバーとの検証を通さなければならないので、 no-cacheimmutable と組み合わせて使用することはできません。レスポンスがどのキャッシュにも保存されないようにするには、代わりに no-store を使用してください。このディレクティブにはレスポンスがキャッシュに保存されないようにする効果はありません。
+
no-store
+
レスポンスをキャッシュに保存することはできません。他のディレクティブを設定することもできますが、最近のブラウザーではレスポンスがキャッシュされることを防ぐために必要なディレクティブはこれだけです。 max-age=0 が暗黙で含まれますmust-revalidate は意味を持ちません。再検証を行うにはレスポンスがキャッシュに格納されている必要がありますが、 no-store はこれを抑止するからです。
+
+ +

有効期限

+ +
+
max-age=<seconds>
+
リソースが新しいとみなされる最長の時間です。 Expires とは異なり、このディレクティブはリクエスト時刻からの相対時間です。
+
s-maxage=<seconds>
+
max-age または Expires ヘッダーを上書きしますが、共有キャッシュ (プロキシなど) だけのためのものです。プライベートキャッシュでは無視されます。
+
max-stale[=<seconds>]
+
クライアントが古くなったレスポンスを受け入れることを示します。オプションの値は秒単位で、クライアントが受け入れる古さの上限を示します。
+
min-fresh=<seconds>
+
クライアントが、少なくとも指定された秒数の間は新しいままのレスポンスを要求していることを示します。
+
stale-while-revalidate=<seconds> {{Experimental_Inline}}
+
クライアントが古いレスポンスを受け入れ、新しいレスポンスをバックグラウンドで非同期にチェックすることを示します。 seconds の値は、クライアントが古いレスポンスを受け入れる時間を示します。詳細については、「Keeping things fresh with stale-while-revalidate」を参照してください。
+
stale-if-error=<seconds> {{Experimental_Inline}}
+
新しいレスポンスのチェックに失敗した場合に、クライアントが古いレスポンスを受け入れることを示します。 seconds の値は、当初の有効期限が切れた後に、クライアントが古いレスポンスを受け入れる時間を示します。
+
+ +

再検証と再読み込み

+ +
+
must-revalidate
+
一度リソースが古くなると、キャッシュは元のサーバーでの検証が成功しない限り、古くなったコピーを使用してはならないことを示します。
+
proxy-revalidate
+
must-revalidate と似ていますが、共有キャッシュ (プロキシなど) にのみ適用されます。プライベートキャッシュでは無視されます。
+
immutable
+
時間が経ってもレスポンスの本文が変化しないことを示します。リソースは、期限切れでない限り、サーバー上で変化していないため、クライアントは、たとえユーザーが明示的にページを更新した場合でも、更新をチェックするために条件付きの再検証 (If-None-MatchIf-Modified-Since など) を送ってはいけません。この拡張機能を実装していないクライアントは、 HTTP の仕様に従ってこれらの拡張機能を無視しなければなりません。 Firefox では、 immutablehttps:// トランザクションでのみ有効です。詳しくは、こちらのブログ記事を参照してください。
+
+ +

その他

+ +
+
no-transform
+
中間キャッシュやプロキシが、レスポンスの本文、 {{HTTPHeader("Content-Encoding")}}, {{HTTPHeader("Content-Range")}}, {{HTTPHeader("Content-Type")}} を変更してはいけません。したがって、 Google’s Web Light のようなプロキシやブラウザーの機能を使用して、キャッシュの格納や遅いコネクションにおいてデータを最小化するために画像を変換してはいけません。
+
only-if-cached
+
クライアントによって設定され、レスポンスのために「ネットワークを使用しない」ことを示します。キャッシュは、保存されたレスポンスを使用して応答するか、 {{HTTPStatus("504")}} ステータスコードで応答する必要があります。 If-None-Match などの条件付きヘッダーは設定すべきではありません。サーバーがレスポンスの一部として only-if-cached を設定しても効果はありません。
+
+ +

+ +

キャッシュの防止

+ +

リソースのキャッシュを無効にするには、以下のレスポンスヘッダーを送ることができます。

+ +
+
良い例:
+
+
Cache-Control: no-store
+ +
+

 no-store ディレクティブは、新しいリソースがキャッシュされることを防ぎますが、過去のリクエストの結果としてキャッシュ済みの古いリソースが応答するのを防ぐことはできません。 max-age=0 を設定すると、キャッシュが強制的に再検証されます(キャッシュがクリアされます)。

+ +
Cache-Control: no-store, max-age=0
+
+
+
+
悪い例:
+
+
Cache-Control: private,no-cache,no-store,max-age=0,must-revalidate,pre-check=0,post-check=0
+
+
+ +

静的な資産のキャッシュ

+ +

変更されないアプリケーション内のファイルについては、通常、以下のレスポンスヘッダーを送信することで積極的にキャッシュを行うことができます。これには、例えば画像、 CSS ファイル、 JavaScript ファイルなど、アプリケーションによって提供される静的なファイルが含まれます。加えて、 {{HTTPHeader("Expires")}} ヘッダーも参照してください。

+ +
Cache-Control: public, max-age=604800, immutable
+
+ +

再検証の要求

+ +

no-cache または max-age=0 を指定すると、クライアントはリソースをキャッシュすることができ、それを使用する前に毎回再検証をしなければならないことを示します。これは、 HTTP リクエストが毎回発生することを意味しますが、コンテンツが有効であれば、 HTTP 本文のダウンロードを飛ばすことができます。

+ +
Cache-Control: no-cache
+Cache-Control: no-cache, max-age=0
+
+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{RFC(8246, "HTTP Immutable Responses")}}IETF RFC
{{RFC(7234, "Hypertext Transfer Protocol (HTTP/1.1): Caching")}}IETF RFC
{{RFC(5861, "HTTP Cache-Control Extensions for Stale Content")}}IETF RFC初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Cache-Control")}}

+ +

関連情報

+ + 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 +--- +

{{HTTPSidebar}}

+ +

Clear-Site-Data ヘッダーは、リクエストしているウェブサイトに関連付けられた閲覧用データ (クッキー、ストレージ、キャッシュ) を消去します。ウェブ開発者がそのオリジンのためにブラウザーがローカルに保存したデータをより制御できます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +

Clear-Site-Data ヘッダーは、1つまたは複数のディレクティブを受け付けます。すべての種類のデータを消去する場合は、ワイルドカードのディレクティブ ("*") を使用することができます。

+ +
// 単一のディレクティブ
+Clear-Site-Data: "cache"
+
+// 複数のディレクティブ (カンマ区切り)
+Clear-Site-Data: "cache", "cookies"
+
+// ワイルドカード
+Clear-Site-Data: "*"
+
+ +

ディレクティブ

+ +

すべてのディレクティブは引用符で囲まれた文字列の文法rに従わなければなりません。二重引用符を含まないディレクティブは無効です。

+ +
+
"cache"
+
サーバーが、レスポンス URL のオリジンに関するローカルにキャッシュされたデータ (つまり、ブラウザーキャッシュ、HTTP キャッシュを参照) の消去を望んでいることを示します。ブラウザーによっては、予備レンダリングページ、スクリプトキャッシュ、 WebGL シェーダーキャッシュ、アドレスバーのサジェスト等のようなものも消去します。
+
"cookies"
+
サーバーが、レスポンス URL のオリジンに関するすべてのクッキーの消去を望んでいることを示します。これは登録されたドメインにサブドメインを含め影響します。ですから、 https://example.com と同様に https://stage.example.com のクッキーも消去されます。
+
"storage"
+
サーバーが、レスポンス URL のオリジンに関するすべての DOM ストレージの消去を望んでいることを示します。これは以下のようなストレージ機構を含みます。 +
    +
  • localStorage (localStorage.clear を実行)
  • +
  • sessionStorage (sessionStorage.clear を実行)
  • +
  • IndexedDB (それぞれのデータベースに {{domxref("IDBFactory.deleteDatabase")}} を実行)
  • +
  • サービスワーカーの登録 (登録されたそれぞれのサービスワーカーに対して、 {{domxref("ServiceWorkerRegistration.unregister")}} を実行)
  • +
  • AppCache
  • +
  • WebSQL データベース
  • +
  • FileSystem API のデータ
  • +
  • プラグインのデータ (NPP_ClearSiteData によって消去)
  • +
+
+
"executionContexts"
+
サーバーが、レスポンスのオリジンに関するすべての閲覧コンテキストの再読み込みを望んでいることを示します。 ({{domxref("Location.reload")}})
+
"*" (ワイルドカード)
+
サーバーが、レスポンスのオリジンに関するすべての種類のデータの消去を望んでいることを示します。このヘッダーの将来のバージョンでデータの種類が追加された場合、それも消去します。
+
+ +

+ +

ウェブサイトのログアウト

+ +

ユーザーがウェブサイトやサービスからログアウトした場合、ローカルに保存されているデータを削除したい場合があります。サイトからのログアウトが正常に完了したことを確認するページ (https://example.com/logout など)を送信する際に Clear-Site-Data ヘッダーを追加することで、これを実現することができます。

+ +
Clear-Site-Data: "cache", "cookies", "storage", "executionContexts"
+ +

クッキーの消去

+ +

以下のヘッダーが https://example.com/clear-cookies のレスポンスで配信された場合、同じドメイン https://example.com 及びあらゆるサブドメイン (https://stage.example.com など) が消去されます。

+ +
Clear-Site-Data: "cookies"
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
Clear Site DataWorking Draft初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Clear-Site-Data")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Connection 一般ヘッダーは、現在のトランザクションが完了したあとも、ネットワーク接続を開いたままにするかどうかを制御します。もし送信された値が keep-alive であった場合は、接続が維持されて閉じられなくなり、同一のサーバーに送るべき後続のリクエストで再利用されます。

+ +
Connection などの接続固有のヘッダーフィールドは HTTP/2 で使用しないでください。
+ +

標準のホップバイホップヘッダー ({{HTTPHeader("Keep-Alive")}}, {{HTTPHeader("Transfer-Encoding")}}, {{HTTPHeader("TE")}}, {{HTTPHeader("Connection")}}, {{HTTPHeader("Trailer")}}, {{HTTPHeader("Upgrade")}}, {{HTTPHeader("Proxy-Authorization")}}, {{HTTPHeader("Proxy-Authenticate")}}) に対しては別の用途でこのヘッダーが利用されます。この Connection ヘッダーにはカンマ区切りで、これらのホップバイホップヘッダーの名前が設定されます。このヘッダーに列挙されたヘッダーは最初のプロキシーで消費されるべきもの、という指示になり、後続のサーバーには転送されなくなります。標準のホップバイホップヘッダーの名前をカンマ区切りのリストに入れることができます (ほとんどの場合では {{HTTPHeader("Keep-Alive")}} が設定されますが、これは必須ではありません)。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("General header", "一般ヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}はい
+ +

構文

+ +
Connection: keep-alive
+Connection: close
+
+ +

ディレクティブ

+ +
+
close
+
クライアントあるいはサーバーが接続を閉じたい意思を表明します。これは HTTP/1.0 リクエストの既定の動作です。
+
カンマ区切りの HTTP ヘッダーのリスト [通常は keep-alive のみ]
+
クライアント側が接続を維持したい意思があることを表明します。接続の維持は HTTP/1.1 のデフォルトの動作です。ヘッダー名のリストは、接続の間に挟まる、最初の非透過プロキシーやキャッシュが削除すべきヘッダー名です。これらのヘッダーは最終的な宛先ノードではなく、送信者と最初のエンティティ間の接続の定義に利用します。
+
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Connection")}}

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 +--- +
{{HTTPSidebar}}
+ +

通常の HTTP レスポンスにおける Content-Disposition レスポンスヘッダーは、コンテンツがブラウザーでインラインで表示されることを求められているか、つまり、ウェブページとして表示するか、ウェブページの一部として表示するか、ダウンロードしてローカルに保存する添付ファイルとするかを示します。

+ +

本文が multipart/form-data である場合、 Content-Disposition ヘッダーは、マルチパートを構成する各サブパートに付与され、そのフィールドに関する情報を示します。サブパートは{{HTTPHeader("Content-Type")}} ヘッダーで定義された boundary によって区切られます。マルチパートの本文自体に付与した場合、 Content-Disposition は何の意味も持ちません。

+ +

Content-Disposition ヘッダーはメールにおける MIME メッセージのより広い用途で定義されたものですが、 HTTP のフォームと {{HTTPMethod("POST")}} リクエストに利用可能な引数は一部だけです。ヘッダーの値である form-data と、省略可能なディレクティブ namefilename のみが HTTP の用途で使用することができます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}} (本文の場合)
+ {{Glossary("General header", "一般ヘッダー")}} (マルチパート本文の一部の場合)
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +

本文に適用するレスポンスヘッダーとして

+ +

この用法では、inline (既定値。ウェブページの一部として、またはウェブページとして表示可能であることを示します)、もしくは attachment (ダウンロードすべきであることを示します。多くのブラウザーは filename 引数の値を使い、「名前を付けて保存」ダイアログを表示します) を最初の引数して指定します。

+ +
Content-Disposition: inline
+Content-Disposition: attachment
+Content-Disposition: attachment; filename="filename.jpg"
+ +

マルチパート本文で使うヘッダーとして

+ +

この用法では最初の引数は常に form-data です。追加のパラメーターは大文字小文字を区別せず、 '=' 記号に続けてクォートされた文字列で引数を指定します。複数の引数はセミコロン (';') で区切ります。

+ +
Content-Disposition: form-data
+Content-Disposition: form-data; name="fieldName"
+Content-Disposition: form-data; name="fieldName"; filename="filename.jpg"
+ +

ディレクティブ

+ +
+
name
+
このサブパートの内容が参照するフォームの HTML フィールドの名前を含む文字列が続きます。同じフィールド内の複数のファイルを扱う場合 (例えば、 {{HTMLElement("input","<input type=\"file\">")}} 要素の {{htmlattrxref("multiple", "input")}} 属性)、同じ名前を持つ複数のサブパートが存在することがあります。
+
name の値が '_charset_' という値である場合は、その部分が HTML フィールドではなく、明示的な文字セット情報のない部分に使用される既定の文字セットであることを示します。
+
filename
+
送信された元のファイル名を含む文字列を指定します。このファイル名は常に任意であり、アプリケーションで使用する際は注意が必要です。例えばパス情報を取り除いたり、サーバーのファイルシステムに合わせてファイル名の変換を行ったりすべきです。この引数は、ほとんどの情報を提供します。 Content-Disposition: attachment と組み合わせて使用すると、ユーザーに表示される「名前を付けて保存」ダイアログの既定のファイル名として使用されます。
+
filename*
+
+

引数の filenamefilename* の違いは、 filename*RFC 5987 で定義されているエンコーディングを使用するという点のみです。単一のヘッダーフィールドの値に filenamefilename* の両方が存在する場合は、両方が解釈できる場合、 filename*filename よりも優先されます。

+
+
+ +

+ +

「ファイル名を付けて保存」ダイアログを起動するレスポンスです。

+ +
200 OK
+Content-Type: text/html; charset=utf-8
+Content-Disposition: attachment; filename="cool.html"
+Content-Length: 21
+
+<HTML>Save me!</HTML>
+
+
+ +

このサンプル HTML ファイルは、ブラウザーに表示されるのではなく、通常のダウンロードとして保存されます。ほとんどのブラウザーは、 (既定で) cool.html というファイル名で保存することを提案します。

+ +

multipart/form-data 形式を使用して送信された HTML フォームの例で、 Content-Disposition ヘッダーを使用したものです。

+ +
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--
+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + +
仕様書題名
{{RFC("7578")}}Returning Values from Forms: multipart/form-data
{{RFC("6266")}}Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)
{{RFC("2183")}}Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Content-Disposition")}}

+ +

互換性の注意

+ + + +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Content-Encoding エンティティヘッダーは、圧縮のメディア種別に使用します。存在する場合、値はエンティティ本体にどのエンコーディングが適用されているかを示します。これはクライアントに、 Content-Type ヘッダーで参照されるメディア種別を得るためにデコードする方法を知らせます。

+ +

可能な限りデータを圧縮してこのフィールドを使用することを推奨しますが、 JPEG 画像などの一部のリソースは、すでに圧縮されています。時には、さらに圧縮をしても長さが短縮されないどころか、かえって長くなることもあります。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Entity header", "エンティティヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Content-Encoding: gzip
+Content-Encoding: compress
+Content-Encoding: deflate
+Content-Encoding: identity
+Content-Encoding: br
+
+// 複数の場合、適用された順序
+Content-Encoding: gzip, identity
+Content-Encoding: deflate, gzip
+
+ +

ディレクティブ

+ +
+
gzip
+
Lempel-Ziv coding (LZ77) を使用し、32ビットの CRC が付いた形式です。これは UNIX の gzip プログラムの独自形式です。 HTTP/1.1 標準は、この Content-Encoding に対応するサーバーは、互換性の面から x-gzip もエイリアスとして解釈するよう推奨しています。
+
compress
+
Lempel-Ziv-Welch (LZW) アルゴリズムを使用した形式です。この値の名前は、このアルゴリズムを実装している UNIX の compress プログラムから取られました。特許問題 (2003年に期限切れ) を一因として、 compress プログラムが多くの UNIX ディストリビューションから削除されたのと同様に、この Content-Encoding は現在では多くのブラウザーから削除されています。
+
deflate
+
zlib 構造 (RFC 1950 で定義) の deflate 圧縮アルゴリズム (RFC 1951 で定義) を使用します。
+
identity
+
等価関数 (つまり、圧縮も変更もなし) を示します。このトークンは、明示的に指定された場合を除き、常に受け入れられます。
+
br
+
Brotli アルゴリズムを使用した形式です。
+
+ +

+ +

gzip での圧縮

+ +

クライアント側では、送信で使用してほしい圧縮方式のリストを HTTP 要求で示すことができます。 {{HTTPHeader("Accept-Encoding")}} ヘッダーを使用して、コンテンツのエンコード方式の交渉が行われます。

+ +
Accept-Encoding: gzip, deflate
+ +

サーバーは応答に使用したエンコード方式を、 Content-Encoding レスポンスヘッダーで示します。

+ +
Content-Encoding: gzip
+ +

なお、サーバーはどの圧縮方式も使用することを義務づけられていません。圧縮はサーバー設定や使用しているサーバージュールに強く依存します。

+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + + + +
仕様書題名
{{RFC("7932", "Brotli Compressed Data Format")}}Brotli 圧縮データ形式
{{RFC("7231", "Content-Encoding", "3.1.2.2")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
{{RFC("2616", "Content-Encoding", "14.11")}}Content-Encoding
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Content-Encoding")}}

+ +

関連情報

+ + 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 +--- +

{{HTTPSidebar}}

+ +

Content-Language は {{Glossary("entity header", "エンティティヘッダー")}} で、ユーザが自分の好みの言語に応じて区別できるように、オーディエンス向けの言語を記述するために使用されます。

+ +

たとえば、"Content-Language: de-DE" が設定されている場合、その文書はドイツ語のスピーカーを対象としてます (ただし、文書がドイツ語で記述されていることを示すわけではありません。 たとえば、ドイツ語スピーカーのための語学コースの一部としての英語が書かれているかもしれません。文書が記述されている言語を示す場合は、代わりに lang 属性を使用します)。

+ +

Content-Language が指定されていない場合、既定ではコンテンツがすべての言語のオーディエンスを対象としています。Content-Language ヘッダーをテキスト形式の文書やさまざまな種類のメディアに適用するだけでなく、複数の言語タグを使用することもできます。

+ + + + + + + + + + + + + + + + + + + + +
ヘッダー種別{{Glossary("Entity header", "エンティティヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
{{Glossary("CORS-safelisted response header", "CORS セーフリストレスポンスヘッダー")}}はい
{{Glossary("CORS-safelisted request header", "CORS セーフリストリクエストヘッダー")}}はい、値を 0-9, A-Z, a-z, 空白、 *,-.;= のみに限定するという追加の制限があります。
+ +

構文

+ +
Content-Language: de-DE
+Content-Language: en-US
+Content-Language: de-DE, en-CA
+
+ +

ディレクティブ

+ +
+
language-tag
+
複数の言語タグはカンマで区切られています。各言語タグはハイフン文字 ("-", %x2D) で区切られた、大文字小文字を区別しない1つ以上のサブタグのシーケンスです。ほとんどの場合、言語タグは関連する言語の広いファミリを識別するプライマリ言語サブタグ (たとえば、"en" = 英語) で構成され、オプションとして、その言語の範囲を絞り込むか狭める一連のサブタグ ("en-CA" = カナダで伝達される英語の種類) が続きます。
+
+ +
+

メモ: 言語タグは、使用される言語コードISO 639 規格 (ISO 639-1 のコードリストであることが多い) に依存する、RFC 5646 でフォーマットが定義されています。

+
+ +

+ +

文書が書かれている言語を示す

+ +

グローバル lang 属性は、HTML 要素全体またはその一部の言語を示すために HTML 要素で使用されます。

+ +
<html lang="de">
+ +

文書の言語を記述するために、このような meta 要素を以下のように使用しないでください。

+ +
<!-- /!\ This is bad practice -->
+<meta http-equiv="content-language" content="de">
+ +

リソースのターゲットオーディエンスを示す

+ +

Content-Language ヘッダーは、ページの対象読者を指定するために使用され、複数の言語であることを示すことができます。

+ +
Content-Language: de, en
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7231", "Content-Language", "3.1.3.2")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Content-Language")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Content-Length エンティティヘッダーは、受信者に送信されるエンティティ本文の長さをバイト単位で示します。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Entity header", "エンティティヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}はい
+ +

構文

+ +
Content-Length: <length>
+
+ +

ディレクティブ

+ +
+
<length>
+
オクテット列の長さの10進数表記。
+
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7230", "Content-Length", "3.3.2")}}Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing
+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.Content-Length")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Content-Location ヘッダーは、返されるデータの代替場所を示します。主な用途はコンテンツネゴシエーションの結果として送信されたリソースの URL を示すことです。

+ +

{{HTTPHeader("Location")}} と Content-Location は異なります。Location はリダイレクトの URL を示し、Content-Location は今後のコンテンツネゴシエーションなしでリソースへのアクセスに使用する直接 URL を示します。 Location はレスポンスに関連付けられたヘッダーで、 Content-Location は返されたデータに関連付けられます。この区別はがないと抽象的に見えるかもしれません。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Entity header", "エンティティヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Content-Location: <url>
+
+ +

ディレクティブ

+ +
+
<url>
+
(リクエスト URL に対する) 相対 URL または絶対 URL。
+
+ +

+ +

サーバーからのデータのリクエストを様々な形式で行う

+ +

たとえば、サイトの API が {{glossary("JSON")}}, {{glossary("XML")}}, または CSV 形式でデータを返すとします。特定の文書の URL が https://example.com/documents/foo である場合、サイトはリクエストの {{HTTPHeader("Accept")}} ヘッダーに応じて Content-Location 用に異なる URL を返すことができます。

+ + + + + + + + + + + + + + + + + + + + + + +
リクエストヘッダーレスポンスヘッダー
Accept: application/json, text/jsonContent-Location: /documents/foo.json
Accept: application/xml, text/xmlContent-Location: /documents/foo.xml
Accept: text/plain, text/*Content-Location: /documents/foo.txt
+ +

これらの URL は例です。サイトではクエリ文字列パラメータ:/documents/foo?format=json/documents/foo?format=xml など、任意の URL パターンでさまざまなファイルタイプを提供できます。

+ +

その後クライアントはその特定の URL で JSON バージョンが利用可能であることを覚えて、次に文書を要求するときにコンテンツのネゴシエーションをスキップします。

+ +

サーバーは {{HTTPHeader("Accept-Language")}} のような他のコンテンツネゴシエーションヘッダーを考慮することもできます。

+ +

新しい文書を指す (HTTP 201 Created)

+ +

サイトの API を通じて新しいブログ投稿を作成しているとします。

+ +
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.
+
+ +

サイトは投稿が公開されたことを確認する一般的な成功メッセージを返します。サーバーは Content-Location を使用して新しい投稿がどこにあるかを指定します。

+ +
HTTP/1.1 201 Created
+Content-Type: text/plain; charset=utf-8
+Content-Location: /my-first-blog-post
+
+✅ Success!
+
+ +

トランザクションの結果の URL を示す

+ +

サイトの別のユーザーに送金するための <form> があるとします。

+ +
<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>
+
+ +

フォームが送信されると、サイトは取引の領収書を生成します。サーバーは Content-Location を使用して、将来のアクセスのために領収書の URL を示すことができます。

+ +
HTTP/1.1 200 OK
+Content-Type: text/html; charset=utf-8
+Content-Location: /my-receipts/38
+
+<!doctype html>
+(Lots of HTML…)
+
+<p>You sent $38.00 to ExampleUser.</p>
+
+(Lots more HTML…)
+
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7231", "Content-Location", "3.1.4.2")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Content-Location")}}

+ +

関連情報

+ + 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 +--- +

{{HTTPSidebar}}

+ +

Content-Range レスポンスの HTTP ヘッダーは、全体のメッセージのどこにメッセージが含まれているかを示します。

+ + + + + + + + + + + + + + + + +
ヘッダータイプ{{Glossary("Response header")}}
{{Glossary("Forbidden header name")}}いいえ
{{Glossary("Simple response header", "CORS-safelisted response-header")}}いいえ
+ +

構文

+ +
Content-Range: <unit> <range-start>-<range-end>/<size>
+Content-Range: <unit> <range-start>-<range-end>/*
+Content-Range: <unit> */<size>
+ +

ディレクティブ

+ +
+
<unit>
+
範囲を指定する単位。これは通常 bytes です。
+
+ +
+
<range-start>
+
指定された単位の整数で、リクエスト範囲の開始を示します。
+
<range-end>
+
リクエストされた範囲の終わりを示す指定された単位の整数。
+
<size>
+
ドキュメントの合計サイズ (または未知の場合は '*' )。
+
+ +

+ +
Content-Range: bytes 200-1000/67589
+
+ +

仕様

+ + + + + + + + + + + + +
仕様書タイトル
{{RFC("7233", "Content-Range", "4.2")}}Hypertext Transfer Protocol (HTTP/1.1): Range Requests
+ +

ブラウザの互換性

+ + + +

{{Compat("http.headers.Content-Range")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の Content-Security-Policy-Report-Only レスポンスヘッダーにより、ウェブ開発者はポリシーの効果を監視する (ただし強制はしない) ことによりポリシーを試行することができます。これらの違反レポートは {{Glossary("JSON")}} の文書で構成され、 HTTP の POST リクエストを通して指定された URI に送信されます。

+ +

詳細については、コンテンツセキュリティポリシー (CSP) のこの記事も参照してください。

+ + + + + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
This header is not supported inside a {{HTMLElement("meta")}} element.
+ +

構文

+ +
Content-Security-Policy-Report-Only: <policy-directive>; <policy-directive>
+
+ +

ディレクティブ

+ +

{{HTTPHeader("Content-Security-Policy")}} ヘッダーのディレクティブは Content-Security-Policy-Report-Only にも適用することができます。

+ +

CSP の {{CSP("report-uri")}} ディレクティブをこのヘッダーで使用しないと、このヘッダーは負荷が高く何もしない機械となります。

+ +

+ +

このヘッダーは発生した違反を報告します。これを使用して、コンテンツセキュリティポリシーを反復的に処理できます。サイトがどのように動作するのかを観察したり、違反レポートやマルウエアリダイレクトを監視したりして、 {{HTTPHeader("Content-Security-Policy")}} ヘッダーで強制することが要求されるポリシーを選択します。

+ +
Content-Security-Policy-Report-Only: default-src https:; report-uri /csp-violation-report-endpoint/
+ +

レポートを受信し続けながら、ポリシーの強制も行いたい場合は、 {{HTTPHeader("Content-Security-Policy")}} ヘッダーに {{CSP("report-uri")}} ディレクティブを指定して使用してください。

+ +
Content-Security-Policy: default-src https:; report-uri /csp-violation-report-endpoint/
+ +

違反レポートの構文

+ +

レポート JSON オブジェクトには、次のデータが含まれています。

+ +
+
blocked-uri
+
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.
+
disposition
+
Either "enforce" or "report" depending on whether the {{HTTPHeader("Content-Security-Policy")}} header or the Content-Security-Policy-Report-Only header is used.
+
document-uri
+
The URI of the document in which the violation occurred.
+
effective-directive
+
The directive whose enforcement caused the violation.
+
original-policy
+
The original policy as specified by the Content-Security-Policy-Report-Only HTTP header.
+
referrer
+
The referrer of the document in which the violation occurred.
+
script-sample
+
The first 40 characters of the inline script, event handler, or style that caused the violation.
+
status-code
+
The HTTP status code of the resource on which the global object was instantiated.
+
violated-directive
+
The name of the policy section that was violated.
+
+ +

違反レポートのサンプル

+ +
Let's consider a page located at http://example.com/signup.html. It uses the following policy, disallowing everything but stylesheets from cdn.example.com.
+ +
+
Content-Security-Policy-Report-Only: default-src 'none'; style-src cdn.example.com; report-uri /_/csp-reports
+
+ +
The HTML of signup.html looks like this:
+ +
<!DOCTYPE html>
+<html>
+  <head>
+    <title>Sign Up</title>
+    <link rel="stylesheet" href="css/style.css">
+  </head>
+  <body>
+    ... Content ...
+  </body>
+</html>
+ +
Can you spot the violation? Stylesheets are only allowed to be loaded from cdn.example.com, yet the website tries to load one from its own origin (http://example.com). A browser capable of enforcing CSP will send the following violation report as a POST request to http://example.com/_/csp-reports, when the document is visited:
+ +
{
+  "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"
+  }
+}
+ +

As you can see, the report includes the full path to the violating resource in blocked-uri. This is not always the case. For example, when the signup.html would attempt to load CSS from http://anothercdn.example.com/stylesheet.css, the browser would not include the full path but only the origin (http://anothercdn.example.com). This is done to prevent leaking sensitive information about cross-origin resources.

+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("CSP 3.0")}}{{Spec2('CSP 3.0')}}変更なし
{{specName("CSP 1.1")}}{{Spec2('CSP 1.1')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Content-Security-Policy-Report-Only")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP {{HTTPHeader("Content-Security-Policy")}} の base-uri ディレクティブは、ドキュメントの要素 {{HTMLElement("base")}} で、使用できる URL を制限します。この値が存在しない場合は、任意の URI が許可されます。このディレクティブが存在しない場合、ユーザーエージェントは、{{HTMLElement("base")}} 要素の値を使用します。

+ + + + + + + + + + + + + + + + +
CSP version2
Directive type{{Glossary("Document directive")}}
{{CSP("default-src")}} fallback設定しないと、任意の URL が許可されます。
+ +

構文

+ +

1 つまたは複数のソースを base-uri ポリシーに使用:

+ +
Content-Security-Policy: base-uri <source>;
+Content-Security-Policy: base-uri <source> <source>;
+
+ +

ソース

+ +

このディレクティブは他の CSP ディレクティブと同じ引数を使用しますが、キーワードの 'unsafe-inline''strict-dynamic' などは意味がありません。

+ +

{{page("ja/docs/Web/HTTP/Headers/Content-Security-Policy/default-src", "Sources")}}

+ +

+ +

Meta タグの設定

+ +
<meta http-equiv="Content-Security-Policy" content="base-uri 'self'">
+ +

Apache の設定

+ +
<IfModule mod_headers.c>
+Header set Content-Security-Policy "base-uri 'self'";
+</IfModule>
+ +

Nginx の設定

+ +
add_header Content-Security-Policy "base-uri 'self';"
+ +

違反になる場合

+ +

ドメインが example.com でないので、https://example.com に設定された {{HTMLElement("base")}} 要素の href が CSP 違反になります。

+ +
<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'"
+ +

仕様書

+ + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("CSP 3.0", "#directive-base-uri", "base-uri")}}{{Spec2('CSP 3.0')}}変更無し
{{specName("CSP 1.1", "#directive-base-uri", "base-uri")}}{{Spec2('CSP 1.1')}}初回定義
+ +

ブラウザー実装状況

+ + + +

{{Compat("http.headers.csp.base-uri")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) block-all-mixed-content ディレクティブは、ページが HTTPS を使用しているときに HTTP で資産を読み込むことを防ぎます。

+ +

能動的および受動的の両方を含む、すべての混合コンテンツリソースのリクエストがブロックされます。これは {{HTMLElement("iframe")}} の文書にも適用され、ページ全体で混合コンテンツがないことを保証します。

+ +

{{CSP("upgrade-insecure-requests")}} ディレクティブが block-all-mixed-content の前に評価されます。前者が設定されていれば、後者は何もしません。どちらかのディレクティブを設定してください。 HTTP にリダイレクトした後で HTTPS を強制することができない古いブラウザーで HTTPS を強制させたくない限り、両方の効果はありません。

+ +

構文

+ +
Content-Security-Policy: block-all-mixed-content;
+ +

+ +
Content-Security-Policy: block-all-mixed-content;
+
+<meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
+
+ +

もっと細かい水準で資産の http を禁止するには、個別のディレクティブを https: に設定することができます。安全ではない HTTP の画像を許可しないようにするには次のようにします。

+ +
Content-Security-Policy: img-src https:
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("Mixed Content", "#block-all-mixed-content", "block-all-mixed-content")}}{{Spec2('Mixed Content')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.csp.Content-Security-Policy.block-all-mixed-content")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) の connect-src ディレクティブは、スクリプトインターフェイスを使用して読み込むことができる URL を制限します。以下の API が制限の対象となります。

+ + + +
+

注: connect-src 'self' はすべてのブラウザーで websocket スキーマを解決するわけではありません、詳細はこちら: https://github.com/w3c/webappsec-csp/issues/7

+
+ + + + + + + + + + + + + + + + +
CSP バージョン1
ディレクティブ種別{{Glossary("Fetch directive", "フェッチディレクティブ")}}
{{CSP("default-src")}} による代替あり。このディレクティブがない場合、ユーザーエージェントは default-src ディレクティブを探します。
+ +

構文

+ +

connect-src ポリシーには、1 つ以上のソースが許可されています。

+ +
Content-Security-Policy: connect-src <source>;
+Content-Security-Policy: connect-src <source> <source>;
+
+ +

ソース

+ +

{{page("/ja/docs/Web/HTTP/Headers/Content-Security-Policy/default-src", "common_sources")}}

+ +

+ +

違反の場合

+ +

以下の CSP ヘッダーを指定した場合、

+ +
Content-Security-Policy: connect-src https://example.com/
+ +

以下のコネクションはブロックされ、読み込まれません。

+ +
<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>
+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("CSP 3.0", "#directive-connect-src", "connect-src")}}{{Spec2('CSP 3.0')}}変更なし
{{specName("CSP 1.1", "#directive-connect-src", "connect-src")}}{{Spec2('CSP 1.1')}}初回定義
+ +

ブラウザーの互換性

+ +

{{Compat("http.headers.csp.Content-Security-Policy.connect-src")}}

+ +

互換性のメモ

+ + + +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) default-src ディレクティブは、他の CSP {{Glossary("fetch directive", "フェッチディレクティブ")}}のフォールバックとして提供します。以下のディレクティブがいずれかが存在しないと、ユーザーエージェントは default-src ディレクティブを探して、この値を使用します。

+ + + + + + + + + + + + + + +
CSP バージョン1
ディレクティブ種別{{Glossary("Fetch directive", "フェッチディレクティブ")}}
+ +

構文

+ +

default-src ポリシーには、1つまたは複数のソースが許可されています。

+ +
Content-Security-Policy: default-src <source>;
+Content-Security-Policy: default-src <source> <source>;
+
+ +

ソース

+ +
+

<source> は以下のうちの一つを取ることができます。

+ +
+
<host-source>
+
ホスト名または IP アドレスによるインターネットホストで、任意で URL スキームやポート番号を付けることができます。サイトのアドレスはワイルドカード (アスタリスク文字、'*') で始めることができ、更にポート番号にワイルドカード ('*') を使ってすべての有効なポート番号をソースとして示すことができます。
+ 例: +
    +
  • http://*.example.com: http: のスキームを使用した、example.com のすべてのサブドメインからのすべての読み込みの試行に一致します。
  • +
  • mail.example.com:443: mail.example.com の 443番ポートへのアクセスの試行に一致します。
  • +
  • https://store.example.com: https: を使用した store.example.com へのアクセスの試行に一致します。
  • +
  • *.example.com: 現在のプロトコルを使用した example.com のすべてのサブドメインからの読み込みのすべての試行に一致します。
  • +
+
+
<scheme-source>
+
http: または https: のようなスキームです。コロンは必要です。以下の他の値とは異なり、単一引用符は使用しないでください。data スキームも指定することができます (非推奨)。 +
    +
  • data: コンテンツのソースとして data: の URI を使うことができるようにします。これは安全ではありません。攻撃者は任意の data: URI を挿入することもできます。使用は控え、スクリプトには絶対に使用しないでください。
  • +
  • mediastream: mediastream: の URI をコンテンツのソースとして使用することができるようにします。
  • +
  • blob: blob: の URI をコンテンツのソースとして使用することができるようにします。
  • +
  • filesystem: filesystem: の URI をコンテンツのソースとして使用することができるようにします。
  • +
+
+
'self'
+
保護された文書が提供されたオリジンを、同じ URL スキームおよびポート番号で参照します。単一引用符が必要です。ブラウザーによっては source ディレクティブから blob および filesystem を独自に除外していることがあります。これらのコンテンツ種別を許可する必要があるサイトは、Data 属性を使用して指定することができます。
+
'unsafe-eval'
+
文字列からコードを生成する eval() および同様のメソッドの利用を許可します。単一引用符が必要です。
+
'unsafe-hashes'
+
特定のインラインのイベントハンドラーを許可します。インラインイベントハンドラーを許可したいが、インラインの {{HTMLElement("script")}} 要素や javascript: URL は不要な場合、これは unsafe-inline を使うよりも安全なメソッドです。
+
'unsafe-inline'
+
インラインの {{HTMLElement("script")}} 要素、javascript: の URL、インラインイベントハンドラー、インライン {{HTMLElement("style")}} 要素のような、インラインリソースの使用を許可します。単一引用符が必要です。
+
'none'
+
空のセットを参照します。つまり、一致する URL はありません。単一引用符が必要です。
+
'nonce-<base64-value>'
+
暗号化ノンス (一度だけ使われる数値) を使用する特定のインラインスクリプトのための許可リストです。サーバーはポリシーを転送するたびに固有のノンスを生成する必要があります。リソースのポリシーを回避することを難しくするため、推測できないノンスを提供することが重要です。例えば安全でないインラインスクリプトを参照してください。ノンスを指定すると、最近のブラウザーは、ノンスの対応がない古いブラウザーのために設定されている可能性がある 'unsafe-inline' を無視するようになります。
+
'<hash-algorithm>-<base64-value>'
+
スクリプトまたはスタイルの sha256, sha384, sha512 の何れかのハッシュです。このソースは、ハッシュを生成するために使用する暗号化アルゴリズムと、スクリプトまたはスタイルのハッシュを base64 でエンコードしたものの二つの部分をダッシュで区切ったもので構成されます。ハッシュを生成するときは、<script> または <style> タグを含めないようにし、大文字・小文字の区別と、ホワイトスペースの扱い (先頭や末尾のホワイトスペースを含む) に注意してください。例えば安全でないインラインスクリプトを参照してください。 CSP 2.0 では、これはインラインスクリプトにのみ適用されます。 CSP 3.0 では script-src で外部スクリプトが指定された場合にも利用できます。
+
+
+ +
+
+
'strict-dynamic'
+
strict-dynamic ソース表現は、ノンスやハッシュを付加して、それらがルートスクリプトに読み込まれるすべてのスクリプトに伝搬することで、マークアップ内のスクリプトに明示的な信用を指定します。それと同時に、'self''unsafe-inline' といった、あらゆる許可リストやソース表現が無視されます。script-src の例を見てください。
+
+
+ +
+
+
'report-sample'
+
違反レポートに入れる違反コードのサンプルを要求します。
+
+
+ +

+ +

default-src で継承されない

+ +

他のディレクティブが指定されている場合、default-src は影響しません。

+ +
Content-Security-Policy: default-src 'self'; script-src https://example.com
+ +

は、下記のものと同じです。

+ +
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'
+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("CSP 3.0", "#directive-default-src", "default-src")}}{{Spec2('CSP 3.0')}}既定として frame-src, manifest-src, worker-src を追加。
{{specName("CSP 1.1", "#directive-default-src", "default-src")}}{{Spec2('CSP 1.1')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.csp.Content-Security-Policy.default-src")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) である frame-ancestors ディレクティブは {{HTMLElement("frame")}}、 {{HTMLElement("iframe")}}、 {{HTMLElement("object")}} 、 {{HTMLElement("embed")}}、 {{HTMLElement("applet")}} などを使ってページを埋め込むことのできる親を指定します。

+ +

このディレクティブを 'none' にすることは、 {{HTTPHeader("X-Frame-Options")}}: deny (これは古いブラウザーも同様に対応しています) を設定するのに似ています。

+ + + + + + + + + + + + + + + + + + + +
CSP バージョン2
ディレクティブ種別{{Glossary("Navigation directive", "ナビゲーションディレクティブ")}}
{{CSP("default-src")}} による代替なし。設定しない場合はすべてを許可します。
このディレクティブは {{HTMLElement("meta")}} 要素では対応していません。
+ +

構文

+ +

frame-ancestors ポリシーをこのように一つ以上セットできます。

+ +
Content-Security-Policy: frame-ancestors <source>;
+Content-Security-Policy: frame-ancestors <source> <source>;
+
+ +

ソース

+ +

<source> は以下のうちのいずれかです。

+ +
+

frame-ancestors ディレクティブの構文は他のソースリスト ({{CSP("default-src")}} など) のものと同様ですが、 'unsafe-eval''unsafe-inline' などは許可されていません。また、これは default-src の設定にフォールバックすることもありません。下記に示されたソースのみが許可されます。

+
+ +
+
<host-source>
+
スペースで区切られた、URL schemeやポート番号をふくむことができるIPアドレスや名前によるインターネットホスト名です。サイトのアドレスの前にワイルドカード (アスタリスク、 '*')を含めることができ、さらにすべてのポートがソースとして有効であることを示すためにポート番号としてワイルドカード ('*') を使うこともできます。ホスト名をシングルクオートで囲うことはできません。
+ 例: +
    +
  • http://*.example.com: http: のスキームを使用した、example.com のすべてのサブドメインからのすべての読み込みの試行に一致します。
  • +
  • mail.example.com:443: mail.example.com の 443番ポートへのアクセスの試行に一致します。
  • +
  • https://store.example.com: https: を使用した store.example.com へのアクセスの試行に一致します。
  • +
+ +
+

host-source にURLスキームが指定されておらず、 iframe が https URLから読み込まれている場合、 iframe を読み込んでいるページの URL も https でなければなりません。 W3C 仕様書の matching source expressions によるものです。

+
+
+
<scheme-source>
+
http: または https: のようなスキームです。コロンは必要です。以下の他の値とは異なり、単一引用符は使用しないでください。data スキームも指定することができます (非推奨)。 +
    +
  • data: コンテンツのソースとして data: の URI を使うことができるようにします。これは安全ではありません。攻撃者は任意の data: URI を挿入することもできます。使用は控え、スクリプトには絶対に使用しないでください。
  • +
  • mediastream: mediastream: の URI をコンテンツのソースとして使用することができるようにします。
  • +
  • blob: blob: の URI をコンテンツのソースとして使用することができるようにします。
  • +
  • filesystem: filesystem: の URI をコンテンツのソースとして使用することができるようにします。
  • +
+
+
'self'
+
保護された文書が提供されたオリジンを、同じ URL スキームおよびポート番号で参照します。単一引用符が必要です。ブラウザーによっては source ディレクティブから blob および filesystem を独自に除外していることがあります。これらのコンテンツ種別を許可する必要があるサイトは、Data 属性を使用して指定することができます。
+
'none'
+
空のセットを参照します。つまり、一致する URL はありません。単一引用符が必要です。
+
+ +

+ +
Content-Security-Policy: frame-ancestors 'none';
+
+Content-Security-Policy: frame-ancestors 'self' https://www.example.org;
+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("CSP 3.0", "#directive-frame-ancestors", "frame-ancestors")}}{{Spec2('CSP 3.0')}}変更なし
{{specName("CSP 1.1", "#directive-frame-ancestors", "frame-ancestors")}}{{Spec2('CSP 1.1')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.csp.Content-Security-Policy.frame-ancestors")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) における frame-src ディレクティブは、 {{HTMLElement("frame")}} や {{HTMLElement("iframe")}} のような要素を使用した内部の閲覧コンテキストの読み込みに有効なソースを指定します。

+ + + + + + + + + + + + + + + + +
CSP バージョン1
ディレクティブ種別{{Glossary("Fetch directive", "フェッチディレクティブ")}}
代替このディレクティブがない場合、ユーザーエージェントは {{CSP("child-src")}} ディレクティブを探す (さらにこの代替は {{CSP("default-src")}} ディレクティブである)。
+ +

構文

+ +

frame-src ポリシーには、1つ以上のソースが許可されています。

+ +
Content-Security-Policy: frame-src <source>;
+Content-Security-Policy: frame-src <source> <source>;
+
+ +

ソース

+ +

{{page("/ja/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src", "Sources")}}

+ +

+ +

違反例

+ +

この CSP ヘッダーがある場合、

+ +
Content-Security-Policy: frame-src https://example.com/
+ +

以下の {{HTMLElement("iframe")}} はブロックされ、読み込まれません。

+ +
<iframe src="https://not-example.com/"></iframe>
+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("CSP 3.0", "#directive-frame-src", "frame-src")}}{{Spec2('CSP 3.0')}}frame-src の非推奨化を解除
{{specName("CSP 1.1", "#directive-frame-src", "frame-src")}}{{Spec2('CSP 1.1')}}frame-src を非推奨化
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.csp.Content-Security-Policy.frame-src")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} における img-src ディレクティブは、画像やファビコンの有効なソースを指定します。

+ + + + + + + + + + + + + + + + +
CSP バージョン1
ディレクティブ種別{{Glossary("Fetch directive", "フェッチディレクティブ")}}
{{CSP("default-src")}} による代替あり。このディレクティブがない場合、ユーザーエージェントは default-src ディレクティブを探します。
+ +

構文

+ +

img-src ポリシーには、1つ以上のソースが許可されています。

+ +
Content-Security-Policy: img-src <source>;
+Content-Security-Policy: img-src <source> <source>;
+
+ +

ソース

+ +

{{page("/ja/docs/Web/HTTP/Headers/Content-Security-Policy/default-src", "Sources")}}

+ +

+ +

違反例

+ +

この CSP ヘッダーがある場合、

+ +
Content-Security-Policy: img-src https://example.com/
+ +

以下の {{HTMLElement("img")}} の各要素はブロックされ、読み込まれません。

+ +
<img src="https://not-example.com/foo.jpg" alt="example picture">
+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("CSP 3.0", "#directive-img-src", "img-src")}}{{Spec2('CSP 3.0')}}変更なし
{{specName("CSP 1.1", "#directive-img-src", "img-src")}}{{Spec2('CSP 1.1')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.csp.Content-Security-Policy.img-src")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の Content-Security-Policy レスポンスヘッダーは、ウェブサイト管理者が、あるページにユーザーエージェントが読み込みを許可されたリソースを管理できるようにします。いくつかの例外を除いて、大半のポリシーにはサーバーオリジンとスクリプトエンドポイントの指定を含んでいます。これはクロスサイトスクリプティング攻撃 ({{Glossary("XSS")}}) を防ぐのに役立ちます。

+ +

より詳細な情報は、 Content Security Policy (CSP) の入門記事を参照してください。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Content-Security-Policy: <policy-directive>; <policy-directive>
+
+ +

ここで、 <policy-directive> は次の要素で構成されます: <directive> <value> 内部の句読点なし。

+ +

ディレクティブ

+ +

{{Glossary("Fetch directive", "フェッチディレクティブ")}}

+ +

フェッチディレクティブは、特定のリソース種別がロードされうる場所を制御します。

+ +

Content Security Policy フェッチディレクティブの一覧

+ +
+
{{CSP("child-src")}}
+
ウェブワーカーと、 {{HTMLElement("frame")}} や {{HTMLElement("iframe")}} のような要素によってロードされる入れ子状の閲覧コンテキストに対する有効なソースを定義します。 +
+

複合した閲覧コンテキストやワーカーを制御するには、 それぞれ {{CSP("frame-src")}} および {{CSP("worker-src")}} を child-src の代わりに使用してください。

+
+
+
{{CSP("connect-src")}}
+
script インターフェースによってロードされる URL を制限します。
+
{{CSP("default-src")}}
+
別の {{Glossary("Fetch directive", "Fetch ディレクティブ")}}に対する代替として提供します。
+
{{CSP("font-src")}}
+
{{cssxref("@font-face")}} によってロードされるフォントに対する有効なソースを指定します。
+
{{CSP("frame-src")}}
+
{{HTMLElement("frame")}} や {{HTMLElement("iframe")}} のような要素によってロードされる入れ子状のコンテンツの閲覧に対する有効なソースを指定します。
+
{{CSP("img-src")}}
+
画像や favicon に対する有効なソースを定義します。
+
{{CSP("manifest-src")}}
+
アプリケーションのマニフェストファイルに対する有効なソースを指定します。
+
{{CSP("media-src")}}
+
{{HTMLElement("audio")}}、{{HTMLElement("video")}} や {{HTMLElement("track")}} 要素によってロードするメディアに対する有効なソースを指定します。
+
{{CSP("object-src")}}
+
{{HTMLElement("object")}}、 {{HTMLElement("embed")}} や {{HTMLElement("applet")}} 要素に対する有効なソースを指定します。
+
object-src で制御される要素は、おそらく古い HTML 要素に該当すると見なされ、新しい標準機能が利用できません (セキュリティ属性の sandbox<iframe>allow など)。従って、このフェッチディレクティブで制限を掛けることが推奨されます (例えば、可能であれば object-src 'none' を設定するなど)。
+
{{CSP("prefetch-src")}}{{experimental_inline}}
+
事前にフェッチされるか描画される有効なソースを指定します。
+
{{CSP("script-src")}}
+
JavaScript に対する有効なソースを指定します。
+
{{CSP("script-src-elem")}}{{experimental_inline}}
+
JavaScript の {{HTMLElement("script")}} 要素に対する有効なソースを指定します。
+
{{CSP("script-src-attr")}}{{experimental_inline}}
+
JavaScript のインラインイベントハンドラーに対する有効なソースを指定します。
+
+ +
+
{{CSP("style-src")}}
+
スタイルシートに対する有効なソースを指定します。
+
{{CSP("style-src-elem")}}{{experimental_inline}}
+
スタイルシートの {{HTMLElement("style")}} および {{HTMLElement("link")}} 要素に rel="stylesheet" がついたもののに対する有効なソースを指定します。
+
{{CSP("style-src-attr")}}{{experimental_inline}}
+
個々の DOM 要素に適用されるインラインスタイルの有効なソースを指定します。
+
{{CSP("worker-src")}}{{experimental_inline}}
+
{{domxref("Worker")}}, {{domxref("SharedWorker")}}, {{domxref("ServiceWorker")}} スクリプトに対する有効なソースを指定します。
+
+ +

{{Glossary("Document directive", "文書ディレクティブ")}}

+ +

文書ディレクティブは、ポリシーが適用される文書もしくは Worker 環境のプロパティを管理します。

+ +

Content Security Policy 文書ディレクティブの一覧

+ +
+
{{CSP("base-uri")}}
+
文書の {{HTMLElement("base")}} 要素で使用される URL を制限します。
+
{{CSP("plugin-types")}}
+
ロードされるリソースのタイプを限定することで、文書に埋め込まれるプラグインの組を制限します。
+
{{CSP("sandbox")}}
+
{{HTMLElement("iframe")}} と {{htmlattrxref("sandbox", "iframe")}} 属性に類似した要求リソースに対してサンドボックスを有効にします。
+
+ + + +

ナビゲーションディレクティブは、例えばユーザーが移動する場所やフォームを送信する場所を管理します。

+ +

Content Security Policy ナビゲーションディレクティブの一覧

+ +
+
{{CSP("form-action")}}
+
指定のコンテキストからフォームの送信先として使用される URL を制限します。
+
{{CSP("frame-ancestors")}}
+
{{HTMLElement("frame")}}, {{HTMLElement("iframe")}}, {{HTMLElement("object")}}, {{HTMLElement("embed")}}, もしくは {{HTMLElement("applet")}} によってページに埋め込まれた有効な親を指定します。
+
{{CSP("navigate-to")}}{{experimental_inline}}
+
{{HTMLElement("form")}} ({{CSP("form-action")}} が指定されていない場合), {{HTMLElement("a")}}, {{DOMxRef("window.location")}}, {{DOMxRef("window.open")}}, など、あらゆる方法で文書からナビゲーションを行うことができる URL を制限します。
+
+ +

{{Glossary("Reporting directive", "報告ディレクティブ")}}

+ +

報告ディレクティブは CSP 違反の報告過程を制御します。 {{HTTPHeader("Content-Security-Policy-Report-Only")}} ヘッダーも参照してください。

+ +

Content Security Policy 報告ディレクティブの一覧

+ +
+
{{CSP("report-uri")}}{{deprecated_inline}}
+
ユーザーエージェントにコンテンツセキュリティポリシーの違反を報告するよう指示します。これらの違反の報告は、 {{Glossary("JSON")}} 文書を HTTP の POST リクエストで指定された URI に送信することで行われます。 +
+

{{CSP("report-to")}} ディレクティブは非推奨の report-uri ディレクティブを置き換えることを意図していますが、 {{CSP("report-to")}} はまだ多くのブラウザーで対応されていません。そのため、ブラウザーで {{CSP("report-to")}} の対応が行われるまでは現在のブラウザーとの互換性のため、 report-uri および {{CSP("report-to")}} の両方を指定することができます。

+ +
Content-Security-Policy: ...; report-uri https://endpoint.example.com; report-to groupname
+ +

{{CSP("report-to")}} に対応したブラウザーでは、 report-uri ディレクティブは無視されます。

+
+
+
{{CSP("report-to")}}{{experimental_inline}}
+
SecurityPolicyViolationEvent を発生させます。
+
+ +

その他のディレクティブ

+ +
+
{{CSP("block-all-mixed-content")}}
+
ページが HTTPS を使用して読み込まれた際に、 HTTP を使用して資産を読み込むことを防止します。
+
{{CSP("referrer")}}{{deprecated_inline}}{{non-standard_inline}}
+
ページから離れる際の Referer ヘッダー内の情報を指定するために使用されていました。代わりに {{HTTPHeader("Referrer-Policy")}} ヘッダーを使用してください。
+
{{CSP("require-sri-for")}}{{experimental_inline}}
+
ページ上のスクリプトやスタイルに {{Glossary("SRI")}} の使用を要求します。
+
{{CSP("require-trusted-types-for")}}{{experimental_inline}}
+
DOM XSS インジェクションシンクで Trusted Types を強制します。
+
+ +
+
{{CSP("trusted-types")}}{{experimental_inline}}
+
Trusted Types ポリシーのホワイトリストを指定するために使用します (Trusted Types は、アプリケーションが DOM XSS インジェクションシンクをロックダウンして、文字列の代わりにスプーフィング不可能な型付きの値のみを受け入れるようにします)。
+
+ +
+
{{CSP("upgrade-insecure-requests")}}
+
安全でない URL (HTTP で提供されているもの) をすべて安全な URL (HTTPS で提供されているもの) に置き換えたかのように扱うようにユーザエージェントに指示します。このディレクティブは、書き換えが必要な安全でない古い URL が大量にあるウェブサイトを対象としています。
+
+ +

Worker 内の CSP

+ +

Worker は、一般的に文書 (もしくは親 Worker) の Content Security Policy によって管理されません。Worker に対する Content Security Policy を指定するには、Worker スクリプト自身が要求したリクエストに対して Content-Security-Policy レスポンスヘッダーを設定して下さい。

+ +

Worker スクリプトのオリジンがグローバルで一意の識別子の場合、(例えば、URL がデータやブロブのスキーマの場合)、例外に当たります。この場合、Worker は文書もしくは作成元の Worker の Content Security Policy を継承します。

+ +

複数の CSP

+ +

CSP では、Content-Security-Policy ヘッダー、{{HTTPHeader("Content-Security-Policy-Report-Only")}} ヘッダーや {{HTMLElement("meta")}} 要素を経由したものを含む、リソースに対して複数のポリシーを指定することができます。

+ +

以下の例のように、 Content-Security-Policy ヘッダーを複数回使うことができます。ここでは {{CSP("connect-src")}} ディレクティブに特に注意してください。2つ目のポリシーでは接続を許可しているにもかかわらず、1つ目のポリシーには connect-src 'none' が含まれています。追加のポリシーを追加すると、保護されたリソースの機能がさらに制限することができるだけで、接続は許可されず、最も厳密なポリシーとして connect-src 'none' が強制されます。

+ +
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/
+ +

+ +

例: 安全でない inline/eval を無効にし、https 経由でのリソース (画像、フォント、スクリプトなど) のロードを許します。

+ +
// ヘッダー
+Content-Security-Policy: default-src https:
+
+// メタタグ
+<meta http-equiv="Content-Security-Policy" content="default-src https:">
+
+ +

例: 修正のためにインラインコードを多用している既存のサイトで、https 経由でのみロードされるリソースを明確にし、プラグインを無効にします。

+ +
Content-Security-Policy: default-src https: 'unsafe-eval' 'unsafe-inline'; object-src 'none'
+ +

例: 上記のポリシーを実装せず、代わりに、発生するであろう違反を報告します。

+ +
Content-Security-Policy-Report-Only: default-src https:; report-uri /csp-violation-report-endpoint/
+ +

その他の例は、 Mozilla Web Security Guidelines を参照して下さい。

+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("CSP 3.0")}}{{Spec2("CSP 3.0")}}manifest-src, navigate-to, report-to, strict-dynamic, worker-src を追加。 frame-src の非推奨を解除。 report-urireport-to の代わりに非推奨化。
{{specName("Mixed Content")}}{{Spec2("Mixed Content")}}block-all-mixed-content を追加。
{{specName("Subresource Integrity")}}{{Spec2("Subresource Integrity")}}require-sri-for を追加。
{{specName("Upgrade Insecure Requests")}}{{Spec2("Upgrade Insecure Requests")}}upgrade-insecure-requests を追加。
{{specName("CSP 1.1")}}{{Spec2("CSP 1.1")}}base-uri, child-src, form-action, frame-ancestors, plugin-types, referrer, report-uri を追加。 frame-src を非推奨化。
{{specName("CSP 1.0")}}{{Spec2("CSP 1.0")}}connect-src, default-src, font-src, frame-src, img-src, media-src, object-src, report-uri, sandbox, script-src,, style-src を定義。
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.csp.Content-Security-Policy")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}}: manifest-src ディレクティブは、どのマニフェストがリソースに適用されるかを指定します。

+ + + + + + + + + + + + + + + + +
CSP バージョン3
ディレクティブ種別{{Glossary("Fetch directive", "フェッチディレクティブ")}}
{{CSP("default-src")}} による代替あり。このディレクティブがない場合、ユーザーエージェントは default-src ディレクティブを探します。
+ +

構文

+ +

manifest-src ポリシーには、1つ以上のソースが許可されています。

+ +
Content-Security-Policy: manifest-src <source>;
+Content-Security-Policy: manifest-src <source> <source>;
+
+ +

ソース

+ +

{{page("/ja/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src", "Sources")}}

+ +

+ +

違反例

+ +

この CSP ヘッダーがある場合、

+ +
Content-Security-Policy: manifest-src https://example.com/
+ +

以下の {{HTMLElement("link")}} の各要素はブロックされ、読み込まれません。

+ +
<link rel="manifest" href="https://not-example.com/manifest">
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("CSP 3.0", "#directive-manifest-src", "manifest-src")}}{{Spec2('CSP 3.0')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.csp.Content-Security-Policy.manifest-src")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) における media-src ディレクティブは、 {{HTMLElement("audio")}} および {{HTMLElement("video")}} 要素を使用して読み込むメディアの有効なソースを指定します。

+ + + + + + + + + + + + + + + + +
CSP バージョン1
ディレクティブ種別{{Glossary("Fetch directive", "フェッチディレクティブ")}}
{{CSP("default-src")}} による代替あり。このディレクティブがない場合、ユーザーエージェントは default-src ディレクティブを探します。
+ +

構文

+ +

media-src ポリシーには、1つ以上のソースが許可されています。

+ +
Content-Security-Policy: media-src <source>;
+Content-Security-Policy: media-src <source> <source>;
+
+ +

ソース

+ +

{{page("/ja/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src", "Sources")}}

+ +

+ +

違反例

+ +

この CSP ヘッダーがある場合、

+ +
Content-Security-Policy: media-src https://example.com/
+ +

以下の {{HTMLElement("audio")}}, {{HTMLElement("video")}}, {{HTMLElement("track")}} の各要素はブロックされ、読み込まれません。

+ +
<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>
+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("CSP 3.0", "#directive-media-src", "media-src")}}{{Spec2('CSP 3.0')}}変更なし
{{specName("CSP 1.1", "#directive-media-src", "media-src")}}{{Spec2('CSP 1.1')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.csp.Content-Security-Policy.media-src")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} の object-src ディレクティブは、 {{HTMLElement("object")}}, {{HTMLElement("embed")}}, {{HTMLElement("applet")}} の各要素の妥当なソースを指定します。

+ +

{{HTMLElement("object")}}, {{HTMLElement("embed")}}, {{HTMLElement("applet")}} の各要素の許可される種類を設定するには、 {{CSP("plugin-types")}} ディレクティブを使用してください。

+ +

object-src で制御される要素は、おそらく偶然にも古い HTML 要素と見なされており、新しい標準機能が搭載されていません (<iframe>sandboxallow などのセキュリティ属性など)。したがって、このフェッチディレクティブで制限することを推奨します (例えば、可能であれば明示的に object-src 'none' を設定するなど)。

+ + + + + + + + + + + + + + + + +
CSP バージョン1
ディレクティブ種別{{Glossary("Fetch directive", "フェッチディレクティブ")}}
{{CSP("default-src")}} による代替あり。このディレクティブがない場合、ユーザーエージェントは default-src ディレクティブを探します。
+ +

構文

+ +

object-src ポリシーには、1つまたは複数のソースが許可されています。

+ +
Content-Security-Policy: object-src <source>;
+Content-Security-Policy: object-src <source> <source>;
+
+ +

ソース

+ +

{{page("/ja/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src", "Sources")}}

+ +

+ +

違反例

+ +

この CSP ヘッダーがある場合、

+ +
Content-Security-Policy: object-src https://example.com/
+ +

以下の {{HTMLElement("object")}}, {{HTMLElement("embed")}}, {{HTMLElement("applet")}} の各要素はブロックされ、読み込まれません。

+ +
<embed src="https://not-example.com/flash"></embed>
+<object data="https://not-example.com/plugin"></object>
+<applet archive="https://not-example.com/java"></applet>
+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("CSP 3.0", "#directive-object-src", "object-src")}}{{Spec2('CSP 3.0')}}変更なし
{{specName("CSP 1.1", "#directive-object-src", "object-src")}}{{Spec2('CSP 1.1')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.csp.Content-Security-Policy.object-src")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) の plugin-types ディレクティブは、文書に埋め込むことができるプラグインのセットを、読み込むことができるリソースの種類を制限することによって制限します。

+ +

{{HTMLElement("embed")}}, {{HTMLElement("object")}}, {{HTMLElement("applet")}} の各要素のインスタンス化は、次の場合に失敗します。

+ + + + + + + + + + + + + + + + + + +
CSP バージョン2
ディレクティブ種別{{Glossary("Document directive", "文書ディレクティブ")}}
{{CSP("default-src")}} による代替なし。これを設定しないと何も許可されない。
+ +

構文

+ +

1つ以上の MIME 型plugin-types ポリシーに設定することができます。

+ +
Content-Security-Policy: plugin-types <type>/<subtype>;
+Content-Security-Policy: plugin-types <type>/<subtype> <type>/<subtype>;
+
+ +
+
<type>/<subtype>
+
妥当な MIME 型
+
+ +

+ +

プラグインを不許可にする

+ +

全てのプラグインを不許可にするには、 {{CSP("object-src")}} ディレクティブを 'none' に設定すればプラグインが不許可になります。 plugin-types ディレクティブは、 object-src でプラグインを許可している場合に限って使用することができます。

+ +
<meta http-equiv="Content-Security-Policy" content="object-src 'none'">
+ +

Flash コンテンツの許可

+ +

以下のコンテンツセキュリティポリシーは、

+ +
Content-Security-Policy: plugin-types application/x-shockwave-flash
+ +

次のような Flash オブジェクトの読み込みを許可します。

+ +
<object data="https://example.com/flash" type="application/x-shockwave-flash"></object>
+ +

Java アプレットの許可

+ +

{{HTMLElement("applet")}} を読み込むには、 application/x-java-applet を指定する必要があります。

+ +
Content-Security-Policy: plugin-types application/x-java-applet
+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("CSP 3.0", "#directive-plugin-types", "plugin-types")}}{{Spec2('CSP 3.0')}}変更なし
{{specName("CSP 1.1", "#directive-plugin-types", "plugin-types")}}{{Spec2('CSP 1.1')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.csp.Content-Security-Policy.plugin-types")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) における prefetch-src ディレクティブは、事前読み込みまたは事前描画することができる有効なリソースを指定します。

+ + + + + + + + + + + + + + + + +
CSP バージョン3
ディレクティブ種別{{Glossary("Fetch directive", "フェッチディレクティブ")}}
{{CSP("default-src")}} fallbackあり。このディレクティブがない場合、ユーザーエージェントは default-src ディレクティブを探します。
+ +

構文

+ +

prefetch-src ポリシーには、1つ以上のソースが許可されています。

+ +
Content-Security-Policy: prefetch-src <source>;
+Content-Security-Policy: prefetch-src <source> <source>;
+
+ +

ソース

+ +

{{page("/ja/docs/Web/HTTP/Headers/Content-Security-Policy/default-src", "common_sources")}}

+ +

+ +

ヘッダーが一致しないリソースの事前読み込み

+ +

次のコンテンツセキュリティポリシーを持つページがあったとします。

+ +
Content-Security-Policy: prefetch-src https://example.com/
+
+ +

次のコードで読み込もうとすると、指定された URL が prefetch-src のソース一覧にないので、ネットワークエラーになります。

+ +
<link rel="prefetch" src="https://example.org/"></link>
+<link rel="prerender" src="https://example.org/"></link>
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("CSP 3.0", "#prefetch-src", "prefetch-src")}}{{Spec2("CSP 3.0")}}初回定義
+ +

ブラウザーの互換性

+ +

{{Compat("http.headers.csp.Content-Security-Policy.prefetch-src")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}} {{deprecated_header}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) の referrer ディレクティブは、ページから離れたリンクの {{HTTPHeader("Referer")}} ヘッダー (元の仕様書の綴りミスのため r は単一) の情報を指定するために使用されます。この API は非推奨であり、ブラウザーから削除されました。

+ +
+

代わりに {{HTTPHeader("Referrer-Policy")}} ヘッダーを使用してください。

+
+ +

構文

+ +
Content-Security-Policy: referrer <referrer-policy>;
+ +

<referrer-policy> は以下のいずれかの値になります:

+ +
+
"no-referrer"
+
{{HTTPHeader("Referer")}} ヘッダーは完全に除外されます。リファラー情報はリクエストと共に送信されません。
+
"none-when-downgrade"
+
これがポリシーが指定されていない場合のユーザーエージェントの既定の動作です。以前と同じ安全性 (HTTPS->HTTPS) の宛先にはオリジンが送信されますが、安全性の低い宛先 (HTTPS->HTTP) には送信されません。
+
"origin"
+
すべての場合で、リファラーとして文書ののオリジンのみ送信されます。
+ https://example.com/page.html の文書の場合は https://example.com/ というリファラーが送信されます。
+
"origin-when-cross-origin" / "origin-when-crossorigin"
+
同一オリジンのリクエストを実行する際は完全な URL が送信されますが、それ以外の場合は文書のオリジンのみ送信されます。
+
"unsafe-url"
+
同一オリジンまたはオリジン間のリクエストを実行する際は完全な URL (引数は除外) が送信されます。このポリシーは、 TLS で保護されたリソースから保護されていないオリジンへのオリジンとパスを漏洩させます。この設定の影響を慎重に検討してください。
+
+ +

+ +
Content-Security-Policy: referrer "none";
+ +

仕様書

+ +

いずれの仕様書の一部でもありません。

+ +

ブラウザーの互換性

+ +

{{Compat("http.headers.csp.referrer")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Content-Security-PolicyReport-To は HTTP のレスポンスヘッダーフィールドで、ユーザーエージェントにオリジンの報告先のエンドポイントを保存するよう指示します。

+ +
Content-Security-Policy: ...; report-to groupname
+
+ +

このディレクティブは単体では効果がありませんが、他のディレクティブとの組み合わせでのみ意味を持ちます。

+ + + + + + + + + + + + + + + +
CSP version1
ディレクティブ種別{{Glossary("Reporting directive", "報告ディレクティブ")}}
このディレクティブは {{HTMLElement("meta")}} 要素では対応していません。
+ +

構文

+ +
Content-Security-Policy: report-to <json-field-value>;
+ +

+ +

詳しい情報や例は、 {{HTTPHeader("Content-Security-Policy-Report-Only")}} を参照してください。

+ +
Report-To: { "group": "csp-endpoint",
+             "max_age": 10886400,
+             "endpoints": [
+               { "url": "https://example.com/csp-reports" }
+             ] },
+           { "group": "hpkp-endpoint",
+             "max_age": 10886400,
+             "endpoints": [
+               { "url": "https://example.com/hpkp-reports" }
+             ] }
+Content-Security-Policy: ...; report-to csp-endpoint
+
+ +
Report-To: { "group": "endpoint-1",
+             "max_age": 10886400,
+             "endpoints": [
+               { "url": "https://example.com/reports" },
+               { "url": "https://backup.com/reports" }
+             ] }
+
+Content-Security-Policy: ...; report-to endpoint-1
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.csp.Content-Security-Policy.report-to")}}

+ +

関連情報

+ + 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 +--- +
{{Obsolete_header}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} における require-sri-for ディレクティブは、クライアントにページ上でスクリプトやスタイルのサブリソース完全性を要求することを支持します。

+ +

構文

+ +
Content-Security-Policy: require-sri-for script;
+Content-Security-Policy: require-sri-for style;
+Content-Security-Policy: require-sri-for script style;
+
+ +
+
script
+
{{Glossary("SRI")}} をスクリプトに要求します。
+
style
+
{{Glossary("SRI")}} をスタイルシートに要求します。
+
script style
+
{{Glossary("SRI")}} をスクリプトとスタイルシートの両方に要求します。
+
+ +

+ +

このディレクティブを使ってスクリプトやスタイルに SRI を要求するようにサイトを設定している場合の設定です。

+ +
Content-Security-Policy: require-sri-for script style
+ +

以下のような {{HTMLElement("script")}} 要素は正しい integrity 属性を使用している場合に限り、読み込まれます。

+ +
<script src="https://code.jquery.com/jquery-3.1.1.slim.js"
+        integrity="sha256-5i/mQ300M779N2OVDrl16lbohwXNUdzL/R2aVUXyXWA="
+        crossorigin="anonymous"></script>
+ +

しかし、 integrity のないスクリプトは読み込まれなくなります。

+ +
<script src="https://code.jquery.com/jquery-3.1.1.slim.js"></script>
+ +

ブラウザーの互換性

+ +

{{Compat("http.headers.csp.Content-Security-Policy.require-sri-for")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) の sandbox ディレクティブは、 {{HTMLElement("iframe")}} の {{htmlattrxref("sandbox", "iframe")}} 属性と同様に、要求されたリソースに対してサンドボックスを有効にします。これは、ポップアップの防止、プラグインやスクリプトの実行の防止、同一オリジンポリシーの強制などを含むページ操作の制限を適用します。

+ + + + + + + + + + + + + + + +
CSP バージョン1.1 / 2
ディレクティブ種別{{Glossary("Document directive", "文書ディレクティブ")}}
このディレクティブは {{HTMLElement("meta")}} 要素や {{HTTPHeader("Content-Security-policy-Report-Only")}} ヘッダーフィールドでは対応していません。
+ +

構文

+ +
Content-Security-Policy: sandbox;
+Content-Security-Policy: sandbox <value>;
+
+ +

<value> は省略可能で、以下の値の内の一つです。

+ +
+
allow-downloads-without-user-activation {{experimental_inline}}
+
ユーザーによる指示のないダウンロードを許可します。
+
+ +
+
allow-forms
+
埋め込み閲覧コンテキストが、フォームを送信することを許可します。このキーワードが使用されなかった場合、この操作は許可されません。
+
allow-modals
+
埋め込み閲覧コンテキストが、モーダルウィンドウを開くことを許可します。
+
allow-orientation-lock
+
埋め込み閲覧コンテキストが、画面の向きをロックする機能を無効化することを許可します。
+
allow-pointer-lock
+
埋め込み閲覧コンテキストが、 Pointer Lock API を使用することを許可します。
+
allow-popups
+
ポップアップ (window.open, target="_blank", showModalDialog などによるもの) を許可します。このキーワードが使用されなかった場合、この機能は暗黙に失敗します。
+
allow-popups-to-escape-sandbox
+
サンドボックス化された文書が、サンドボックスフラグを強制することなく新しいウィンドウを開くことを許可します。これによって、例えば、サードパーティの広告が安全にサンドボックス化される一方、ランディングページには同じ制限が強制されなくなります。
+
allow-presentation
+
埋め込みを行った者が、 iframe がプレゼンテーションセッションを開始できるかどうかを制御できるようになります。
+
allow-same-origin
+
コンテンツが通常のオリジンからのものとして扱われることを許可します。このキーワードが使用されなかった場合は、埋め込まれたコンテンツは独自のオリジンからのものとして扱われます。
+
allow-scripts
+
埋め込み閲覧コンテキストがスクリプトを実行することを許可します (ポップアップウィンドウの生成を除く)。このキーワードが使用されなかった場合は、この操作は許可されません。
+
allow-storage-access-by-user-activation {{experimental_inline}}
+
リソースが親のストレージ機能に Storage Access API でアクセスを要求できるようにします。
+
allow-top-navigation
+
埋め込み閲覧コンテキストが、最上位の閲覧コンテキストを移動させる (読み込ませる) ことを許可します。このキーワードが使用されなかった場合、この操作は許可されません。
+
allow-top-navigation-by-user-activation
+
ユーザーの指示で開始された場合に限り、リソースが最上位の閲覧コンテキストを移動させます。
+
+ +

+ +
Content-Security-Policy: sandbox allow-scripts;
+ +

仕様書

+ + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("CSP 3.0", "#directive-sandbox", "sandbox")}}{{Spec2('CSP 3.0')}}変更なし
{{specName("CSP 1.1", "#directive-sandbox", "sandbox")}}{{Spec2('CSP 1.1')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.csp.Content-Security-Policy.sandbox")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) における script-src-elem ディレクティブは、 JavaScript の {{HTMLElement("script")}} 要素の有効なソースを指定しますが、 onclick のようなインラインスクリプトのイベントハンドラーは指定しません。

+ + + + + + + + + + + + + + + + +
CSP バージョン3
ディレクティブ種別{{Glossary("Fetch directive", "フェッチディレクティブ")}}
{{CSP("default-src")}} による代替あり。このディレクティブがない場合、ユーザーエージェントは {{CSP("script-src")}} ディレクティブを探し、両方ともない場合は、 default-src ディレクティブで代替します。
+ +

構文

+ +

script-src-elem ポリシーには、1つまたは複数のソースが許可されています。

+ +
Content-Security-Policy: script-src-elem <source>;
+Content-Security-Policy: script-src-elem <source> <source>;
+
+ +

script-src-elem は {{CSP("script-src")}} との組み合わせで使用することができます。

+ +
Content-Security-Policy: script-src <source>;
+Content-Security-Policy: script-src-elem <source>;
+
+ +

ソース

+ +

{{page("/ja/docs/Web/HTTP/Headers/Content-Security-Policy/default-src", "Sources")}}

+ +

+ +

script-src へのフォールバック

+ +

script-src-elem 存在しない場合、ユーザーエージェントは {{CSP("script-src")}} ディレクティブで代替し、こちらも同様にない場合は、 {{CSP("default-src")}} で代替します。

+ + + +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("CSP 3.0", "#directive-script-src-elem", "script-src-elem")}}{{Spec2("CSP 3.0")}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.csp.Content-Security-Policy.script-src-elem")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) の script-src ディレクティブは、 JavaScript の情報なソースを指定します。これは {{HTMLElement("script")}} 要素の中に直接読み込まれる URL だけでなく、インラインのスクリプトイベントハンドラー (onclick) やスクリプト実行のトリガーとなりうる XSLT スタイルシートのようなものも含まれます。

+ + + + + + + + + + + + + + + + +
CSP バージョン1
ディレクティブ種別{{Glossary("Fetch directive", "フェッチディレクティブ")}}
{{CSP("default-src")}} による代替あり。このディレクティブがない場合、ユーザーエージェントは default-src ディレクティブを探します。
+ +

構文

+ +

script-src ポリシーには、1つまたは複数のソースが許可されています。

+ +
Content-Security-Policy: script-src <source>;
+Content-Security-Policy: script-src <source> <source>;
+
+ +

ソース

+ +

{{page("Web/HTTP/Headers/Content-Security-Policy/default-src", "Sources")}}

+ +

+ +

違反例

+ +

この CSP ヘッダーがある場合、

+ +
Content-Security-Policy: script-src https://example.com/
+ +

以下のスクリプトはブロックされ、読み込みや実行が行われません。

+ +
<script src="https://not-example.com/js/library.js"></script>
+ +

なお、インラインのイベントハンドラーも同様にブロックされます。

+ +
<button id="btn" onclick="doSomething()">
+ +

これを {{domxref("EventTarget.addEventListener", "addEventListener")}} の呼び出しに置き換えてください。

+ +
document.getElementById("btn").addEventListener('click', doSomething);
+ +

安全ではないインラインのスクリプト

+ +
+

注: インラインスタイルとインラインスクリプトを禁止することは、 CSP が提供する最大のセキュリティ上の利点の一つです。しかし、どうしても使用しなければならない場合は、それらを許可する仕組みがいくつかあります。

+
+ +

インラインスクリプトとインラインのイベントハンドラーを許可するために 'unsafe-inline' や、インラインブロックに一致するノンスソースまたはハッシュソースを指定することができます。

+ +
Content-Security-Policy: script-src 'unsafe-inline';
+
+ +

上記のコンテンツセキュリティポリシーは、インラインの {{HTMLElement("script")}} 要素を許可します。

+ +
<script>
+  var inline = 1;
+</script>
+ +

nonce-source を使用して、特定のインラインスクリプトブロックのみ許可することができます。

+ +
Content-Security-Policy: script-src 'nonce-2726c7f26c'
+ +

同じノンスを {{HTMLElement("script")}} 要素に指定する必要があります。

+ +
<script nonce="2726c7f26c">
+  var inline = 1;
+</script>
+ +

他にも、インラインスクリプトからハッシュを生成することができます。 CSP では sha256, sha384, sha512 に対応しています。

+ +
Content-Security-Policy: script-src 'sha256-B2yPHKaXnvFWtRChIbabYmUBFZdVfKKXHbWtWidDVF8='
+ +

ハッシュを生成するとき、 {{HTMLElement("script")}} タグを含めないようにし、大文字小文字と、ホワイトスペース、特に前後のホワイトスペースに注意してください。

+ +
<script>var inline = 1;</script>
+ +

安全ではない eval 式

+ +

'unsafe-eval' ソース式は、文字列からコードを生成するいくつかのスクリプト実行メソッドを制御します。もし 'unsafe-eval'script-src ディレクティブで指定されていななかった場合、以下のメソッドはブロックされて何の効果も現れません。

+ + + +

strict-dynamic

+ +

'strict-dynamic' ソース式は、マークアップ中のスクリプトに明示的に与えられた信頼が、ノンスやハッシュを伴って、そのルートスクリプトによって読み込まれるすべてのスクリプトに伝搬されることを指定します。同時に、 'self''unsafe-inline' のようなホワイトリストやソース表現は無視されます。例えば、 script-src 'strict-dynamic' 'nonce-R4nd0m' https://whitelisted.com/ のようなポリシーでは、 <script nonce="R4nd0m" src="https://example.com/loader.js"> を指定したルートスクリプトの読み込みを許可し、 loader.js で読み込まれたすべてのスクリプトにその信頼性を伝播させますが、 https://whitelisted.com/ からのスクリプトの読み込みは、ノンスを伴っているか、信頼されたスクリプトから読み込まれたものでない限り、許可しません。

+ +
script-src 'strict-dynamic' 'nonce-someNonce'
+ +

または

+ +
script-src 'strict-dynamic' 'sha256-base64EncodedHash'
+ +

ユーザーエージェントのスニッフィングを必要とせず、後方互換性のある方法として、 strict-dynamic を指定することができます。.
+ 以下のポリシー、

+ +
script-src 'unsafe-inline' https: 'nonce-abcdefg' 'strict-dynamic'
+ +

は、 CSP1 に対応したブラウザーでは 'unsafe-inline' https: のように動作し、 CSP2 に対応したブラウザーでは https: 'nonce-abcdefg' のように、CSP3 に対応したブラウザーでは 'nonce-abcdefg' 'strict-dynamic' のように動作します。

+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("CSP 3.0", "#directive-script-src", "script-src")}}{{Spec2('CSP 3.0')}}変更なし
{{specName("CSP 1.1", "#directive-script-src", "script-src")}}{{Spec2('CSP 1.1')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.csp.Content-Security-Policy.script-src")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) の style-src ディレクティブは、スタイルシートの有効なソースを指定します。

+ + + + + + + + + + + + + + + + +
CSP バージョン1
ディレクティブ種別{{Glossary("Fetch directive", "フェッチディレクティブ")}}
{{CSP("default-src")}} による代替あり。このディレクティブがない場合、ユーザーエージェントは default-src ディレクティブを探します。
+ +

構文

+ +

style-src ポリシーには、1つまたは複数のソースが許可されています。

+ +
Content-Security-Policy: style-src <source>;
+Content-Security-Policy: style-src <source> <source>;
+
+ +

ソース

+ +

{{page("/ja/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src", "Sources")}}

+ +

+ +

違反例

+ +

この CSP ヘッダーがある場合、

+ +
Content-Security-Policy: style-src https://example.com/
+ +

以下のスタイルシートはブロックされ、読み込まれません。

+ +
<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>
+ +

{{HTTPHeader("Link")}} ヘッダーで読み込まれるものも同様です。

+ +
Link: <https://not-example.com/styles/stylesheet.css>;rel=stylesheet
+
+ +

インラインの style 属性もブロックされます。

+ +
<div style="display:none">Foo</div>
+ +

JavaScript で直接 style 属性を設定したり、 {{domxref("CSSStyleDeclaration.cssText", "cssText")}} を設定したりしたスタイルも同様です。

+ +
document.querySelector('div').setAttribute('style', 'display:none;');
+document.querySelector('div').style.cssText = 'display:none;';
+ +

しかし、要素の {{domxref("HTMLElement.style", "style")}} プロパティに直接設定されたスタイルプロパティはブロックされず、 JavaScript から安全にスタイルを操作することができます。

+ +
document.querySelector('div').style.display = 'none';
+ +

この手の操作は、 CSP の {{CSP("script-src")}} ディレクティブで JavaScript を無効にすることで防ぐことができます。

+ +

安全ではないインラインスタイル

+ +
+

注: インラインスタイルとインラインスクリプトを禁止することは、 CSP が提供する最大のセキュリティ上の利点の一つです。しかし、どうしても使用しなければならない場合は、それらを許可する仕組みがいくつかあります。

+
+ +

インラインスタイルを許可するために、 'unsafe-inline' を指定するか、インラインブロックに一致するノンスソースまたはハッシュソースを指定することができます。

+ +
Content-Security-Policy: style-src 'unsafe-inline';
+
+ +

上記のコンテンツセキュリティポリシーは {{HTMLElement("style")}} 要素やあらゆる要素の style 属性などのインラインスタイルを許可します。

+ +
<style>
+#inline-style { background: red; }
+</style>
+
+<div style="display:none">Foo</div>
+
+ +

ノンスソースを使用して、特定のインラインスタイルのみ許可することができます。

+ +
Content-Security-Policy: style-src 'nonce-2726c7f26c'
+ +

同じノンスを {{HTMLElement("style")}} 要素にも設定する必要があります。

+ +
<style nonce="2726c7f26c">
+#inline-style { background: red; }
+</style>
+ +

他にも、インラインスタイルからハッシュを生成することができます。 CSP では sha256, sha384, sha512 に対応しています。

+ +
Content-Security-Policy: style-src 'sha256-a330698cbe9dc4ef1fb12e2ee9fc06d5d14300262fa4dc5878103ab7347e158f'
+ +

ハッシュを生成するときは、 {{HTMLElement("style")}} タグを含めないようにし、大文字小文字と、ホワイトスペース、特に前後のホワイトスペースに注意してください。

+ +
<style>#inline-style { background: red; }</style>
+ +

安全ではない style 式

+ +

'unsafe-eval' ソース式は、文字列からスタイル宣言を生成するいくつかのスタイルメソッドを制御します。もし 'unsafe-eval'style-src ディレクティブで指定されていななかった場合、以下のメソッドはブロックされて何の効果も現れません。

+ + + +

仕様書

+ + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("CSP 3.0", "#directive-style-src", "style-src")}}{{Spec2('CSP 3.0')}}No changes.
{{specName("CSP 1.1", "#directive-style-src", "style-src")}}{{Spec2('CSP 1.1')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.csp.Content-Security-Policy.style-src")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) の trusted-types {{experimental_inline}} ディレクティブは、既知の DOM XSS シンクの使用を、文字列の代わりにスプーフィング不可能な型付きの値のみを受け入れる定義済みの関数のセットに制限するようにユーザエージェントに指示します。これにより、作者は DOM への値の書き込みを守るルールを定義することができ、 DOM XSS 攻撃の対象をウェブアプリケーションのコードベースの小さな孤立した部分に減らすことができ、監視やコードレビューが容易になります。このディレクティブは、 Trusted Types API から TrustedTypes.createPolicy で作成された信頼できる型のポリシー名のホワイトリストを宣言します。

+ +

構文

+ +
Content-Security-Policy: trusted-types;
+Content-Security-Policy: trusted-types <policyName>;
+Content-Security-Policy: trusted-types <policyName> <policyName> 'allow-duplicates';
+
+ +
+
<DOMString>
+
Trusted Type ポリシー名とすることができる任意の文字列です。
+
'allow-duplicates'
+
ポリシー名が既に使用されていても、生成を許可します。
+
+ +

+ +

TODO

+ +

ポリフィル

+ +

A Trusted Types のポリフィルが Github 上で利用できます。

+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
Trusted TypesDraft初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.csp.Content-Security-Policy.trusted-types")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) upgrade-insecure-requests ディレクティブは、ユーザーエージェントに、すべてのサイトの安全でないURL (HTTP経由で提供されるURL) をセキュリティで保護された URL (HTTPSを介して提供されるもの) で置き換えられたかのように処理するよう指示します。このディレクティブは、書き換えが必要な安全ではない古い URL が多数存在するウェブサイトのためのものです。

+ +

upgrade-insecure-requests ディレクティブは、 {{CSP("block-all-mixed-content")}} よりも前に処理され、もし設定されていれば後者は何もしません。どちらかのディレクティブを設定することをお勧めしますが、 HTTP にリダイレクトした後で HTTPS を強制することができない古いブラウザーで HTTPS を強制させたくない限り、両方を指定することはできません。

+ +

upgrade-insecure-requests ディレクティブは、第三者のサイトのリンクを経由してサイトにアクセスしたユーザーが最上位のナビゲーション用に HTTPS にアップグレードされることを保証しないため、 {{HTTPHeader("Strict-Transport-Security")}} ({{Glossary("HSTS")}}) ヘッダーを置換せず、ユーザーがSSLストリッピング攻撃の対象にならないように、適切な max-age を設定するようにしてください。

+ +

構文

+ +
Content-Security-Policy: upgrade-insecure-requests;
+ +

+ +
// ヘッダー
+Content-Security-Policy: upgrade-insecure-requests;
+
+// meta タグ
+<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+
+ +

HTTP から HTTPS への移行を望むドメイン example.com に上記のヘッダーを設定すると、ページ移動を伴わない安全ではないリソースのリクエストが自動的にアップグレードされます (第三者のリクエストが自分のものと同様に)。

+ +
<img src="http://example.com/image.png">
+<img src="http://not-example.com/image.png">
+ +

これらの URL は、リクエストが行われる前に書き直されます。つまり、安全でない要求がネットワークに侵入しないようにします。なお、要求されたリソースが実際に HTTPS 経由で利用可能ではない場合、リクエストは HTTP で代替されずに失敗することに注意してください。

+ +
<img src="https://example.com/image.png">
+<img src="https://not-example.com/image.png">
+ +

第三者のリソースへのナビゲーションをアップグレードすると、破壊の可能性が大幅に高まりますので、これらはアップグレードされません。

+ +
<a href="https://example.com/">Home</a>
+<a href="http://not-example.com/">Home</a>
+ +

安全ではないリクエストの発見

+ +

{{HTTPHeader("Content-Security-Policy-Report-Only")}} ヘッダーと {{CSP("report-uri")}} ディレクティブを利用して、強制ポリシーと報告されたポリシーを次のように設定することができます。

+ +
Content-Security-Policy: upgrade-insecure-requests; default-src https:
+Content-Security-Policy-Report-Only: default-src https:; report-uri /endpoint
+ +

このようにして、安全なサイト上の安全でない要求は引き続きアップグレードされますが、監視ポリシーに違反した場合だけが、安全でないリソースがエンドポイントに報告されます。

+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("Upgrade Insecure Requests", "#delivery", "upgrade-insecure-requests")}}{{Spec2('Upgrade Insecure Requests')}}初回定義
+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.csp.upgrade-insecure-requests")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) worker-src ディレクティブは、 {{domxref("Worker")}}, {{domxref("SharedWorker")}}, {{domxref("ServiceWorker")}} スクリプトの有効なソースを指定します。

+ + + + + + + + + + + + + + + + +
CSP バージョン3
ディレクティブ種別{{Glossary("Fetch directive", "フェッチディレクティブ")}}
フォールバック +

このディレクティブがない場合、ユーザーエージェントはワーカーの実行の管理のために、最初に {{CSP("child-src")}} ディレクティブ、次に {{CSP("script-src")}} ディレクティブ、最後に {{CSP("default-src")}} ディレクティブを探します。

+ +

Chrome 59 以降は {{CSP("child-src")}} ディレクティブを飛ばします。

+ +

Edge 17 は {{CSP("script-src")}} ディレクティブを飛ばします (bug)。

+
+ +

構文

+ +

worker-src ポリシーには1つ以上のソースを指定することができます。

+ +
Content-Security-Policy: worker-src <source>;
+Content-Security-Policy: worker-src <source> <source>;
+
+ +

ソース

+ +

{{page("Web/HTTP/Headers/Content-Security-Policy/default-src", "Sources")}}

+ +

+ +

違反の場合

+ +

この CSP ヘッダーが与えられている時、

+ +
Content-Security-Policy: worker-src https://example.com/
+ +

{{domxref("Worker")}}, {{domxref("SharedWorker")}}, {{domxref("ServiceWorker")}} はブロックされ、読み込まれません。

+ +
<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>
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{specName("CSP 3.0", "#directive-worker-src", "worker-src")}}{{Spec2('CSP 3.0')}}初回定義。
+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.csp.worker-src")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Content-Type エンティティヘッダーは、リソースの{{Glossary("MIME type","メディア種別")}}を示すために使用します。

+ +

レスポンスにおいては、 Content-Type ヘッダーはクライアントに返されたコンテンツが実際にはどのような種類のものであるかを伝えます。場合によってはブラウザーは MIME を推定し、このヘッダーの値に従わないこともあります。 {{HTTPHeader("X-Content-Type-Options")}} を nosniff に設定すると、この振舞いを防ぐことができます。

+ +

要求においては ({{HTTPMethod("POST")}} または {{HTTPMethod("PUT")}} などで)、クライアントがサーバーにどのような種類のデータが実際に送られたかを伝えます。

+ + + + + + + + + + + + + + + + + + + + +
ヘッダー種別{{Glossary("Entity header", "エンティティヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
{{Glossary("CORS-safelisted response header", "CORS セーフリストレスポンスヘッダー")}}はい
{{Glossary("CORS-safelisted request header", "CORS セーフリストリクエストヘッダー")}}はい。 CORS 危険リクエストヘッダーバイト: "():<>?@[\]{}, Delete, Tab, 制御文字の 0x00 から 0x19 までを値に含むことができないという制限付きです。
+ また、 MIME タイプの解釈値 (引数を除いたもの) が application/x-www-form-urlencoded, multipart/form-data, text/plain の何れかである必要があります。
+ +

構文

+ +
Content-Type: text/html; charset=UTF-8
+Content-Type: multipart/form-data; boundary=something
+
+ +

ディレクティブ

+ +
+
media-type
+
リソースやデータの MIME タイプです。
+
charset
+
標準の文字エンコーディングです。
+
boundary
+
マルチパートの本文では boundary ディレクティブが必要で、これはメールゲートウェイを通過しても大丈夫だと知られている文字の中から1~70文字で構成され、ホワイトスペースで終了しないものです。これはメッセージの複数パートの境界を囲むために使用します。ふつう、ヘッダーの境界は2本のダッシュで始まり、最後の境界には最後にも2本のダッシュが入ります。
+
+ +

+ +

HTML フォームにおける Content-Type

+ +

HTML フォームを送信した結果としての {{HTTPMethod("POST")}} 要求において、 Content-Type は {{HTMLElement("form")}} 要素の enctype 属性で指定します。

+ +
<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>
+
+ +

この要求はこのように見えます。 (ここではあまり重要でないヘッダーは省略しています)

+ +
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--
+
+ +

仕様書

+ + + + + + + + + + + + + + + + + + +
仕様書題名
{{RFC("7233", "Content-Type in multipart", "4.1")}}Hypertext Transfer Protocol (HTTP/1.1): Range Requests
{{RFC("7231", "Content-Type", "3.1.1.5")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Content-Type")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Cookie は HTTP のリクエストヘッダーで、以前サーバーが {{HTTPHeader("Set-Cookie")}} ヘッダーで送信し、保存された HTTP クッキーを含みます。

+ +

Cookie ヘッダーは任意であり、例えば、ブラウザーのプライバシー設定でクッキーをブロックしている場合などは省略できます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}はい
+ +

構文

+ +
Cookie: <cookie-list>
+Cookie: name=value
+Cookie: name=value; name2=value2; name3=value3
+ +
+
<cookie-list>
+
名前と値のリストを <cookie-name>=<cookie-value> の形で表したものです。リストの組はセミコロンと空白 ('; ') で区切られます。
+
+ +

+ +
Cookie: PHPSESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43; _gat=1
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("6265", "Cookie", "5.4")}}HTTP State Management Mechanism
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Cookie")}}

+ +

関連情報

+ + 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 +--- +

{{HTTPSidebar}} {{obsolete_header}}

+ +

時代遅れの Cookie2 HTTP リクエストヘッダは、ユーザエージェントが "新しいスタイルの"クッキーを理解していることをサーバに知らせるために使われましたが、最近のユーザエージェントはこれではなく、 {{HTTPHeader("Cookie")}} ヘッダを使用します。

+ + + + + + + + + + + + +
ヘッダータイプ{{Glossary("Request header")}}
{{Glossary("Forbidden header name")}}yes
+ +

+ +
Cookie2: $Version="1"
+ +

仕様

+ + + + + + + + + + + + +
仕様タイトル
{{RFC("2965", "Cookie2")}}Historic specification of HTTP State Management Mechanism, obsoleted by {{RFC("6265")}}
+ +

ブラウザの実装状況

+ + + +

{{Compat("http.headers.Cookie2")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +
+

注: Chrome のバグのため、 Cross-Origin-Resource-Policy を設定すると PDF のレンダリングが中断され、一部の PDF の最初のページを超えて読むことができなくなることがあります。 Firefox のバグのため、Cross-Origin-Resource-Policy を設定すると、状況によっては一部のリソース(PDF など)のダウンロードができなくなることがあります。本番環境では、このヘッダーの使用に注意してください。

+
+ +

HTTP の Cross-Origin-Resource-Policy レスポンスヘッダーは、ブラウザーが指定されたリソースへの no-cors のクロスオリジン/クロスサイトのリクエストをブロックするという要望を伝えます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Cross-Origin-Resource-Policy: same-site | same-origin | cross-origin
+
+ +

+ +

以下のレスポンスヘッダーにより、互換性のあるユーザーエージェントはクロスオリジンの no-cors リクエストを許可しなくなります。

+ +
Cross-Origin-Resource-Policy: same-origin
+
+ +

その他の例は、 https://resourcepolicy.fyi/ を参照してください。

+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName("Fetch", '#cross-origin-resource-policy-header')}}{{Spec2("Fetch", '#cross-origin-resource-policy-header')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Cross-Origin-Resource-Policy")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Date 一般 HTTP ヘッダーには、メッセージが発信された日時が含まれています。

+ +
+

Date は fetch 仕様書において禁止ヘッダー名に挙げられています。 - そのため、このコードは Date ヘッダーを送信しません。

+ +
fetch('https://httpbin.org/get', {
+    'headers': {
+        'Date': (new Date()).toUTCString()
+    }
+})
+
+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("General header", "一般ヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}はい
+ +

構文

+ +
Date: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
+
+ +

ディレクティブ

+ +
+
<day-name>
+
"Mon"、"Tue"、"Wed"、"Thu"、"Fri"、"Sat"、"Sun" のいずれか (大文字小文字を区別)。
+
<day>
+
2桁の日番号。例えば "04" または "23"。
+
<month>
+
"Jan"、"Feb"、"Mar"、"Apr"、"May"、"Jun"、"Jul"、"Aug"、"Sep"、 "Oct"、"Nov"、"Dec" のいずれか (大文字と小文字を区別)。
+
<year>
+
4桁の年の数字。たとえば "1990" または "2016"。
+
<hour>
+
2桁の時の数字。たとえば "09" または "23"。
+
<minute>
+
2桁の分の数字。たとえば "04" または "59"。
+
<second>
+
2桁の秒の数字。たとえば "04" または "59"。
+
GMT
+
+

グリニッジ標準時。HTTP の日付は常に GMT で表され、決して現地時間で表されることはありません。

+
+
+ +

+ +
Date: Wed, 21 Oct 2015 07:28:00 GMT
+
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7231", "Date", "7.1.1.2")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Date")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}{{securecontext_header}}{{SeeCompatTable}}
+ +

Device-Memory ヘッダーは、クライアントヒントのヘッダーのように機能する Device Memory API のヘッダーで、クライアントデバイスの RAM の概算量を表します。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header","リクエストヘッダー")}}
{{Glossary("Forbidden header name","禁止ヘッダー名")}}?
+ +
+

: クライアントヒントには、安全なオリジン(TLS 経由)でのみアクセスできます。 サーバーは、{{HTTPHeader("Accept-CH")}} および {{HTTPHeader("Accept-CH-Lifetime")}} のレスポンスヘッダーを送信することによって、クライアントから Device-Memory ヘッダーを受信することを選択する必要があります。

+
+ +

構文

+ +

デバイス RAM の量は、フィンガープリント変数として使用できるため、ヘッダーでの値は、誤用の可能性を減らすために意図的に粗くなっています。 ヘッダーは次の値を取ります: 0.250.51248

+ +
Device-Memory: <number>
+
+ +

+ +

サーバーはまず、レスポンスヘッダーとして Device-Memory を含む {{HTTPHeader("Accept-CH")}} と {{HTTPHeader("Accept-CH-Lifetime")}} を送信することによって、Device-Memory ヘッダーを受信するように選択する必要があります。

+ +
Accept-CH: Device-Memory
+Accept-CH-Lifetime: 86400
+
+ +

次に、後続のリクエストでクライアントは、次のように Device-Memory ヘッダーを送り返す場合があります。

+ +
Device-Memory: 1
+
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName("Device Memory","#sec-device-memory-client-hint-header","Device-Memory")}}{{Spec2('Device Memory')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Device-Memory")}}

+ +

関連情報

+ + 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 +--- +

{{HTTPSidebar}}

+ +

DNT (Do Not Track) リクエストヘッダーは、ユーザーのトラッキングの設定を示します。 これにより、ユーザーはパーソナライズされたコンテンツではなく、プライバシーを優先するかどうかを指定できます.

+ + + + + + + + + + + + +
ヘッダータイプ{{Glossary("Request header")}}
{{Glossary("Forbidden header name")}}はい
+ +

構文

+ +
DNT: 0
+DNT: 1
+DNT: null
+
+ +

宣言

+ +
+
0
+
ユーザーは対象のサイトでトラッキングを許可している。
+
1
+
ユーザーは対象のサイトでトラッキングを拒否している。
+
null
+
ユーザーはトラッキングに関する設定を指定していない。
+
+ +

+ +

JavaScript から Do Not Track の状態を読み取る

+ +

ユーザーの DNT 設定は {{domxref("Navigator.doNotTrack")}} プロパティを使用して JavaScript から読み取ることもできます:

+ +
navigator.doNotTrack; // "0" or "1"
+ +

仕様

+ + + + + + + + + + + + + + +
仕様ステータスコメント
{{SpecName('Tracking','#dnt-header-field', 'DNT Header Field for HTTP Requests')}}{{Spec2("Tracking")}}初期定義。
+ +

ブラウザー実装状況

+ + + +

{{Compat("http.headers.DNT")}}

+ +

関連項目

+ + 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 +--- +
{{HTTPSidebar}}{{securecontext_header}}{{SeeCompatTable}}
+ +

DPR ヘッダーは、CSS ピクセル毎に対応する物理デバイスピクセルの数であるクライアントのデバイスピクセル比 (device pixel ratio、{{Glossary("DPR")}})) を表すクライアントヒントのヘッダーです。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header","リクエストヘッダー")}}
{{Glossary("Forbidden header name","禁止ヘッダー名")}}?
+ +
+

: クライアントヒントには、安全なオリジン(TLS 経由)でのみアクセスできます。 サーバーは、{{HTTPHeader("Accept-CH")}} および {{HTTPHeader("Accept-CH-Lifetime")}} のレスポンスヘッダーを送信することによって、クライアントから DPR ヘッダーを受信することを選択する必要があります。

+
+ +

構文

+ +
DPR: <number>
+
+ +

+ +

サーバーはまず、レスポンスヘッダーとして DPR を含む {{HTTPHeader("Accept-CH")}} と {{HTTPHeader("Accept-CH-Lifetime")}} を送信することによって、DPR ヘッダーを受信するように選択する必要があります。

+ +
Accept-CH: DPR
+Accept-CH-Lifetime: 86400
+
+ +

次に、後続のリクエストでクライアントは、次のように DPR ヘッダーを送り返す場合があります。

+ +
DPR: 1.0
+
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.DPR")}}

+ +

関連情報

+ + 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 +--- +
{{SeeCompatTable}}{{HTTPSidebar}}
+ +

Early-Data ヘッダーは中間者により設定され、リクエストが TLS 早期データで伝えられたこと、そして中間者が {{HTTPStatus("425", "425 (Too Early)")}} ステータスコードを理解していることを示します。

+ +

Early-Data ヘッダーはリクエストの発信者 (つまり、ブラウザー) によって設定されることはありません。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Early-Data: 1
+
+ +

+ +
GET /resource HTTP/1.0
+Host: example.com
+Early-Data: 1
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("8470", "The Early-Data Header Field", "5.1")}}Using Early Data in HTTP
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Early-Data")}}

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 +--- +
{{HTTPSidebar}}
+ +

ETag は HTTP のレスポンスヘッダーで、リソースの特定バージョンの識別子です。ウェブサーバーは、コンテンツが変更されていない場合はレスポンス全体を再送する必要がないので、キャッシュがより効率的になり通信帯域を節約することができます。加えて、 ETag はリソースが同時に更新されて互いを上書きすること (「空中衝突」) を防ぐのに役立ちます。

+ +

指定された URL のリソースが変更された場合は、新しい Etag 値を生成する必要があります。したがって Etags はフィンガープリントに似ており、一部のサーバーでの追跡目的でも使用される可能性があります。これらを比較することで、リソースの2つの表現が同じかどうかを素早く判断できますが、トラッキングサーバーによって無限に保持されるように設定することもできます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
ETag: W/"<etag_value>"
+ETag: "<etag_value>"
+
+ +

ディレクティブ

+ +
+
W/ {{optional_inline}}
+
'W/' (大文字) は弱いバリデーターを使用することを示します。弱い ETag は生成が簡単ですが、比較にはあまり役立ちません。強力なバリデーターは比較には理想的ですが、効率的に生成するのはとても困難です。同じリソースを表現する2つの弱い Etag の値があった場合、意味的には同等ですが、バイト単位では同じではない可能性があります。すなわち、弱い ETag はバイト範囲指定のリクエストが行われたときにキャッシュされませんが、強い ETag は範囲指定のリクエストもキャッシュします。
+
"<etag_value>"
+
要求されたリソースを一意に表すエンティティタグです。これは二重引用符で囲まれた ASCII 文字列であり、 "675af34563dc-tr34"のような形です。 ETag 値が生成される方法は指定されていません。コンテンツのハッシュ、最終更新タイムスタンプのハッシュ、単なるリビジョン番号などがよく使用されます。たとえば、 MDN は Wiki 記事コンテンツのハッシュを使用しています。
+
+ +

+ +
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
+ETag: W/"0815"
+ +

空中衝突の回避

+ +

ETag と {{HTTPHeader("If-Match")}} ヘッダの助けを借りて、編集の空中衝突を検出することができます。

+ +

たとえば、 MDN を編集する場合、現在の Wiki コンテンツのハッシュが算出され、そのレスポンスで Etag に入れられます。

+ +
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
+ +

Wiki ページに変更を保存 (データの投稿) するとき、 {{HTTPMethod("POST")}} リクエストには、 {{HTTPHeader("If-Match")}} ヘッダーに ETag 値を入れて、新しいかどうかをチェックします。

+ +
If-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"
+ +

ハッシュが一致しない場合は、文書が途中で編集されたことを意味し、 {{HTTPStatus("412")}} Precondition Failed エラーが発生します。

+ +

変更されていないリソースのキャッシュ

+ +

もう一つの ETag ヘッダーの典型的な使用例として、変更されていないリソースをキャッシュすることがあります。ユーザーが (ETag が設定されている) 指定された URL を再度訪問した時、それが古くなったもの (古すぎて使用できない) であった場合、クライアントは {{HTTPHeader("If-None-Match")}} ヘッダー欄で ETag の値を送ります。

+ +
If-None-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"
+ +

サーバーは、クライアントの ETag (If-None-Match で送信されたもの) を現在のバージョンの ETag と比較し、両方の値が一致する (つまりリソースは変更されていない) 場合、サーバーは {{HTTPStatus("304")}} Not Modified ステータスを本文なしで返送し、キャッシュされたレスポンスのバージョンがまだ使用可能 (新しい) であることをクライアントに通知します。

+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7232", "ETag", "2.3")}}Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.ETag")}}

+ +

関連情報

+ + 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 +--- +

{{HTTPSidebar}}

+ +

Expect-CT ヘッダーは、サイトが認証透過性の要件の報告や強制に参加して、サイトの不正な認証情報が通知されない状態を防ぐことができます。

+ +
+

サイトが Expect-CT ヘッダーを有効にすると、ブラウザーが公開 CT ログに現れるサイトのすべての認証情報をチェックするよう要求します。

+
+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}はい
+ +

構文

+ +
Expect-CT: report-uri="<uri>",
+           enforce,
+           max-age=<age>
+ +

ディレクティブ

+ +
+
max-age
+
+

Expect-CT ヘッダーフィールドを受信した後で、ユーザーエージェントがメッセージを受信したホストを、既知の Expect-CT ホストと見なすべき時間を秒数で指定します。

+ +

キャッシュが表現可能な値よりも大きな値を受信した場合や、計算でオーバーフローが発生した場合、キャッシュは値を 2147483648 (2^31) または使用している表現方法で最も大きな整数値とみなします。

+
+
report-uri="<uri>" {{optional_inline}}
+
+

ユーザーエージェントが Expect-CT の失敗を報告する URI を指定します。

+ enforce ディレクティブと report-uri ディレクティブが両方ともある場合、設定は "enforce-and-report" の設定と呼ばれ、ユーザーエージェントに認証透過性ポリシーに従い、違反を報告することを指示します。 + +

 

+
+
enforce {{optional_inline}}
+
+

ユーザーエージェントに (報告するだけでなく) 認証透過性ポリシーに従い、ユーザーエージェントが認証透過性ポリシーに違反するコネクションを拒否するよう指示します。

+ +

enforce ディレクティブと report-uri ディレクティブが両方ともある場合、設定は "enforce-and-report" の設定と呼ばれ、ユーザーエージェントに認証透過性ポリシーに従い、違反を報告することを指示します。

+
+
+ +

+ +

以下の例は認証透過性を24時間強制し、違反を foo.example に報告することを示します。

+ +
Expect-CT: max-age=86400, enforce, report-uri="https://foo.example/report"
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
Internet DraftExpect-CT Extension for HTTP
+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.Expect-CT")}}

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 +--- +
{{HTTPSidebar}}
+ +

HTTP の Expect リクエストヘッダーは、リクエストを正しく扱うためにサーバーが実行する必要があると期待されていることを示します。

+ +

仕様書で定義されている期待は Expect: 100-continue だけで、サーバーが応答するべきことは以下の通りです。

+ + + +

例えば、サーバーは {{HTTPHeader("Content-Length")}} が長すぎるとリクエストを拒否する可能性があります。

+ +

Expect ヘッダーを送信するブラウザーはあまりありませんが、 cURL のような一部の他のクライアントは既定で送信します。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}はい
+ +

構文

+ +

現在は "100-continue" 以外の期待は定義されていません。

+ +
Expect: 100-continue
+
+ +

ディレクティブ

+ +
+
100-continue
+
クライアントがこの要求で (おそらく大規模な) メッセージ本文を送信しようとしていることを受信者に通知し、 {{HTTPStatus("100")}} (Continue) 暫定応答を受信することを期待します。
+
+ +

+ +

巨大なメッセージ本文

+ +

クライアントは Expect ヘッダーで要求を送信し、メッセージ本文を送信する前にサーバーが応答するのを待ちます。

+ +
PUT /somewhere/fun HTTP/1.1
+Host: origin.example.com
+Content-Type: video/h264
+Content-Length: 1234567890987
+Expect: 100-continue
+
+ +

サーバーはリクエストヘッダーをチェックし、 {{HTTPStatus("100")}} (Continue) 応答を返信して、クライアントにメッセージ本体を送信するよう指示するか、又は期待に沿わない場合は、 {{HTTPStatus("417")}} (Expectation Failed) 状態になります。

+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7231", "Expect", "5.1.1")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.Expect")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Expires ヘッダーには、レスポンスが古くなると見なされる日時が入ります。

+ +

値 0 のような無効な日付は過去の日付を表し、リソースがすでに有効期限切れであることを意味します。

+ +
レスポンスに max-age または s-maxage ディレクティブを持つ {{HTTPHeader("Cache-Control")}} ヘッダーがある場合、Expires ヘッダーは無視されます。
+ + + + + + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
{{Glossary("CORS-safelisted response header", "CORS セーフリストレスポンスヘッダー")}}はい
+ +

構文

+ +
Expires: <http-date>
+
+ +

ディレクティブ

+ +
+
<http-date>
+
+

HTTP-date タイムスタンプ

+
+
+ +

+ +
Expires: Wed, 21 Oct 2015 07:28:00 GMT
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7234", "Expires", "5.3")}}Hypertext Transfer Protocol (HTTP/1.1): Caching
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Expires")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}} {{SeeCompatTable}}
+ +

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

+ +

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

+ +

構文

+ +
Feature-Policy: autoplay <allowlist>;
+ +
+
<allowlist>
+
{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}既定値は 'self' です。
+
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('Feature Policy')}}{{Spec2('Feature Policy')}}初回定義
+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.Feature-Policy.autoplay")}}

+ +

関連情報

+ + 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 +--- +

{{HTTPSidebar}}{{SeeCompatTable}}

+ +

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

+ +

構文

+ +
Feature-Policy: battery <allowlist>;
+ +
+
<allowlist>
+
{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}
+
+ +

既定のポリシー

+ +

既定値は 'self' です。

+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName("Feature Policy")}}{{Spec2("Feature Policy")}}初回定義
{{SpecName("Battery API","#feature-policy-integration","Feature Policy integration")}}{{Spec2("Battery API")}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Feature-Policy.battery")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}} {{SeeCompatTable}}
+ +

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

+ +

構文

+ +
Feature-Policy: camera <allowlist>;
+ +
+
<allowlist>
+
{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}既定値は 'self' です。
+
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('Feature Policy')}}{{Spec2('Feature Policy')}}初回定義
+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.Feature-Policy.camera")}}

+ +

関連情報

+ + 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 +--- +

{{HTTPSidebar}}{{SeeCompatTable}}

+ +

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

+ +

構文

+ +
Feature-Policy: encrypted-media <allowlist>;
+ +
+
<allowlist>
+
{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}
+
+ +

既定のポリシー

+ +

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

+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName("Feature Policy")}}{{Spec2("Feature Policy")}}初回定義
{{SpecName("EME","#feature-policy-integration","Feature Policy integration")}}{{Spec2("EME")}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Feature-Policy.encrypted-media")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}} {{SeeCompatTable}}
+ +

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

+ +

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

+ +
+

このディレクティブと allowfullscreen が同じ <iframe> 要素に指定されていた場合、このディレクティブが優先します。

+
+ +

構文

+ +
Feature-Policy: fullscreen <allowlist>;
+ +
+
<allowlist>
+
{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}既定値は 'self' です。
+
+ +

+ +

一般的な例

+ +

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

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

<iframe> 要素と

+ +

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

+ +
Feature-Policy: fullscreen 'self'
+ +

それから <iframe> 要素に {{HTMLElement('iframe','allow','#Attributes')}} 属性を含めます。

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

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

+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('Feature Policy')}}{{Spec2('Feature Policy')}}初回定義
{{SpecName('Fullscreen','#feature-policy-integration','Fullscreen')}}{{Spec2('Feature Policy')}}fullscreen ポリシーを定義
+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.Feature-Policy.fullscreen")}}

+ +

See also

+ + 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 +--- +
{{HTTPSidebar}} {{SeeCompatTable}}
+ +

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

+ +

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

+ +

構文

+ +
Feature-Policy: geolocation <allowlist>;
+ +
+
<allowlist>
+
{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}既定値は 'self' です。
+
+ +

+ +

一般的な例

+ +

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

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

<iframe> 要素と

+ +

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

+ +
Feature-Policy: geolocation 'self'
+ +

それから <iframe> 要素に {{HTMLElement('iframe','allow','#Attributes')}} 属性を含めます。

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

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

+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('Feature Policy')}}{{Spec2('Feature Policy')}}初回定義
+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.Feature-Policy.geolocation")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の Feature-Policy ヘッダーは、自身のフレームおよび文書内の {{HTMLElement("iframe")}} 要素で、ブラウザーの機能を使用することを許可または拒否する仕組みを提供します。

+ +
+

このヘッダーはまだ実験的な状態であり、随時変更される可能性があります。ウェブサイトに実装する際には注意してください。現在、このヘッダーは仕様では Permissions-Policy に改名されており、この記事は最終的にはその変更を反映して更新される予定です。

+
+ +

詳しくは、機能ポリシーの記事を参照してください。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}はい
+ +

構文

+ +
Feature-Policy: <directive> <allowlist>
+ +
+
<directive>
+
allowlist に適用される機能ポリシーディレクティブです。許可されているディレクティブ名の一覧は、以下の{{anch("Directives", "ディレクティブ")}}を参照してください。
+
<allowlist>
+
{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}
+
+ +

ディレクティブ

+ +
+
{{httpheader('Feature-Policy/accelerometer','accelerometer')}}
+
現在の文書が、端末の加速度に関する情報を、 {{DOMxRef("Accelerometer")}} インターフェイスを通じて収集することを許可するかどうかを制御します。
+
{{httpheader('Feature-Policy/ambient-light-sensor','ambient-light-sensor')}}
+
現在の文書が、端末の周囲の環境における光量についての情報を、 {{DOMxRef("AmbientLightSensor")}} インターフェイスを通じて収集することを許可するかどうかを制御します。
+
{{httpheader('Feature-Policy/autoplay','autoplay')}}
+
現在の文書で {{domxref("HTMLMediaElement")}} インターフェイスがメディアの自動再生をリクエストすることを無効にするかどうかを制御します。このポリシーが有効であり、ユーザーによる操作がなかった場合、 {{domxref("HTMLMediaElement.play()")}} が返す {{jsxref("Promise")}} が {{domxref("DOMException")}} で拒否されます。 {{HTMLELement("audio")}} および {{HTMLElement("video")}} 要素の autoplay 属性は無視されます。
+
{{httpheader('Feature-Policy/battery','battery')}}
+
Battery Status API の使用を許可するかどうかを制御します。このポリシーが無効になっている場合、 {{DOMxRef("Navigator.getBattery","Navigator.getBattery()")}} が返す {{JSxRef("Promise")}} は {{Exception("NotAllowedError")}} の {{DOMxRef("DOMException")}} で拒否されます。
+
{{httpheader('Feature-Policy/camera', 'camera')}}
+
現在の文書が動画入力機器を使用することを許可するかどうかを制御します。このポリシーが無効であれば、 {{domxref("MediaDevices.getUserMedia", "getUserMedia()")}} が返す {{jsxref("Promise")}} が {{Exception("NotAllowedError")}} の {{DOMxRef("DOMException")}} で拒否されます。
+
{{HTTPHeader('Feature-Policy/display-capture', 'display-capture')}}
+
現在の文書が {{domxref("MediaDevices.getDisplayMedia", "getDisplayMedia()")}} メソッドを使用して画面の内容をキャプチャすることを許可するかどうかを制御します。このポリシーが無効であれば、表示内容をキャプチャする許可がない場合、 getDisplayMedia() から返却されるプロミスが {{Exception("NotAllowedError")}} で拒否されます。
+
{{httpheader('Feature-Policy/document-domain','document-domain')}}
+
現在の文書が {{domxref("document.domain")}} を設定することを許可するかどうかを制御します。このポリシーが無効な場合、 {{domxref("document.domain")}} を設定しようとすると失敗し、 {{Exception("SecurityError")}} の {{domxref("DOMException")}} が発生します。
+
{{httpheader('Feature-Policy/encrypted-media', 'encrypted-media')}}
+
現在の文書が Encrypted Media Extensions API (EME) を使用することを許可するかどうかを制御します。このポリシーが無効であれば、 {{domxref("Navigator.requestMediaKeySystemAccess()")}} から返却された {{jsxref("Promise")}} が {{domxref("DOMException")}} で拒否されます。
+
{{httpheader('Feature-Policy/execution-while-not-rendered', 'execution-while-not-rendered')}}
+
表示されないフレーム内 (例えば iframe が hidden または display: none の場合) でタスクを実行するかどうかを制御します。
+
{{httpheader('Feature-Policy/execution-while-out-of-viewport', 'execution-while-out-of-viewport')}}
+
ビューポートの見える範囲外にあるフレーム内のタスクを実行するかどうかを制御します。
+
+ +
+
{{httpheader('Feature-Policy/fullscreen','fullscreen')}}
+
現在の文書が {{domxref('Element.requestFullScreen()')}} を使用することを許可するかどうかを制御します。このポリシーが無効であれば、返却された {{jsxref('Promise')}} が {{jsxref('TypeError')}} で拒否されます。
+
{{httpheader('Feature-Policy/geolocation','geolocation')}}
+
現在の文書が {{domxref('Geolocation')}} インターフェイスを使用することを許可するかどうかを制御します。このポリシーが無効であれば、 {{domxref('Geolocation.getCurrentPosition','getCurrentPosition()')}} および {{domxref('Geolocation.watchPosition','watchPosition()')}} を呼び出すと、関数のコールバックが呼び出され、 {{domxref('PositionError')}} コードが PERMISSION_DENIED になります。
+
{{httpheader('Feature-Policy/gyroscope','gyroscope')}}
+
現在の文書が {{DOMxRef("Gyroscope")}} インターフェイスを通じて、端末の方向に関する情報を収集することを許可するかどうかを制御します。
+
{{httpheader('Feature-Policy/layout-animations','layout-animations')}}
+
現在の文書がレイアウトアニメーションを表示することを許可するかどうかを制御します。
+
+ +
+
{{httpheader('Feature-Policy/legacy-image-formats','legacy-image-formats')}}
+
現在の文書が古い形式の画像を表示することを許可するかどうかを制御します。
+
+ +
+
{{httpheader('Feature-Policy/magnetometer','magnetometer')}}
+
現在の文書が {{DOMxRef("Magnetometer")}} インターフェイスを通じて、端末の方向に関する情報を収集することを許可するかどうかを制御します。
+
{{httpheader('Feature-Policy/microphone','microphone')}}
+
現在の文書がオーディオ入力端末を使用することを許可するかどうかを制御します。このポリシーが無効であれば、 {{domxref("MediaDevices.getUserMedia()")}} で返却された {{jsxref('Promise')}} が {{Exception("NotAllowedError")}} で拒否されます。
+
{{httpheader('Feature-Policy/midi', 'midi')}}
+
現在の文書が Web MIDI API を使用することを許可するかどうかを制御します。このポリシーが無効であれば、 {{domxref("Navigator.requestMIDIAccess()")}} から返却された {{jsxref("Promise")}} が {{domxref("DOMException")}} で拒否されます。
+
{{httpheader('Feature-Policy/navigation-override','navigation-override')}}
+
ページ作成者が 空間ナビゲーションの動作を制御したり、完全にキャンセルしたりすることができる仕組みの利用可能性を制御します。
+
{{httpheader('Feature-Policy/oversized-images','oversized-images')}}
+
現在の文書が大きな画像をダウンロードして表示することを許可するかどうかを制御します。
+
{{httpheader('Feature-Policy/payment', 'payment')}}
+
現在の文書が Payment Request API を使用することを許可するかどうかを制御します。このポリシーが有効であれば、 {{domxref("PaymentRequest","PaymentRequest()")}} コンストラクターで {{Exception("SecurityError")}} の {{domxref("DOMException")}} が発生します。
+
{{httpheader('Feature-Policy/picture-in-picture', 'picture-in-picture')}}
+
現在の文書が、該当する API を使用して Picture-in-Picture モードで動画を再生することを許可するかどうかを制御します。
+
{{httpheader("Feature-Policy/publickey-credentials-get", "publickey-credentials-get")}}
+
現在の文書が Web Authentication API を使用して、すでに保存されている公開鍵認証情報を再取得することを許可するかどうかを制御します (例: {{domxref("CredentialsContainer.get","navigator.credentials.get({publicKey: ..., ...})")}})。
+
{{httpheader('Feature-Policy/sync-xhr', 'sync-xhr')}}
+
現在の文書が同期 {{DOMxRef("XMLHttpRequest")}} リクエストを行うことを許可するかどうかを制御します。
+
{{httpheader('Feature-Policy/usb', 'usb')}}
+
現在の文書が WebUSB API を使用することを許可するかどうかを制御します。
+
{{httpheader('Feature-Policy/vr', 'vr')}} {{deprecated_inline}}
+
現在の文書が WebVR API の使用を許可されているかどうかを制御します。このポリシーが無効になっている場合、 {{domxref("Navigator.getVRDisplays","Navigator.getVRDisplays()")}} が返す {{jsxref("Promise")}} は {{domxref("DOMException")}} で拒否されます。 WebVR 標準は WebXR に置き換えられつつあることに留意してください。
+
{{httpheader('Feature-Policy/wake-lock', 'wake-lock')}}
+
現在の文書が Wake Lock API を使用して、端末が省電力モードに入らないことを示すことを許可するかどうかを制御します。
+
{{httpheader('Feature-Policy/screen-wake-lock', 'screen-wake-lock')}}
+
現在の文書が Screen Wake Lock API を使用して、端末が画面をオフにしたり暗くしたりしてはいけないことを示すことを許可するかどうかを制御します。
+
{{httpheader("Feature-Policy/web-share", "web-share")}}
+
現在の文書が Web Share API の {{domxref("Navigator.share","Navigator.share()")}} を使用して、テキスト、リンク、画像、その他のコンテンツをモバイルアプリなどのユーザーが任意に選択した任意の場所に共有することを許可するかどうかを制御します。
+
{{httpheader("Feature-Policy/xr-spatial-tracking", "xr-spatial-tracking")}}
+
現在の文書が WebXR Device API を使用して WebXR セッションと対話することを許可するかどうかを制御します。
+
+ +

+ +

SecureCorp Inc. が、アプリケーションでマイクと Geolocation API を無効にしたがっているとします。以下の機能ポリシーを設定する HTTP レスポンスヘッダーを配信することで実現できます。

+ +
Feature-Policy: microphone 'none'; geolocation 'none'
+ +

オリジンのリストに 'none' キーワードを指定すると、指定された機能がオリジンに関係なく、すべての閲覧コンテキスト (iframe を含む) で無効になります。

+ +

仕様書

+ + + + + + + + + + + + +
仕様書
Permissions Policy
+ +

ブラウザーの互換性

+ +

{{Compat("http.headers.Feature-Policy")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}} {{SeeCompatTable}}
+ +

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

+ +

構文

+ +
Feature-Policy: microphone <allowlist>;
+ +
+
<allowlist>
+
{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}既定値は 'self' です。
+
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('Feature Policy')}}{{Spec2('Feature Policy')}}初回定義
+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.Feature-Policy.microphone")}}

+ +

関連情報

+ + 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 +--- +

{{HTTPSidebar}}{{SeeCompatTable}}

+ +

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

+ +

構文

+ +
Feature-Policy: midi <allowlist>;
+ +
+
<allowlist>
+
{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}
+
+ +

既定のポリシー

+ +

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

+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('Feature Policy')}}{{Spec2('Feature Policy')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Feature-Policy.midi")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}} {{SeeCompatTable}}
+ +

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

+ +

構文

+ +
Feature-Policy: payment <allowlist>;
+ +
+
<allowlist>
+
{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}
+
+ +

既定のポリシー

+ +

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

+ +

仕様書

+ + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('Payment')}}{{Spec2('Payment')}}See Section 16. Feature Policy integration.
{{SpecName('Feature Policy')}}{{Spec2('Feature Policy')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Feature-Policy.payment")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}} {{SeeCompatTable}}
+ +

WebVR APIWebXR Device API で置き換えられ、ウェブプラットフォームから削除されつつあるところです。代わりに WebXR Device API のための機能識別子 {{HTTPHeader("Feature-Policy/xr-spatial-tracking","xr-spatial-tracking")}} を使用してください。

+ +

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

+ +

構文

+ +
Feature-Policy: vr <allowlist>;
+ +
+
<allowlist>
+
{{page("/ja/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}
+
/dl> +

既定のポリシー

+ +

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

+ < + +

仕様書

+ + + + + + + + + + + + + + + + + + + + + +
仕様書状態備考
WebXR Device API編集者草稿この仕様書における 'xr' の定義
{{SpecName('Feature Policy')}}{{Spec2('Feature Policy')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Feature-Policy.vr")}}

+ +

関連情報

+ + +
+
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 +--- +

{{HTTPSidebar}}

+ +

この機能ポリシーディレクティブは、ある時点では xr として定義されていました (ただし Chrome では {{httpheader("Feature-Policy/vr", "vr")}} として実装されていました)。代わりに {{httpheader("Feature-Policy/xr-spatial-tracking", "xr-spatial-tracking")}} を使用してください。

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 +--- +
{{HTTPSidebar}}
+ +

Forwarded ヘッダーは、プロキシが要求のパスに含まれているときに変更または失われた、プロキシサーバーのクライアント側の情報が含まれます。

+ +

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

+ +

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

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

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

ディレクティブ

+ +
+
<identifier>
+
プロキシの使用時に変更または失われた情報を公開する識別子。これは次のいずれかです。 +
    +
  • IP アドレス (v4 又は v6、任意でポート番号付き、 ipv6 は引用符と角括弧で囲まれます)
  • +
  • 難読化された識別子 ("_hidden" や "_secret" など)
  • +
  • 又は先行するエンティティが不明な場合 (及び依然として要求の転送が行われたことを示したい場合) は "unknown"
  • +
+
+
by=<identifier>
+
要求がプロキシサーバーに入ってきたインターフェイス。
+
for=<identifier>
+
要求を発行したクライアントと、その後のプロキシチェーン内のプロキシ。
+
host=<host>
+
プロキシから受信したときの {{HTTPHeader("Host")}} リクエストヘッダー。
+
proto=<http|https>
+
+

そのプロトコルが要求の作成に使用されたか (ふつうは "http" 又は "https")。

+
+
+ +

+ +

Forwarded ヘッダーの使用

+ +
Forwarded: for="_mdn"
+
+# 大文字小文字の区別なし
+Forwarded: For="[2001:db8:cafe::17]:4711"
+
+# セミコロン区切り
+Forwarded: for=192.0.2.60; proto=http; by=203.0.113.43
+
+# 複数の値をコンマで区切って追加可能
+Forwarded: for=192.0.2.43, for=198.51.100.17
+
+ +

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

+ +

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

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

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7239", "Forwarded", "4")}}Forwarded HTTP Extension
+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.Forwarded")}}

+ +

関連情報

+ + 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 +--- +

{{HTTPSidebar}}

+ +

From リクエストヘッダーには、リクエスト元の user agent を制御する人のユーザーの Eメールアドレスが含まれています。

+ +

ロボティックユーザーエージェント (クローラなど) を使用している場合は、From ヘッダーを送信する必要があります。ロボットが過度の不要なリクエストや無効なリクエストを送信しているなど、サーバーに問題が発生した場合は連絡できます。

+ +
+

アクセス制御または認証には From ヘッダーを使用しないでください。

+
+ + + + + + + + + + + + +
ヘッダータイプ{{Glossary("Request header")}}
{{Glossary("Forbidden header name")}}いいえ
+ +

構文

+ +
From: <email>
+
+ +

ディレクティブ

+ +
+
<email>
+
マシンに使用可能な電子メールアドレス。
+
+ +

+ +
From: webmaster@example.org
+ +

仕様

+ + + + + + + + + + + + +
仕様書タイトル
{{RFC("7231", "From", "5.5.1")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
+ +

ブラウザの互換性

+ + + +

{{Compat("http.headers.From")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

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

+ +

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

+ +

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

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Host: <host>:<port>
+
+ +

ディレクティブ

+ +
+
<host>
+
(仮想ホストの)サーバーのドメイン名。
+
<port> {{optional_inline}}
+
サーバーが待受けしている TCP のポート番号。
+
+ +

+ +
Host: developer.cdn.mozilla.net
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7230", "Host", "5.4")}}Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Host")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の If-Match リクエストヘッダーは、リクエストを条件付きにします。 {{HTTPMethod("GET")}} および {{HTTPMethod("HEAD")}} メソッドの場合、リストされた ETag のいずれかと一致する場合にのみ、サーバーは要求されたリソースを返します。{{HTTPMethod("PUT")}} と他の安全ではないメソッドでは、この場合のみリソースをアップロードします。

+ +

格納された {{HTTPHeader("ETag")}} との比較では、強い比較アルゴリズムを使用、つまり二つのファイルがバイト単位で同一である場合のみ同一とみなします。列挙された ETagW/ 接頭辞がついている場合は弱いエンティティタグであることを示し、この比較アルゴリズムでの比較は行われません。

+ +

一般的な使用例は二つあります。

+ + + + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
If-Match: <etag_value>
+If-Match: <etag_value>, <etag_value>, …
+
+ +

ディレクティブ

+ +
+
<etag_value>
+
リクエストされたリソースを一意に表すエンティティタグです。二重引用符の間に置かれた ASCII 文字列 ("675af34563dc-tr34" など) です。これらのタグは「弱い」こと、つまり、意味的にはリソースを表現しているが、バイト単位の一致を示していないことを示すために、 W/ という接頭辞を付けることができます。しかし、 If-Match ヘッダーでは、弱いエンティティタグは一致することはありません。
+
*
+
アスタリスクは任意のリソースを表す特殊な値です。
+
+ +

+ +
If-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d"
+
+If-Match: "67ab43", "54ed21", "7892dd"
+
+If-Match: *
+
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7232", "If-Match", "3.1")}}Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.If-Match")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の If-Modified-Since リクエストヘッダーは、リクエストを条件付にします。サーバーは最後にリソースが変更された時刻が、リクエストにより与えられた時刻より後の場合にのみ、リクエストされたリソースを {{HTTPStatus("200")}} ステータスと共に返却します。もしリクエストにより与えられた時刻以降にリソースが変更されていなければ、レスポンスは本文を持たない {{HTTPStatus("304")}} になります。前回のリクエストの {{HTTPHeader("Last-Modified")}} レスポンスヘッダーは、最後にリソースが変更された時刻を含みます。 {{HTTPHeader("If-Unmodified-Since")}} とは異なり、 If-Modified-Since は {{HTTPMethod("GET")}} もしくは {{HTTPMethod("HEAD")}} でのみ使用できます。

+ +

本ヘッダーは {{HTTPHeader("If-None-Match")}} との組み合わせで使用された場合、サーバーが If-None-Match に対応していない場合を除き無視されます。

+ +

最も一般的な使用方法は {{HTTPHeader("ETag")}} に関連付けられていない、キャッシュされたリソースを更新するために用いることです。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
If-Modified-Since: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
+
+ +

ディレクティブ

+ +
+
<day-name>
+
"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" の中から一つ (大文字・小文字の区別あり)
+
<day>
+
2桁の日付を表す数字, 例 "04" や "23".
+
<month>
+
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" の中から一つ (大文字・小文字の区別あり)
+
<year>
+
4桁の年を表す数字, 例 "1990" や "2016"
+
<hour>
+
2桁の時間を表す数字, 例 "09" や "23"
+
<minute>
+
2桁の分を表す数字, 例 "04" や "59"
+
<second>
+
2桁の秒を表す数字, 例 "04" や "59"
+
GMT
+
+

グリニッジ標準時。 HTTP における時刻は常にグリニッジ標準時で表され、ローカル時刻になることはありません。

+
+
+ +

+ +
If-Modified-Since: Wed, 21 Oct 2015 07:28:00 GMT
+
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7232", "If-Modified-Since", "3.3")}}Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests
+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.If-Modified-Since")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の If-None-Match リクエストヘッダーは、リクエストを条件付きにします。 {{HTTPMethod("GET")}} および {{HTTPMethod("HEAD")}} メソッドの場合、指定されたものの中に要求されたリソースの {{HTTPHeader("ETag")}} に一致するものがない場合のみ、サーバーはリソースを {{HTTPStatus("200")}} ステータスで返します。その他のメソッドの場合、最終的に存在するリソースの {{HTTPHeader("ETag")}} が列挙されたいずれの値とも一致しない場合にのみ処理します。

+ +

{{HTTPMethod("GET")}} および {{HTTPMethod("HEAD")}} メソッドの場合、条件が満たされなかったら、サーバーは HTTP ステータスコード 304 (Not Modified) を返さなければなりません。サーバー側の変更を適用するメソッドの場合、ステータスコード 412 (Precondition Failed) が使用されます。なお、 304 レスポンスを生成するサーバーは、 Cache-Control, Content-Location, Date, ETag, Expires, Vary の各ヘッダーフィールドについて、同じリクエストに対して 200 (OK) レスポンスで送信されるものを生成しなければなりません。

+ +

格納されている {{HTTPHeader("ETag")}} との比較では、弱い比較アルゴリズムを使用、つまり二つのファイルの内容が同等であれば等しいとみなします。バイト単位で等しい必要はありません。たとえば、フッターの作成日が異なる二つのページは、同一と見なされます。

+ +

{{HTTPHeader("If-Modified-Since")}} と一緒に使用した場合、 If-None-Match が優先されます (サーバーが対応している場合)。

+ +

一般的な使用例は二つあります。

+ + + + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
If-None-Match: "<etag_value>"
+If-None-Match: "<etag_value>", "<etag_value>", …
+If-None-Match: *
+ +

ディレクティブ

+ +
+
<etag_value>
+
リクエストされたリソースを一意に表すエンティティタグです。二重引用符の間に置かれた ASCII 文字列 ("675af34563dc-tr34" など) であり、 W/ の接頭辞を付けると、弱い比較アルゴリズムを使用するべきであることを示すことができます (このアルゴリズムだけを使用する場合は If-None-Match では意味がありません)。
+
*
+
アスタリスクは任意のリソースを表す特殊な値です。通常 {{HTTPMethod("PUT")}} を使用するリソースのアップロードの場合、その識別子を持つ別なリソースがすでにアップロードされていることをする場合にのみ有用です。
+
+ +

+ +
If-None-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d"
+
+If-None-Match: W/"67ab43", "54ed21", "7892dd"
+
+If-None-Match: *
+
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7232", "If-None-Match", "3.2")}}Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.If-None-Match")}}

+ +

関連情報

+ + 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 +--- +

{{HTTPSidebar}}

+ +

If-Range HTTP リクエストヘッダはレンジリクエストを条件付きにします:条件が満たされれば、レンジリクエストが発行され、サーバは適切なボディを持つ {{HTTPStatus("206")}} Partial Content 回答を返します。条件が満たされていない場合、 {{HTTPStatus("200")}} の状態でリソース全体が返送されます。

+ +

このヘッダは {{HTTPHeader("Last-Modified")}} バリデータ、または {{HTTPHeader("ETag")}} のいずれかで使用できますが、両方では使用できません。

+ +

最も一般的な使用事例は、最後のフラグメントが受信されてから格納されたリソースが変更されていないことを保証するために、ダウンロードを再開することです。

+ + + + + + + + + + + + +
ヘッダータイプ{{Glossary("Request header")}}
{{Glossary("Forbidden header name")}}いいえ
+ +

構文

+ +
If-Range: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
+If-Range: <etag>
+ +

ディレクティブ

+ +
+
<etag>
+
リクエストされたリソースを表すエンティティータグです。これは "675af34563dc-tr34" のようにダブルクオートに囲まれたASCIIの文字列で、弱い比較アルゴリズムを使うことを示すために W/ がプレフィックスとしてつくことがあります。
+
+ +
+
<day-name>
+
One of "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", or "Sun" (case-sensitive).
+
<day>
+
2 digit day number, e.g. "04" or "23".
+
<month>
+
One of "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" (case sensitive).
+
<year>
+
4 digit year number, e.g. "1990" or "2016".
+
<hour>
+
2 digit hour number, e.g. "09" or "23".
+
<minute>
+
2 digit minute number, e.g. "04" or "59".
+
<second>
+
2 digit second number, e.g. "04" or "59".
+
GMT
+
+

Greenwich Mean Time. HTTP dates are always expressed in GMT, never in local time.

+
+
+ +

+ +
If-Range: Wed, 21 Oct 2015 07:28:00 GMT
+
+ +

仕様

+ + + + + + + + + + + + +
仕様書タイトル
{{RFC("7233", "If-Range", "3.2")}}Hypertext Transfer Protocol (HTTP/1.1): Range Requests
+ +

ブラウザの互換性

+ + + +

{{Compat("http.headers.If-Range")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の If-Unmodified-Since リクエストヘッダーは、リクエストを条件付きにします。サーバーはリソースが指定された日時以降に変更されていない場合のみ、要求されたリソースを返信したり、 {{HTTPMethod("POST")}} などの{{Glossary("safe", "安全")}}ではないメソッドをの場合はそれを受け付けたりします。リソースが指定された日時以降に変更されていた場合は、レスポンスは{{HTTPStatus("412")}} (Precondition Failed) エラーになります。

+ +

一般的な使用例は2つあります。

+ + + + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
If-Unmodified-Since: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
+
+ +

ディレクティブ

+ +
+
<day-name>
+
"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" の中から一つ (大文字・小文字の区別あり)
+
<day>
+
2桁の日付を表す数字, 例 "04" や "23".
+
<month>
+
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" の中から一つ (大文字・小文字の区別あり)
+
<year>
+
4桁の年を表す数字, 例 "1990" や "2016"
+
<hour>
+
2桁の時を表す数字, 例 "09" や "23"
+
<minute>
+
2桁の分を表す数字, 例 "04" や "59"
+
<second>
+
2桁の秒を表す数字, 例 "04" や "59"
+
GMT
+
+

グリニッジ標準時。 HTTP における時刻は常にグリニッジ標準時で表され、ローカル時刻になることはありません。

+
+
+ +

+ +
If-Unmodified-Since: Wed, 21 Oct 2015 07:28:00 GMT
+
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7232", "If-Unmodified-Since", "3.4")}}Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests
+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.If-Unmodified-Since")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP ヘッダーにより、クライアントやサーバーが HTTP リクエストやレスポンスで追加情報を渡すことができます。 HTTP ヘッダーは、大文字小文字を区別しないヘッダー名とそれに続くコロン (:)、 値で構成されます。値の前にある{{Glossary("Whitespace", "ホワイトスペース")}}は無視されます。

+ +

独自のヘッダーは、以前は X- 接頭辞を使用していましたが、この慣習は 2012 年 6 月に非推奨になりました。これは、 RFC 6648 で非標準のフィールドが標準になったときに発生した不便さのためです。それ以外のヘッダーは IANA レジストリ に収録されており、その基になったものは RFC 4229 です。また IANA は 新たに提案された HTTP ヘッダーのレジストリ も管理しています。

+ +

ヘッダーは、そのコンテキストに応じて分類できます。

+ + + +

またヘッダーは、{{Glossary("Proxy_server", "プロキシサーバー")}}がどのように処理するかに応じてグループ化されます。

+ + + +
+
エンドツーエンドヘッダー
+
これらのヘッダーは、メッセージの最終的な宛先、すなわちリクエストならばサーバー、レスポンスならばクライアントに伝送しなければなりません。中間のプロキシはヘッダーを変更せずに再伝送しなければならず、またキャッシュには保存しなければなりません。
+
ホップバイホップヘッダー
+
これらのヘッダーは単一のトランスポート層の接続にのみ意味を持ち、プロキシが再転送したり、キャッシュを行ったりしてはいけません。なお、 {{httpheader("Connection")}} 一般ヘッダーを用いて設定する場合があるのはホップバイホップヘッダーのみです。
+
+ +

認証

+ +
+
{{HTTPHeader("WWW-Authenticate")}}
+
リソースへアクセスに使用すべき認証方法を定義します。
+
{{HTTPHeader("Authorization")}}
+
サーバーでユーザーエージェントを認証するための資格情報を持ちます。
+
{{HTTPHeader("Proxy-Authenticate")}}
+
プロキシサーバーの背後にあるリソースへアクセスできるようにするために使用すべき認証方法を定義します。
+
{{HTTPHeader("Proxy-Authorization")}}
+
プロキシサーバーでユーザーエージェントを認証するための資格情報を持ちます。
+
+ +

キャッシュ

+ +
+
{{HTTPHeader("Age")}}
+
オブジェクトがプロキシのキャッシュに存在する時間を秒数で表します。
+
{{HTTPHeader("Cache-Control")}}
+
リクエストおよびレスポンスで、キャッシュ機能に関するディレクティブです。
+
{{HTTPHeader("Clear-Site-Data")}}
+
リクエストしているウェブサイトに関連付けられたブラウズ用のデータ (クッキー、ストレージ、キャッシュ等) を消去します。
+
{{HTTPHeader("Expires")}}
+
レスポンスが陳腐化すると考えられる日時を表します。
+
{{HTTPHeader("Pragma")}}
+
リクエストからレスポンスへの流れの中でさまざまな影響がある、実装依存のヘッダーです。 Cache-Control ヘッダーが未実装である HTTP/1.0 キャッシュとの後方互換性のために使用します。
+
{{HTTPHeader("Warning")}}
+
起こりうる問題に関する一般警告情報です。
+
+ +

クライアントヒント

+ +

HTTP {{Glossary("Client_hints", "クライアントヒント")}}は策定中です。実際の文書は HTTP 作業グループのウェブサイトにあります。

+ +
+
{{HTTPHeader("Accept-CH")}} {{experimental_inline}}
+
サーバーはクライアントヒントに対応していることを、 Accept-CH ヘッダーフィールドまたは同等の http-equiv 属性が付いた HTML の <meta> 要素を使用して広報することができます ([HTML5])。
+
{{HTTPHeader("Accept-CH-Lifetime")}} {{experimental_inline}}
+
サーバーは、指定された期間サーバーがサポートする対応する一連のクライアントヒントを記憶するようクライアントに依頼し、そのサーバーのオリジンに対するその後のリクエストでクライアントヒントを配信できるようにすることができます ([RFC6454])。
+
{{HTTPHeader("Early-Data")}} {{experimental_inline}}
+
リクエストが早期データを伝えていることを示します。
+
{{HTTPHeader("Content-DPR")}} {{experimental_inline}}
+
数値で、選択された画像レスポンスの CSS ピクセルに対する物理ピクセルの比を示します。
+
{{HTTPHeader("DPR")}} {{experimental_inline}}
+
数値で、現在のクライアントの端末ピクセル比 (DPR)、すなわち端末のレイアウトビューポート ([CSS2] のセクション9.1.1) における、 CSS ピクセルに対する物理ピクセルの比 ([CSSVAL] のセクション5.2) を示します。
+
{{HTTPHeader("Device-Memory")}} {{experimental_inline}}
+
技術的には Device Memory API の一部で、このヘッダーはクライアントが持つおよその RAM の量を表します。
+
{{HTTPHeader("Save-Data")}} {{experimental_inline}}
+
論理型で、ユーザーエージェントのデータ利用の削減についての設定を示します。
+
{{HTTPHeader("Viewport-Width")}} {{experimental_inline}}
+
+
+

Viewport-Width リクエストヘッダーフィールドは数値で、レイアウトビューポートの幅を CSS ピクセル数で示します。指定されたピクセル数は、それ以上の最小の整数に丸められます (つまり切り上げ)。

+
+ +
+

Viewport-Width がメッセージ内に二回以上現れた場合、最後の値がそれ以前のすべての値を上書きします。

+
+
+
{{HTTPHeader("Width")}} {{experimental_inline}}
+
+
+

Width リクエストヘッダーフィールドは数値で、要求するリソースの幅 (つまり画像の固有の寸法) を物理ピクセル数で示します。指定されたピクセル数は、それ以上の最小の整数に丸められます (つまり切り上げ)。

+
+ +
+

要求するリソースの幅がリクエストの時点で不明である場合や、リソースが表示幅を持たない場合は、 Width ヘッダーフィールドは省略できます。 Width がメッセージ内に二回以上現れた場合、最後の値がそれ以前のすべての値を上書きします。

+
+
+
+ +

条件付き

+ +
+
{{HTTPHeader("Last-Modified")}}
+
リソースが最後に変更された日時であり、同じリソースの複数のバージョンを比較するために使用されます。 {{HTTPHeader("ETag")}} より正確さは低いのですが、環境によっては計算が容易です。{{HTTPHeader("If-Modified-Since")}} や {{HTTPHeader("If-Unmodified-Since")}} を使用する条件付きリクエストでは、リクエストの動作を変更するためにこの値を使用します。
+
{{HTTPHeader("ETag")}}
+
一意な文字列であり、リソースのバージョンを識別します。 {{HTTPHeader("If-Match")}} や {{HTTPHeader("If-None-Match")}} を使用する条件付きリクエストでは、リクエストの動作を変更するためにこの値を使用します。
+
{{HTTPHeader("If-Match")}}
+
リクエストを条件付きにして、保存されたリソースが指定した ETag のいずれかに一致する場合に限りメソッドを適用します。
+
{{HTTPHeader("If-None-Match")}}
+
リクエストを条件付きにして、保存されたリソースが指定した ETag のいずれかに一致しない場合に限りメソッドを適用します。これはキャッシュを更新する (安全なリクエスト向け)、あるいはすでにリソースが存在する場合に新しいリソースのアップロードを止めるために使用します。
+
{{HTTPHeader("If-Modified-Since")}}
+
リクエストを条件付きにして、エンティティが指定した日時より後に変更されている場合に限り転送するようリクエストします。キャッシュが期限切れである場合に限りデータを転送するために使用します。
+
{{HTTPHeader("If-Unmodified-Since")}}
+
リクエストを条件付きにして、エンティティが指定した日時より後に変更されていない場合に限り転送するようリクエストします。これは、特定の範囲の新しい断片と古い断片の一貫性を保証する、あるいは既存の文書を変更するときに楽観的な並行性制御システムを実装するために使用します。
+
{{HTTPHeader("Vary")}}
+
新しいものを元のサーバーにリクエストするのではなく、キャッシュされたレスポンスが使用できるよう決定するために、リクエストヘッダーを一致させる方法を定めます。/dd>
+
+ +

接続制御

+ +
+
{{HTTPHeader("Connection")}}
+
現在の転送が完了した後も、ネットワークコネクションを維持するかを制御します。
+
{{HTTPHeader("Keep-Alive")}}
+
持続的なコネクションをどれだけの期間維持するかを制御します。
+
+ +

コンテンツネゴシエーション

+ +
+
{{HTTPHeader("Accept")}}
+
送り返すことができるデータの{{Glossary("MIME_type", "種類")}}をサーバーに通知します。
+
{{HTTPHeader("Accept-Charset")}}
+
どの{{Glossary("character encodings", "文字集合")}}をクライアントが理解できるかです。
+
{{HTTPHeader("Accept-Encoding")}}
+
送り返すリソースで使用できるエンコードアルゴリズム (一般的には圧縮アルゴリズム) をサーバーに通知します。
+
{{HTTPHeader("Accept-Language")}}
+
送り返すリソースで期待する自然言語をサーバーに通知します。これはヒントであり、必ずしもユーザーの完全な制御下にあるものではありません。サーバーはユーザーの選択 (ドロップダウンリストで選ぶ言語など) を明示的に上書きしないように、常に注意を払うべきです。
+
+ +

制御

+ +
+
{{HTTPHeader("Expect")}}
+
リクエストを適切に扱うためにサーバーが実行しなければならないと期待されていることを示します。
+
{{HTTPHeader("Max-Forwards")}}
+
+ +

クッキー

+ +
+
{{HTTPHeader("Cookie")}}
+
過去に {{HTTPHeader("Set-Cookie")}} ヘッダーでサーバーから送信されて保存している HTTP クッキーを持ちます。
+
{{HTTPHeader("Set-Cookie")}}
+
サーバーからユーザーエージェントにクッキーを送信します。
+
{{HTTPHeader("Cookie2")}} {{obsolete_inline}}
+
過去に {{HTTPHeader("Set-Cookie2")}} ヘッダーでサーバーから送信された HTTP クッキーを伝えるために使われていましたが、仕様書から廃止されました。代わりに {{HTTPHeader("Cookie")}} を使用してください。
+
{{HTTPHeader("Set-Cookie2")}} {{obsolete_inline}}
+
サーバーからユーザーエージェントに Cookie を送信するために使用されていましたが、仕様書から廃止されました。代わりに {{HTTPHeader("Set-Cookie")}} を使用してください。
+
+ +

オリジン間リソース共有 (CORS)

+ +

CORS についての詳細は、こちらを参照してください。

+ +
+
{{HTTPHeader("Access-Control-Allow-Origin")}}
+
レスポンスが共有可能かを示します。
+
{{HTTPHeader("Access-Control-Allow-Credentials")}}
+
credentials フラグが真であるときに、リクエストへのレスポンスを開示してよいかを示します。
+
{{HTTPHeader("Access-Control-Allow-Headers")}}
+
{{Glossary("Preflight_request", "プリフライトリクエスト")}}へのレスポンスで使用し、実際のリクエストを行うときに使用できる HTTP ヘッダーを指定します。
+
{{HTTPHeader("Access-Control-Allow-Methods")}}
+
プリフライトリクエストへのレスポンスで、リソースへアクセスするときに使用できるメソッドを指定します。
+
{{HTTPHeader("Access-Control-Expose-Headers")}}
+
ヘッダー名を羅列して、レスポンスの一部として開示できるヘッダーを示します。
+
{{HTTPHeader("Access-Control-Max-Age")}}
+
プリフライトリクエストの結果をキャッシュしてよい期間を示します。
+
{{HTTPHeader("Access-Control-Request-Headers")}}
+
実際のリクエストを行う際に使用する HTTP ヘッダーをサーバーがわかるようにするため、プリフライトリクエストを発信する際に使用します。
+
{{HTTPHeader("Access-Control-Request-Method")}}
+
実際のリクエストを行う際に使用する HTTP メソッド をサーバーがわかるようにするため、プリフライトリクエストを発信する際に使用します。
+
{{HTTPHeader("Origin")}}
+
どこから読み込みが発生したかを示します。
+
{{HTTPHeader("Timing-Allow-Origin")}}
+
Resource Timing API の機能を通じて受け取った属性の値を見ることができるオリジンを指定します。そうでなければオリジン間の制約によってゼロとして報告されます。
+
+ +

Do Not Track

+ +
+
{{HTTPHeader("DNT")}}
+
ユーザーのトラッキング設定を示します。
+
{{HTTPHeader("Tk")}}
+
対応するレスポンスのトラッキング状態を示します。
+
+ +

ダウンロード

+ +
+
{{HTTPHeader("Content-Disposition")}}
+
転送したリソースをインラインで表示すべきか (ヘッダーが存在しない場合の既定の動作)、またはダウンロードとして扱い、「名前を付けて保存」ウィンドウを表示すべきかを示します。
+
+ +

メッセージ本文の情報

+ +
+
{{HTTPHeader("Content-Length")}}
+
リソースの大きさを、バイト単位の10進数で示します。
+
{{HTTPHeader("Content-Type")}}
+
リソースのメディアタイプを示します。
+
{{HTTPHeader("Content-Encoding")}}
+
圧縮アルゴリズムを指定するために使用します。
+
{{HTTPHeader("Content-Language")}}
+
読者向けに言語を示すヘッダーであり、ユーザーが自身の好む言語に応じて区別することができます。
+
{{HTTPHeader("Content-Location")}}
+
返すデータの代替データの場所を示します。
+
+ +

プロキシ

+ +
+
{{HTTPHeader("Forwarded")}}
+
リクエストのパスにプロキシが関与したときに変更または遺失した、プロキシサーバーのクライアント側の情報を持ちます。
+
{{HTTPHeader("X-Forwarded-For")}} {{non-standard_inline}}
+
HTTP プロキシやロードバランサーを経由してウェブサーバーに接続するクライアントの、接続元 IP アドレスを識別します。
+
{{HTTPHeader("X-Forwarded-Host")}} {{non-standard_inline}}
+
プロキシやロードバランサーに接続するクライアントがリクエストした、オリジナルのホストを示します。
+
{{HTTPHeader("X-Forwarded-Proto")}} {{non-standard_inline}}
+
クライアントがプロキシやロードバランサーに接続するために使用したプロトコル (HTTP または HTTPS) を識別します。
+
{{HTTPHeader("Via")}}
+
フォワードプロキシとリバースプロキシの両方が追加するヘッダーであり、リクエストヘッダーとレスポンスヘッダーのどちらでも見られます。
+
+ +

リダイレクト

+ +
+
{{HTTPHeader("Location")}}
+
ページのリダイレクト先の URL を示します。
+
+ +

リクエストコンテキスト

+ +
+
{{HTTPHeader("From")}}
+
リクエストを行うユーザーエージェントを操作している人間の、インターネット電子メールアドレスを持ちます。
+
{{HTTPHeader("Host")}}
+
サーバーのドメイン名 (バーチャルホスト向け) およびサーバーが待ち受けている TCP ポート番号 (省略可能) を指定します。
+
{{HTTPHeader("Referer")}}
+
現在リクエストしているページへリンクしていた、前のウェブページのアドレスです。
+
{{HTTPHeader("Referrer-Policy")}}
+
{{HTTPHeader("Referer")}} ヘッダーで送信するどのリファラー情報をリクエストに含めるかを制御します。
+
{{HTTPHeader("User-Agent")}}
+
リクエストを行うユーザーエージェントソフトウェアのアプリケーションタイプ、オペレーティングシステム、ベンダー、バージョンを、ネットワークプロトコルのピアが識別できるようにする文字列を持ちます。 Firefox ユーザーエージェント文字列リファレンスもご覧ください。
+
+ +

レスポンスコンテキスト

+ +
+
{{HTTPHeader("Allow")}}
+
リソースがサポートする HTTP リクエストメソッドを示します。
+
{{HTTPHeader("Server")}}
+
リクエストを扱うサーバーが使用するソフトウェアの情報を持ちます。
+
+ +

範囲付きリクエスト

+ +
+
{{HTTPHeader("Accept-Ranges")}}
+
サーバーが範囲付きリクエストに対応するかどうか、対応していれば対応する場合は、範囲を表すことができる単位を示します。
+
{{HTTPHeader("Range")}}
+
サーバーが返すべきである文書の範囲を示します。
+
{{HTTPHeader("If-Range")}}
+
指定した ETag または日時がリモートのリソースにマッチする場合に限定した、条件付き range request を生成します。異なるバージョンのリソースから 2 つの範囲をダウンロードすることを防ぎます。
+
{{HTTPHeader("Content-Range")}}
+
部分的なメッセージが、メッセージ本文全体のどこに位置するかを示します。
+
+ +

セキュリティ

+ +
+
{{HTTPHeader("Cross-Origin-Embedder-Policy")}} ({{Glossary("COEP")}})
+
サーバーが指定された文書の埋め込み方針を宣言するために使います。
+
+ +
+
{{HTTPHeader("Cross-Origin-Opener-Policy")}} ({{Glossary("COOP")}})
+
他のドメインがウィンドウを開いたり制御したりすることを防ぎます。
+
+ +
+
{{HTTPHeader("Cross-Origin-Resource-Policy")}} ({{Glossary("CORP")}})
+
このヘッダーが適用されたリソースのレスポンスが他のドメインから読み取られるのを防ぎます。
+
{{HTTPHeader("Content-Security-Policy")}} ({{Glossary("CSP")}})
+
ユーザーエージェントがページで読み込むことを許可するリソースを制御します。
+
{{HTTPHeader("Content-Security-Policy-Report-Only")}}
+
ウェブの開発者がポリシーの効果を適用せずに監視することで、実験を行うことができます。これらの違反レポートは、 HTTP POST リクエストによって指定した URI へ送信される {{Glossary("JSON")}} 文書で構成されます。
+
{{HTTPHeader("Expect-CT")}}
+
サイトが証明書の透明性要件の報告や実施を選択できるようにします。これにより、そのサイトで不正な証明書の使用に気づかないことを防ぎます。サイトが Expect-CT ヘッダーを有効にした場合、そのサイトの証明書が公開CTログに表示されることを Chrome が確認するようにリクエストしています。
+
{{HTTPHeader("Feature-Policy")}}
+
自身のフレームまたはその中の iframe で、ブラウザーの機能を使用することを許可または拒否する仕組みを提供します。
+
{{HTTPHeader("Strict-Transport-Security")}} ({{Glossary("HSTS")}})
+
HTTP の代わりに HTTPS による通信を強制します。
+
{{HTTPHeader("Upgrade-Insecure-Requests")}}
+
暗号化や認証されたレスポンスについて、クライアントの設定を表す信号をサーバーに送信して、{{CSP("upgrade-insecure-requests")}} ディレクティブを正しく扱うことができます。
+
{{HTTPHeader("X-Content-Type-Options")}}
+
ブラウザーで MIME スニッフィングを無効化して、{{HTTPHeader("Content-Type")}} で指定したタイプを強制的に使用させます。
+
{{HTTPHeader("X-Download-Options")}}
+
HTTP の X-Download-Options ヘッダーは、ブラウザー (Internet Explorer) がアプリケーションからのダウンロードでファイルを「開く」の選択肢を表示しないようにし、アプリケーションのコンテキストで実行するアクセス権を得ることがないようにして、ファイルとすることでフィッシング詐欺を防止します。 (メモ: MS Edge bug に関連)
+
{{HTTPHeader("X-Frame-Options")}} (XFO)
+
ブラウザーがページを {{HTMLElement("frame")}}, {{HTMLElement("iframe")}}, {{HTMLElement("embed")}}, {{HTMLElement("object")}} の内部に表示することを許可するかを示します。
+
{{HTTPHeader("X-Permitted-Cross-Domain-Policies")}}
+
クロスドメインポリシーファイル (crossdomain.xml) を許可するかどうかを指定します。このファイルは、 Adobe の Flash Player、Adobe Acrobat、Microsoft Silverlight、Apache Flex などのクライアントに、同一ドメインポリシーによって制限されているドメイン間のデータを処理する許可を与えるポリシーを定義することができます。詳細については、 Cross-domain Policy File Specification を参照してください。
+
{{HTTPHeader("X-Powered-By")}}
+
ホスティング環境やその他のフレームワークによって設定される可能性があり、アプリケーションや訪問者に有益ではない情報を含みます。潜在的な脆弱性が発現することを防ぐために、このヘッダーは設定しないでください。
+
{{HTTPHeader("X-XSS-Protection")}}
+
クロスサイトスクリプティングのフィルタリングを有効化します。
+
+ +

HTTP Public Key Pinning ({{Glossary("HPKP")}})

+ +

HTTP Public Key Pinning は非推奨となり、削除されて Certificate Transparency と {{HTTPHeader("Expect-CT")}} に置き換えられました。

+ +
+
{{HTTPHeader("Public-Key-Pins")}}
+
偽造した証明書による {{Glossary("MITM")}} 攻撃の危険性を軽減するため、特定の暗号公開鍵とウェブサーバーを関連付けます。
+
{{HTTPHeader("Public-Key-Pins-Report-Only")}}
+
ピンニングに違反する場合でも、ヘッダーで指定した report-uri にレポートを送信して、クライアントからサーバーへの接続は許可します。
+
+ +

メタデータ読み取りリクエストヘッダー

+ +
+
{{HTTPHeader("Sec-Fetch-Site")}}
+
リクエスト開始元のオリジンと宛先のオリジンとの関係を示すリクエストヘッダーです。これは構造化ヘッダーで、値はトークンであり、取りうる値は cross-site, same-origin, same-site, none です。
+
{{HTTPHeader("Sec-Fetch-Mode")}}
+
サーバーへのリクエストモードを示すリクエストヘッダーです。これは構造化ヘッダーで、値はトークンであり、取りうる値は cors, navigate, nested-navigate, no-cors, same-origin, websocket です。
+
{{HTTPHeader("Sec-Fetch-User")}}
+
ナビゲーションリクエストがユーザー操作によって起動されたかどうかを示すリクエストヘッダーです。これは構造化ヘッダーであり、論理値で、取りうる値は ?0 ならば偽、 ?1 ならば真です。
+
{{HTTPHeader("Sec-Fetch-Dest")}}
+
リクエストの宛先を示すリクエストヘッダーです。これは構造化ヘッダーで、値はトークンであり、取りうる値は audio, audioworklet, document, embed, empty, font, image, manifest, object, paintworklet, report, script, serviceworker, sharedworker, style, track, video, worker, xslt, nested-document です。
+
+ +

Server-sent event

+ +
+
{{HTTPHeader("Last-Event-ID")}}
+
...
+
{{HTTPHeader("NEL")}} {{experimental_inline}}
+
開発者がネットワークエラー報告ポリシーを宣言できるようにする仕組みを定義します。
+
{{HTTPHeader("Ping-From")}}
+
...
+
{{HTTPHeader("Ping-To")}}
+
...
+
{{HTTPHeader("Report-To")}}
+
警告やエラーを送信るためのブラウザーに対するサーバーのエンドポイントを指定するために使用します。
+
+ +

転送エンコーディング

+ +
+
{{HTTPHeader("Transfer-Encoding")}}
+
エンティティをユーザーへ問題なく転送できるエンコード形式を指定します。
+
{{HTTPHeader("TE")}}
+
ユーザーエージェントが進んで受け入れる転送エンコーディングを指定します。
+
{{HTTPHeader("Trailer")}}
+
送信者が chunk メッセージの終端に追加フィールドを含めることができます。
+
+ +

WebSocket

+ +
+
{{HTTPHeader("Sec-WebSocket-Key")}}
+
...
+
{{HTTPHeader("Sec-WebSocket-Extensions")}}
+
...
+
{{HTTPHeader("Sec-WebSocket-Accept")}}
+
...
+
{{HTTPHeader("Sec-WebSocket-Protocol")}}
+
...
+
{{HTTPHeader("Sec-WebSocket-Version")}}
+
...
+
+ +

その他

+ +
+
{{HTTPHeader("Accept-Push-Policy")}} {{experimental_inline}}
+
クライアントはリクエストに対して求めるプッシュポリシーを、リクエスト内で Accept-Push-Policy ヘッダーフィールドを送信することで表現することができます。
+
{{HTTPHeader("Accept-Signature")}} {{experimental_inline}}
+
クライアントは Accept-Signature ヘッダーフィールドを送信して、利用可能な署名を利用する意図を示したり、対応している署名の種類を示したりすることができます。
+
{{HTTPHeader("Alt-Svc")}}
+
このサービスにたどり着く他の方法のリストに使用します。
+
{{HTTPHeader("Date")}}
+
メッセージを生成した日時です。
+
{{HTTPHeader("Large-Allocation")}}
+
読み込み中のページは大量の割り当てが必要であることをブラウザーに伝えます。
+
{{HTTPHeader("Link")}}
+
Link エンティティヘッダーフィールドは、 HTTP ヘッダー内の1つ以上のリンクを記述する方法を提供します。意味的には HTML の {{HTMLElement("link")}} 要素と等価です。
+
{{HTTPHeader("Push-Policy")}} {{experimental_inline}}
+
Push-Policy はリクエストを処理するときのプッシュ通知に関するサーバーの動作を定義します。
+
{{HTTPHeader("Retry-After")}}
+
後続のリクエストを行う前に、ユーザーエージェントがどれだけの期間待つべきかを示します。
+
{{HTTPHeader("Signature")}} {{experimental_inline}}
+
Signature ヘッダーフィールドは、交換のための署名のリストを伝え、それぞれはその署名の権威を決定して、そして更新する方法についての情報を伴います。
+
{{HTTPHeader("Signed-Headers")}} {{experimental_inline}}
+
Signed-Headers ヘッダーフィールドは、シグネチャに含めるためのレスポンスヘッダーフィールドの順序付きリストを識別します。
+
{{HTTPHeader("Server-Timing")}}
+
指定されたリクエストとレスポンスのサイクルについて、1つ以上のメトリクス又は説明を通信します。
+
{{HTTPHeader("Service-Worker-Allowed")}}
+
サービスワーカースクリプトのレスポンスにこのヘッダを含めることで、パス制限を解除するために使用します。
+
{{HTTPHeader("SourceMap")}}
+
生成されたコードと ソースマップ を関連付けます。
+
{{HTTPHeader("Upgrade")}}
+
Upgrade ヘッダーフィールドに関連する RFC 文書は RFC 7230, section 6.7 です。標準仕様では、現在のクライアント、サーバー、トランスポート層プロトコル接続で別のプロトコルへ更新または変更するための規則を定めています。例えば、このヘッダー標準ではサーバーが Upgrade ヘッダーフィールドを認めて実装すると決める前提で、クライアントが HTTP 1.1 から HTTP 2.0 へ変更することを可能にします。どちらの相手も、 Upgrade ヘッダーフィールドで指定された要件を受け入れる必要はありません。これはクライアントのヘッダーでもサーバーのヘッダーでも使用できます。Upgrade ヘッダーフィールドを指定した場合は、更新オプションを指ヘッダーonnection ヘッダーフィールドも送信者が送信しなければなりません。Connection ヘッダーフィールドについて、詳しくは 前述の RFC のセクション 6.1 をご覧ください。
+
{{HTTPHeader("X-DNS-Prefetch-Control")}}
+
ユーザーがたどるであろうリンクや、ドキュメントが参照する画像、 CSS、 JavaScript などのリソースのドメイン名解決をブラウザーが事前に行う機能である、 DNS プリフェッチを制御します。
+
{{HTTPHeader("X-Firefox-Spdy")}} {{deprecated_inline}} {{non-standard_inline}}
+
...
+
{{HTTPHeader("X-Pingback")}} {{non-standard_inline}}
+
...
+
{{HTTPHeader("X-Requested-With")}}
+
...
+
{{HTTPHeader("X-Robots-Tag")}}{{non-standard_inline}}
+
X-Robots-Tag ヘッダーは、一般の検索エンジンの結果でウェブページをどのように索引付けをするかを示します。このヘッダーは <meta name="robots" content="..."> と等価です。
+
{{HTTPHeader("X-UA-Compatible")}} {{non-standard_inline}}
+
使用する文書モードを示すために Internet Explorer で使用されています。
+
+ +

協力

+ +

新しい項目を書いたり、既存のものを改善したりすることにご協力ください。

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

{{Index("/ja/docs/Web/HTTP/Headers")}}

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 +--- +
{{HTTPSidebar}}
+ +

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

+ +
+

このヘッダーが意味を持つためには、 {{HTTPHeader("Connection")}} ヘッダーを "keep-alive" に設定する必要があります。

+
+ +
+

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

+
+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("General header", "一般ヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}はい
+ +

構文

+ +
Keep-Alive: parameters
+ +

ディレクティブ

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

+ +

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

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

仕様書

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

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Keep-Alive")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の Last-Modified レスポンスヘッダーは、リソースが最後に変更されたとオリジンのサーバーが判断している日時を含みます。これは受信または保存されたリソースが、同じものであるかを判断する検証材料として使用されます。 {{HTTPHeader("ETag")}} ヘッダーよりも精度は低く、その代替手段になります。 {{HTTPHeader("If-Modified-Since")}} や {{HTTPHeader("If-Unmodified-Since")}} ヘッダーを含む条件付きリクエストはこのフィールドを使用します。

+ + + + + + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
{{Glossary("CORS-safelisted response header", "CORS セーフリストレスポンスヘッダー")}}はい
+ +

構文

+ +
Last-Modified: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
+
+ +

ディレクティブ

+ +
+
<day-name>
+
"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" の中から一つ (大文字・小文字の区別あり)
+
<day>
+
2桁の日付を表す数字, 例 "04" や "23".
+
<month>
+
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" の中から一つ (大文字・小文字の区別あり)
+
<year>
+
4桁の年を表す数字, 例 "1990" や "2016"
+
<hour>
+
2桁の時を表す数字, 例 "09" や "23"
+
<minute>
+
2桁の分を表す数字, 例 "04" や "59"
+
<second>
+
2桁の秒を表す数字, 例 "04" や "59"
+
GMT
+
+

グリニッジ標準時。 HTTP における時刻は常にグリニッジ標準時で表され、ローカル時刻になることはありません。

+
+
+ +

+ +
Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT
+
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7232", "Last-Modified", "2.2")}}Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Last-Modified")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

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

+ +

Syntax

+ +
Link: < uri-reference >; param1=value1; param2="value2"
+ +
+
<uri-reference>
+
URI 参照。 <> で囲む必要があります。
+
+ +

Parameters

+ +

リンクヘッダーには ; で区切られたパラメーターが含まれており、 {{HTMLElement("link")}} 要素の属性に相当します。

+ +

+ +

URI は <> で囲む必要があります。

+ +
Link: <https://example.com>; rel="preconnect"
+ +
Link: https://bad.example; rel="preconnect"
+ + + +

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

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

仕様書

+ + + + + + + + + + + + + + + + + + + + + +
仕様書題名備考
{{RFC(8288, "Link Serialisation in HTTP Headers", 3)}}IETF RFC
{{RFC(5988, "The Link Header Field", 5)}}IETF RFC初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Link")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Location レスポンスヘッダーはリダイレクト先の URL を示します。 3xx (リダイレクト) または {{HTTPStatus("201")}} (created) ステータスレスポンスを返すときのみ意味を成します。

+ +

リダイレクトの場合、 HTTP メソッドは元のメソッドとリダイレクトの種類によって、 Location で示されたページにアクセスする新しいリクエストを生成するために使用します。

+ + + +

これらのステータスコードを持つすべてのレスポンスは、 Location ヘッダーを送信します。

+ +

リソース作成 (created) では、新しく作成されたリソースへの URL を示します。

+ +

Location と {{HTTPHeader("Content-Location")}} は異なります。 Location ヘッダーは、リダイレクトの対象 (または新しく作成されたリソースの URL) を示し、 {{HTTPHeader("Content-Location")}} ヘッダーはコンテンツネゴシエーションが起きたとき、更なるコンテンツネゴシエーションが起きないように、リソースへアクセスできる直接的なURLを指します。 Location はレスポンスに関連付くヘッダーで、 {{HTTPHeader("Content-Location")}} は返されるエンティティに関連付けられます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Location: <url>
+
+ +

ディレクティブ

+ +
+
<url>
+
(リクエスト URL からの) 相対 URL、または絶対 URL。
+
+ +

+ +
Location: /index.html
+ +

仕様書

+ + + + + + + + + + + + +
仕様書題名
{{RFC("7231", "Location", "7.1.2")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.Location")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の NEL レスポンスヘッダーは、ネットワークリクエストログ記録を構成するために使用されます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
NEL: { "report_to": "name_of_reporting_group", "max_age": 12345, "include_subdomains": false, "success_fraction": 0.0, "failure_fraction": 1.0 }
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
Network Error Logging
+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Origin リクエストヘッダーは、どこがフェッチの原点であるかを示します。パス情報は含まれず、サーバー名のみが含まれます。これは、 {{Glossary("CORS")}} リクエストと、同様に {{HTTPMethod("POST")}} リクエストでも送信されます。 {{HTTPHeader("Referer")}} ヘッダーと似ていますが、パス全体が公開されるわけではない点が異なります。

+ +
+

メモ: {{httpheader("Origin")}} ヘッダーは Fetch リクエストを {{HTTPMethod("HEAD")}} または {{HTTPMethod("GET")}} メソッドで行った場合には設定されません (この挙動は Firefox 65 で修正されました。 — {{bug(1508661)}} を参照してください)。

+
+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}はい
+ +

構文

+ +
Origin: null
+Origin: <scheme> "://" <hostname> [ ":" <port> ]
+
+ +

ディレクティブ

+ +
+
<scheme>
+
使用されるプロトコル。 通常、 HTTP プロトコルまたはそのセキュアバージョンである HTTPS です。
+
<hostname>
+
サーバーのドメイン名 (仮想ホスティングの場合) または IP アドレス。
+
<port> {{optional_inline}}
+
サーバーが待ち受けしている TCP ポート番号。ポート番号が指定されていない場合、リクエストされたサービスの既定のポート番号 (HTTP URL の場合は "80" など) が暗黙的に指定されます。
+
+ +

+ +
Origin: https://developer.mozilla.org
+ +

仕様書

+ + + + + + + + + + + + + + + + + + +
仕様書題名
{{RFC("6454", "Origin", "7")}}The Web Origin Concept
{{SpecName('Fetch','#origin-header','Origin header')}}Supplants the Origin header as defined in RFC6454.
+ +

ブラウザーの互換性

+ + + +
{{Compat("http.headers.Origin")}}
+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Pragma は HTTP/1.0 の一般ヘッダーで、実装固有のヘッダーであり、リクエスト - レスポンスチェーンに沿ってさまざまな影響を与えます。 Cache-Control HTTP/1.1 ヘッダーがまだ存在しない HTTP/1.0 キャッシュとの下位互換性のために使用されます。

+ +
+

メモ: Pragma は HTTP レスポンスには指定されていないため、リクエストの Cache-Control ヘッダーフィールドが省略されている場合は Cache-Control: no-cache と同じように動作しますが、一般的な HTTP/1.1 Cache-Control ヘッダーの代わりに信頼できるものではありません。Pragma は HTTP/1.0 クライアントとの下位互換性のためにのみ使用してください。

+
+ + + + + + + + + + + + + + + + +
ヘッダー種別{{Glossary("General header", "一般ヘッダー")}}, ただしレスポンスの振る舞いは指定されていないため、実装固有です。
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
{{Glossary("CORS-safelisted response header", "CORS セーフリストレスポンスヘッダー")}}はい
+ +

構文

+ +
Pragma: no-cache
+
+ +

ディレクティブ

+ +
+
no-cache
+
+

Cache-Control: no-cache と同じです。キャッシュされたコピーを解放する前に、キャッシュが検証のためにオリジンサーバーにリクエストを送信するようにします。

+
+
+ +

+ +
Pragma: no-cache
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7234", "Pragma", "5.4")}}Hypertext Transfer Protocol (HTTP/1.1): Caching
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Pragma")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP Proxy-Authenticate レスポンスヘッダーは、{{Glossary("proxy server", "プロキシサーバー")}}の背後にあるリソースへのアクセスに使用される認証メソッドを定義します。プロキシサーバーへのリクエストを認証し、プロキシサーバーがリクエストをさらに送信できるようにします。

+ +

Proxy-Authenticate ヘッダーは、 {{HTTPStatus("407")}} Proxy Authentication Required とともに送信されます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Proxy-Authenticate: <type> realm=<realm>
+
+ +

ディレクティブ

+ +
+
<type>
+
認証タイプ。 一般的なタイプは "Basic" です。 IANA は認証スキームのリストを管理しています。
+
realm=<realm>
+
保護された領域、つまり realm の詳細。 realm が指定されていない場合、クライアントはふつう代わりに整形されたホスト名を表示します。
+
+ +

+ +
Proxy-Authenticate: Basic
+
+Proxy-Authenticate: Basic realm="Access to the internal site"
+
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書題名
{{RFC("7235", "Proxy-Authenticate", "4.3")}}HTTP/1.1: Authentication
{{RFC("7617")}}The 'Basic' HTTP Authentication Scheme
+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.Proxy-Authenticate")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP Proxy-Authorization リクエストヘッダーは、プロキシサーバーに対してユーザーエージェントを認証するための認証情報を保持し、ふつうはサーバーが {{HTTPStatus("407")}} Proxy Authentication Required ステータスと {{HTTPHeader("Proxy-Authenticate")}} ヘッダーを返した後に使われます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header","リクエストヘッダー")}}
{{Glossary("Forbidden header name","禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Proxy-Authorization: <type> <credentials>
+ +

ディレクティブ

+ +
+
<type>
+
認証の種類。一般的には "Basic" です。認証方法の IANA レジストリも参照してください。
+
<credentials>
+
"Basic" 認証方式を使用している場合、認証情報は次のように構築されます。 +
    +
  • コロンで結合したユーザー名とパスワード (aladdin:opensesame)。
  • +
  • 結果の文字列は Base64 でエンコードされます (YWxhZGRpbjpvcGVuc2VzYW1l)。
  • +
+ +
+

メモ: Base64 エンコードは暗号化でもハッシュでもありません。この方法の安全性はクリアテキストで認証情報を送るのと同等です (Base64 は可逆エンコーディングです)。 Basic 認証は HTTPS との組み合わせで使用することをお勧めします。

+
+
+
+ +

+ +
Proxy-Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
+
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書題名
{{RFC("7235", "Proxy-Authorization", "4.4")}}HTTP/1.1: Authentication
{{RFC("7617")}}The 'Basic' HTTP Authentication Scheme
+ +

関連情報

+ + 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 +--- +

{{HTTPSidebar}}

+ +

Range は HTTP のリクエストヘッダーで、サーバーが返すべき文書の部分を示します。1 つの Range ヘッダーで複数の部分を一度にリクエストすることができ、サーバーはこれらの範囲をマルチパートの文書で返すことができます。サーバーが範囲を送り返す場合、サーバーはレスポンスに {{HTTPStatus("206")}} Partial Content を使用します。範囲が無効な場合、サーバは {{HTTPStatus("416")}} Range Not Satisfiable エラーを返します。サーバーは Range ヘッダ-を無視して、文書全体を {{HTTPStatus("200")}} のステータスコードで返すこともできます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
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>
+ +

ディレクティブ

+ +
+
<unit>
+
範囲を指定する単位です。これはふつう bytes です。
+
+ +
+
<range-start>
+
整数値で、リクエストする範囲の先頭を指定した単位で示します。
+
<range-end>
+
整数値で、リクエストする範囲の末尾を指定した単位で示します。この値は省略可能で、省略時は文書の末尾が範囲の末尾として扱われます。
+
<suffix-length>
+
整数値で、返す長さを位でファイルの末尾からの個数を示します。
+
+ +

+ +

ファイルから3つの範囲をリクエストします。

+ +
Range: bytes=200-1000, 2000-6576, 19000-
+
+ +

ファイルの先頭の500バイトと末尾の500バイトをリクエストします。範囲が重複した場合はサーバーがリクエストを拒否することがあります。

+ +
Range: bytes=0-499, -500
+
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書状態
{{RFC("7233", "Range", "3.1")}}Hypertext Transfer Protocol (HTTP/1.1): Range Requests
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Range")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Referer リクエストヘッダーには、現在リクエストされているページへのリンク先を持った直前のウェブページのアドレスが含まれています。 Referer ヘッダーにより、サーバーは人々がどこから訪問しに来たかを識別し、分析、ログ、キャッシュの最適化などに利用することができます。

+ +
+

重要: このヘッダーには無害な用途が多数ありますが、ユーザーのセキュリティとプライバシーに望ましくない結果をもたらす可能性もあります。 詳細情報と緩和策については Referer header: privacy and security concerns を参照してください。

+
+ +

なお、 referer は実際には "referrer" という単語のスペルミスです。詳しくは {{interwiki("wikipedia", "HTTPリファラ", "Wikipedia の HTTP リファラ")}}を参照してください。

+ +

次のような場合は、ブラウザーは Referer ヘッダーを送信しません。

+ + + + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}はい
+ +

構文

+ +
Referer: <url>
+
+ +

ディレクティブ

+ +
+
<url>
+
現在リクエスト中のページにつながるリンクがある直前のページの、絶対または相対アドレスです。 URL フラグメント (つまり "#section") およびユーザー情報 ("https://username:password@example.com/foo/bar/" の "username:password" の部分) は含まれません。
+
+ +

+ +
Referer: https://developer.mozilla.org/en-US/docs/Web/JavaScript
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7231", "Referer", "5.5.2")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Referer")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の Referrer-Policy {{glossary("HTTP header", "ヘッダー")}}は、 ({{HTTPHeader("Referer")}} ヘッダーによって送られる) リファラー情報をリクエストにどれだけ含めるかを制御します。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
+

元のヘッダー名である {{HTTPHeader("Referer")}} は "referrer" という語のスペルミスです。 Referrer-Policy ヘッダーはこのスペルミスをしていません。

+
+ +
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
+
+ +

ディレクティブ

+ +
+
no-referrer
+
{{HTTPHeader("Referer")}} ヘッダー全体が省略されます。リクエストとともにリファラー情報が送られることはありません。
+
no-referrer-when-downgrade (既定値)
+
これはポリシーが指定されていない場合や、与えられた値が無効であった場合の既定の動作です。プロトコルのセキュリティ水準が同一である場合 (HTTP→HTTP, HTTPS→HTTPS) または改善される場合 (HTTP→HTTPS) は、 URL の{{glossary("origin", "オリジン")}}、{{glossary("path", "パス")}}、{{glossary("querystring", "クエリ文字列")}}がリファラーとして送信されますが、低下する場合 (HTTPS→HTTP) は、リファラーは送信されません。 +
ブラウザーはより厳格な既定値、すなわち strict-origin-when-cross-origin (https://github.com/whatwg/fetch/pull/952 を参照) に移行するよう取り組んでいますが、 Referrerer-Policy を変更する際には、可能であればこの値 (またはより厳格な値) を使用することを検討してください。
+
+
origin
+
文書の{{glossary("origin", "オリジン")}}のみがリファラーとして送信されます。
+ たとえば、 https://example.com/page.html にある文書からは、 https://example.com/ というリファラーが送信されます。
+
origin-when-cross-origin
+
{{glossary("Same-origin_policy", "同一オリジン")}}間でリクエストを行う場合はオリジン、パス、クエリ文字列を送信しますが、その他の場合は文書のオリジンのみを送信します。
+
same-origin
+
同じオリジンにはリファラーが送信されますが、オリジン間リクエストではリファラー情報が送信されません。
+
strict-origin
+
プロトコルのセキュリティ水準が同じである場合 (HTTPS→HTTPS) にのみ、文書のオリジンをリファラーとして送信しますが、安全性の劣る移動先 (HTTPS→HTTP) には送信しません。
+
strict-origin-when-cross-origin
+
同じオリジン間でリクエストを行う際はオリジン、パス、クエリ文字列を送信し、オリジン間リクエストを行う際にプロトコルのセキュリティレベルが同じ場合 (HTTPS→HTTPS) はオリジンを送信し、安全性の劣る送信先 (HTTPS→HTTP) にはヘッダーを送信しません。
+
unsafe-url
+
セキュリティに関係なく、どのリクエストを行った場合でも、オリジン、パス、クエリ文字列を送信します。 +
+

このポリシーは、 HTTPS リソースの URL から安全ではないオリジンへプライベートである可能性がある情報を漏洩します。設定する場合は影響をよく検討してください。

+
+
+
+ +

HTML との統合

+ +

HTML 内でリファラーポリシーを設定することもできます。例えば、 {{HTMLElement("meta")}} 要素で namereferrer を設定することで、文書全体のリファラーポリシーを設定することができます。

+ +
<meta name="referrer" content="origin">
+ +

また、 {{HTMLElement("a")}}, {{HTMLElement("area")}}, {{HTMLElement("img")}}, {{HTMLElement("iframe")}}, {{HTMLElement("script")}}, {{HTMLElement("link")}} の各要素の referrerpolicy 属性によって、個別のリクエストに設定することもできます。

+ +
<a href="http://example.com" referrerpolicy="origin">
+ +

他に、 noreferrer link 関係a, area, link の各要素に設定することもできます。

+ +
<a href="http://example.com" rel="noreferrer">
+ +

CSS との統合

+ +

CSS はスタイルシートから参照されるリソースにアクセスすることがあります。これらのリソースは同様にリファラーポリシーに従います。

+ + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ポリシー文書移動先リファラー
no-referrerhttps://example.com/pageどこへでも(リファラーなし)
no-referrer-when-downgradehttps://example.com/pagehttps://example.com/otherpagehttps://example.com/page
https://mozilla.orghttps://example.com/page
http://example.org(リファラーなし)
originhttps://example.com/pageどこへでもhttps://example.com/
origin-when-cross-originhttps://example.com/pagehttps://example.com/otherpagehttps://example.com/page
https://mozilla.orghttps://example.com/
http://example.com/pagehttps://example.com/
same-originhttps://example.com/pagehttps://example.com/otherpagehttps://example.com/page
https://mozilla.org(リファラーなし)
strict-originhttps://example.com/pagehttps://mozilla.orghttps://example.com/
http://example.org(リファラーなし)
http://example.com/pageどこへでもhttp://example.com/
strict-origin-when-cross-originhttps://example.com/pagehttps://example.com/otherpagehttps://example.com/page
https://mozilla.orghttps://example.com/
http://example.org(リファラーなし)
unsafe-urlhttps://example.com/page?q=123どこへでもhttps://example.com/page?q=123
+ +

代替ポリシーの指定

+ +

必要なポリシーのブラウザーの対応状況が十分ではなく、代替ポリシーを設定したい場合は、カンマ区切りのリストを使用し、必要なポリシーを最後に指定してください。

+ +
Referrer-Policy: no-referrer, strict-origin-when-cross-origin
+ +

上記のシナリオでは、 no-referrer はブラウザーが strict-origin-when-cross-origin に対応していない場合のみ使用されます。

+ +

複数の値を設定する方法は、 HTTP の Referrer-Policy ヘッダーのみが対応しており、 referrerpolicy 属性では対応していません。

+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書状態
Referrer Policy 編集者草稿
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Referrer-Policy")}}

+ +
+ + +

指定可能な値は以下の通りです。

+ + +
+ +

関連情報

+ + 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 +--- +

{{HTTPSidebar}}

+ +

Retry-After レスポンス HTTP ヘッダーは、ユーザーエージェントがフォローアップリクエストを行う前にどれくらい待つべきかを示します。このヘッダーが使用される主なケースは3つあります。

+ + + + + + + + + + + + + + +
ヘッダータイプ{{Glossary("Response header")}}
{{Glossary("Forbidden header name")}}いいえ
+ +

構文

+ +
Retry-After: <http-date>
+Retry-After: <delay-seconds>
+
+ +

ディレクティブ

+ +
+
<http-date>
+
再試行する日付。HTTP の日付形式の詳細については {{HTTPHeader("Date")}} ヘッダーを参照してください。
+
<delay-seconds>
+
レスポンスを受信してから遅延する秒数を示す負でない10進数の整数。
+
+ +

+ +

スケジュールされたダウンタイムの処理

+ +

クライアントとサーバーの両方で Retry-After ヘッダーがサポートされているのは、依然として矛盾しています。ただし、Googlebot のような一部のクローラとスパイダーは Retry-After ヘッダーを尊重します。{{HTTPStatus(503)}} (Service Unavailable) レスポンスと共に送信すると便利です。これにより、ダウンタイムが終了したときに検索エンジンがサイトのインデックスを作成し続けるようになります。

+ +
Retry-After: Wed, 21 Oct 2015 07:28:00 GMT
+Retry-After: 120
+
+ +

仕様

+ + + + + + + + + + + + +
仕様書タイトル
{{RFC("7231", "Retry-After", "7.1.3")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
+ +

ブラウザの互換性

+ + + +

{{Compat("http.headers.Retry-After")}}

+ +

関連情報

+ + 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 +--- +

{{HTTPSidebar}}

+ +

Server-Timing ヘッダーは、指定されたリクエスト-レスポンスのサイクルについての1つ以上のメトリックと説明を通信します。ユーザーのブラウザーの開発ツール内や、 {{domxref("PerformanceServerTiming")}} インターフェイス内で、任意のバックエンドサーバーのタイミングメトリック (データベースの読み書き、 CPU 時間、ファイルシステムアクセス、など) を表面化させるために使用します。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +

Server-Timing ヘッダーの構文では、さまざまな方法でメトリックを通信することができます。サーバーメトリック名のみ、メトリックと値、メトリックと値と説明、メトリックと説明などです。

+ +

仕様書では、 HTTP のオーバーヘッドを最小化するために、名前と説明を (略語を使用したり可能な限り値を省略したりして) できるだけ短くすることを推奨しています。

+ +
// 単一の値のないメトリック
+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
+
+ +

プライバシーとセキュリティ

+ +

Server-Timing ヘッダーは微妙なアプリケーションやインフラの情報を公開する可能性があります。どのメトリックが、いつ、サーバー側の誰に返されるかを制御することを検討してください。例えば、メトリックを認証されたユーザーのみに見せ、一般には見せないようにすることもできます。

+ +

PerformanceServerTiming インターフェイス

+ +

Server-Timing ヘッダーのメトリックがブラウザーの開発者ツールに現れるのに加えて、 {{domxref("PerformanceServerTiming")}} インターフェイスでツールが JavaScript から自動的にメトリックを収集し処理することができます。このインターフェイスは同じオリジンに制約されていますが、 {{HTTPHeader("Timing-Allow-Origin")}} ヘッダーを使用することで、サーバーメトリックにアクセスすることができるドメインを指定することができます。このインターフェイスはブラウザーによっては、安全なコンテキスト (HTTPS) のみでしか利用できません。

+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態題名
{{SpecName('Server Timing','#the-server-timing-header-field', 'Server-Timing Header Field')}}{{Spec2("Server Timing")}}初回定義
+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.Server-Timing")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

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

+ +
+

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

+
+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Server: <product>
+
+ +

ディレクティブ

+ +
+
<product>
+
+

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

+
+
+ +

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

+ +

+ +
Server: Apache/2.4.1 (Unix)
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7231", "Server", "7.4.2")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Server")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Set-Cookie は HTTP のレスポンスヘッダーで、サーバーからユーザーエージェントへクッキーを送信するために使用され、ユーザーエージェントはそれを後でサーバーに送り返すことができます。

+ +

詳細については、HTTP クッキーのガイドを参照してください。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
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
+
+ +

ディレクティブ

+ +
+
<cookie-name>=<cookie-value>
+
クッキーは名前と値の組で始まります。 +
    +
  • <cookie-name> は任意の US-ASCII 文字の集合で、制御文字、空白、タブを除いたものです。 ( ) < > @ , ; : \ " / [ ] ? = { } のような区切り文字も含めることができません。
  • +
  • <cookie-value> は任意で二重引用符で囲むことができ、制御文字、{{glossary("Whitespace", "ホワイトスペース")}}、二重引用符、カンマ、セミコロン、バックスラッシュを除くすべての US-ASCII 文字が利用できます。 エンコーディング: 多くの実装ではクッキーの値に URL エンコーディングを施しますが、 RFC の仕様書では要求されていません。これは <cookie-value> に許可された文字についての要件を満足させるのに役立ちます。
  • +
  • __Secure- の接頭辞{{non-standard_inline}}: __Secure- (接頭辞にダッシュを含む) で始まるクッキー名は、 secure フラグを設定することが必要で、安全なページ (HTTPS) でなければなりません。
  • +
  • __Host- の接頭辞{{non-standard_inline}}: __Host- で始まるクッキー名は、 secure フラグを設定し、安全なページ (HTTPS) から読み込む必要があり、ドメインを指定することができず (従ってサブドメインにも送られません)、パスが / で終わる必要があります。
  • +
+
+
Expires=<date> {{optional_inline}}
+
+

クッキーの有効期限で、 HTTP の日時タイムスタンプです。詳細な書式は {{HTTPHeader("Date")}} を参照してください。

+ +

指定されなかった場合は、クッキーはセッションクッキーの寿命になります。セッションはクライアントが終了したときに終了するので、セッションクッキーはその時点で削除されます。

+ +
+

警告: 多くのウェブブラウザーはセッション復元と呼ばれる機能を持っており、これによってすべてのタブを保存し、次回ブラウザーを起動したときに復元することができます。ブラウザーを実際には閉じていないかのように、セッションクッキーも復元されます。

+
+ +

有効期限が設定されていた場合、期限はサーバーではなく、クッキーが設定されているクライアントからの相対時刻で設定されます。

+
+
Max-Age=<number> {{optional_inline}}
+
クッキーの期限までの秒数です。ゼロまたは負の数値の場合は、クッキーは直ちに期限切れになります。 Expires および Max-Age の両方が設定されていたら、 Max-Age が優先されます。
+
Domain=<domain-value> {{optional_inline}}
+
クッキーを送信する先のホストです。 +
    +
  • 指定されなかった場合は、既定で現在の文書の URL におけるホスト名の部分になり、サブドメインを含みません。
  • +
  • 初期の仕様書とは逆に、ドメイン名の前のドット (.example.com) は無視されます。
  • +
  • 複数のホストやドメインの値を指定することはできませんが、ドメイン指定された場合、すべてのサブドメインが常に含まれます。
  • +
+
+
Path=<path-value> {{optional_inline}}
+
リクエストの URL に含まれるべきパスです。含まれていないと、ブラウザーは Cookie ヘッダーを送信しません。
+
スラッシュ ("/") の文字はディレクトリ区切りとして解釈され、サブディレクトリも同様に一致します (例えば Path=/docs であれば、 /docs, /docs/Web/, /docs/Web/HTTP はすべて一致します)。
+
Secure {{optional_inline}}
+
セキュアクッキーは、リクエストが SSL と HTTPS プロトコルを使用して行われた場合にのみサーバーに送信されます。ただし HTTP クッキーは、例えば情報が暗号化されないなど、安全ではない仕組みを継承しているので、機密な情報や敏感な情報を転送したり格納したりしないようにしてください。 +

メモ: 安全ではないサイト (http:) は  Secure ディレクティブを付けてクッキーを設定することができなくなりました (Chrome 52 以降および Firefox 52 以降の新機能).

+
+
HttpOnly {{optional_inline}}
+
JavaScript が {{domxref("Document.cookie")}} プロパティなどを介してこのクッキーにアクセスすることを禁止します。HttpOnly で作成されたクッキーは、JavaScript で開始されたリクエスト、例えば、 {{domxref("XMLHttpRequest.send()")}} や {{domxref("fetch()")}} と共に送信されます。これにより、クロスサイトスクリプティング ({{Glossary("XSS")}}) の攻撃を軽減します。
+
SameSite=<samesite-value> {{optional_inline}}
+
+
    +
  • Strict: ブラウザは same-site のリクエスト(つまり、クッキーを設定したのと同じサイトから発信されたリクエスト)に対してのみクッキーを送信します。リクエストが現在のURLとは異なるURLから発生した場合、SameSite=Strict 属性を持つクッキーは送信されません。
  • +
  • Lax: 画像やフレームをロードするための呼び出しなどのクロスサイトサブリクエストではクッキーが抑止されますが、ユーザーがリンクをクリックするなどして外部サイトからURLに移動すると送信されます。
  • +
  • None: ブラウザはクロスサイトと same-site の両方のリクエストでクッキーを送信します。
  • +
+ +

クッキーがオリジン間リクエストで送信されないことを主張することで、クロスサイトリクエストフォージェリ攻撃 ({{Glossary("CSRF")}}) に対していくらか防御することができます。

+ +

ブラウザーは クッキーに SameSite=Lax の既定値を持たせるよう移行しつつあります。オリジンをまたいでクッキーを送信する必要がある場合、 None ディレクティブを用いて SameSite の制約を外してください。 None ディレクティブは Secure 属性を必要とします。

+
+
+ +

+ + + +

セッションクッキーはクライアントが終了したときに削除されます。 ExpiresMax-Age ディレクティブを指定しないとクッキーはセッションクッキーになります。

+ +
Set-Cookie: sessionId=38afes7a8
+ + + +

永続的クッキーは、クライアントが終了したときに期限切れにならず、特定の期限 (Expires) または特定の時間が過ぎた後 (Max-Age) に期限切れになります。

+ +
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT
+
+ +
Set-Cookie: id=a3fWa; Max-Age=2592000
+ +

不正なドメイン

+ +

オリジンのサーバーを含まないドメインに所属するクッキーは、ユーザーエージェントが拒否します

+ +

次のクッキーは originalcompany.com でホストされたサーバーから設定しようとすると拒否されます。

+ +
Set-Cookie: qwerty=219ffwef9w0f; Domain=somecompany.co.uk
+ +

提供するドメインのサブドメインへのクッキーは拒否されます。

+ +

以下のクッキーは、 example.com にホスティングされたサーバーからセットされた場合は拒否されます。

+ +
Set-Cookie: sessionId=e8bb43229de9; Domain=foo.example.com
+ + + +

__Secure- または __Host- の接頭辞が付いたクッキー名は、安全な (HTTPS の) オリジンから secure ディレクティブを設定した場合のみ使用することができます。

+ +

加えて、 __Host- の接頭辞が付いたクッキーは、 / (ホストの任意のパスという意味) を持つ必要があり、 Domain ディレクティブを持つことができません。

+ +
+

クッキーの接頭辞を実装していないクライアントでは、これらの保証を受けることができず、クッキーは常に受け入れられます。

+
+ +
// どちらも安全な (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
+
+ +

仕様書

+ + + + + + + + + + + + + + + + + + +
仕様書題名
{{RFC("6265", "Set-Cookie", "4.1")}}HTTP State Management Mechanism
draft-ietf-httpbis-rfc6265bis-02Cookie Prefixes, Same-Site Cookies, and Strict Secure Cookies
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Set-Cookie")}}

+ +

互換性のメモ

+ + + +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

{{HTTPHeader("Set-Cookie")}} HTTP レスポンスヘッダーの SameSite 属性を使用すると、Cookie をファーストパーティまたは同じサイトのコンテキストに制限するかどうかを宣言できます。

+ +

+ +

SameSite 属性は3つの値をとります。

+ +

Lax

+ +

Cookie はトップレベルナビゲーションで送信することが許可されており、サードパーティの Web サイトによって開始された GET リクエストとともに送信されます。これは、モダンブラウザのデフォルト値です。

+ +

Strict

+ +

Cookie はファーストパーティのコンテキストでのみ送信され、サードパーティの Web サイトによって開始されたリクエストと一緒に送信されることはありません。

+ +

None

+ +

Cookie はすべてのコンテキストで送信されます。つまり、クロスオリジンの送信が許可されます。

+ +

None はデフォルト値でしたが、最近のブラウザバージョンでは、Lax をデフォルト値にして、クロスサイトリクエストフォージェリ ({{Glossary("CSRF")}}) 攻撃のクラスに対して適度に堅牢な防御を提供しました。

+ +

None では、最新バージョンのブラウザで Secure 属性が必要です。詳細については、以下を参照してください。

+ +

一般的な警告の修正

+ +

SameSite=None requires Secure

+ +

次の警告がコンソールに表示される場合があります。

+ +
+

Some cookies are misusing the “sameSite“ attribute, so it won’t work as expected.
+ Cookie “myCookie” rejected because it has the “sameSite=none” attribute but is missing the “secure” attribute.

+
+ +

SameSite=None を要求するが Secure とマークされていない Cookie は拒否されるため、警告が表示されます。

+ +
Set-Cookie: flavor=choco; SameSite=None
+ +

これを修正するには、SameSite=None Cookie に Secure 属性を追加する必要があります。

+ +
Set-Cookie: flavor=choco; SameSite=None; Secure
+ +

Secure Cookie は、HTTPS プロトコルを介した暗号化されたリクエストでのみサーバーに送信されます。安全でないサイト (http:) は Secure ディレクティブで Cookie を設定できないことに注意してください。

+ +

Cookies without SameSite default to SameSite=Lax

+ +

モダンブラウザの最近のバージョンでは、デフォルトで SameSite がより安全に Cookie に提供されているため、次のメッセージがコンソールに表示される場合があります。

+ +
+

Some cookies are misusing the “sameSite“ attribute, so it won’t work as expected.
+ Cookie “myCookie” has “sameSite” policy set to “lax” because it is missing a “sameSite” attribute, and “sameSite=lax” is the default value for this attribute.

+
+ +

Cookie の SameSite ポリシーが明示的に指定されていないため、警告が表示されます。

+ +
Set-Cookie: flavor=choco
+ +

モダンブラウザを使用して SameSite=Lax を自動的に適用することもできますが、明示的に指定して、Cookie に適用される SameSite ポリシーの意図を明確に伝える必要があります。すべてのブラウザのデフォルトがまだ Lax であるわけではないため、これによりブラウザ全体のエクスペリエンスも向上します。

+ +
Set-Cookie: flavor=choco; SameSite=Lax
+ +

例:

+ +
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]
+
+ +

仕様

+ + + + + + + + + + + + + + + + + + +
仕様書タイトル
{{RFC("6265", "Set-Cookie", "4.1")}}HTTP 状態管理メカニズム
draft-ietf-httpbis-rfc6265bis-05Cookie プレフィックス、同一サイト Cookie、および厳格なセキュア Cookie
+ +

ブラウザの互換性

+ + + +

{{Compat("http.headers.Set-Cookie", 5)}}

+ +

あわせて参照

+ + 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 +--- +

{{HTTPSidebar}} {{obsolete_header}}

+ +

サーバーからユーザーエージェントにCookieを送信するために使用された古い Set-Cookie2 HTTP レスポンスヘッダーですが、仕様で廃止されました。代わりに {{HTTPHeader("Set-Cookie")}} を使用してください。

+ + + + + + + + + + + + +
ヘッダータイプ{{Glossary("Response header")}}
{{Glossary("Forbidden header name")}}いいえ
+ +

構文

+ +
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>, ...
+
+ +

仕様

+ + + + + + + + + + + + +
仕様書タイトル
{{RFC("2965", "Set-Cookie2")}}Historic specification of HTTP State Management Mechanism, obsoleted by {{RFC("6265")}}
+ +

ブラウザの互換性

+ + + +

{{Compat("http.headers.Set-Cookie2")}}

+ +

関連情報

+ + 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 +--- +

{{HTTPSidebar}}

+ +

SourceMap HTTP レスポンスヘッダーは、生成されたコードをソースマップにリンクし、ブラウザが元のソースを再構成し、再構成されたオリジナルをデバッガに提示できるようにします。

+ + + + + + + + + + + + +
ヘッダータイプ{{Glossary("Response header")}}
{{Glossary("Forbidden header name")}}いいえ
+ +

構文

+ +
SourceMap: <url>
+X-SourceMap: <url> (deprecated)
+
+ +

ディレクティブ

+ +
+
<url>
+
(リクエスト URL に対する) 相対パスまたはソースマップファイルを指す絶対 URL
+
+ +

+ +
SourceMap: /path/to/file.js.map
+ +

仕様

+ + + + + + + + + + + + +
仕様書タイトル
Draft documentSource Map Revision 3 Proposal
+ +

ブラウザの互換性

+ + + +

{{Compat("http.headers.SourceMap")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の Strict-Transport-Security レスポンスヘッダー (しばしば {{Glossary("HSTS")}} と略されます) は、ウェブサイトがブラウザーに HTTP の代わりに HTTPS を用いて通信を行うよう指示するためのものです。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Strict-Transport-Security: max-age=<expire-time>
+Strict-Transport-Security: max-age=<expire-time>; includeSubDomains
+Strict-Transport-Security: max-age=<expire-time>; preload
+
+ +

ディレクティブ

+ +
+
max-age=<expire-time>
+
秒単位で、そのサイトに HTTPS だけで接続することをブラウザーが記憶する時間です。
+
includeSubDomains {{optional_inline}}
+
省略可能で、この引数が指定されると、この規則がサイトのすべてのサブドメインにも適用されます。
+
preload {{optional_inline}}
+
詳しくは {{anch("Preloading Strict Transport Security", "Strict Transport Security のプリロード")}} を参照してください。仕様書で定義されているものではありません。
+
+ +

解説

+ +

もし、訪問者が http://www.foo.com/ または単に foo.com と入力したとき、ウェブサイトが接続を HTTP で受け付け、 HTTPS にリダイレクトするようになっていると、訪問者はリダイレクトされる前にまず、暗号化されないバージョンのサイトと通信する可能性があります。これは中間者攻撃の機会を作ってしまいます。リダイレクトは訪問者を、本来のサイトの安全なバージョンではなく、悪意のあるサイトに導くために利用される可能性があるからです。

+ +

HTTP の Strict Transport Security ヘッダーは、ブラウザーに対してサイトを HTTP を使用して読み込まず、サイトへのすべてのアクセスを、自動的に HTTP から HTTPS リクエストに変換するよう指示することができます。

+ +
メモ: サイトに HTTP を使用してアクセスしたとき、ブラウザーは Strict-Transport-Security ヘッダーを無視します。これは攻撃者が HTTP 接続に介入して、ヘッダーを挿入したり削除したりするかもしれないからです。ウェブサイトに HTTPS でアクセスして、証明書のエラーがない場合、ブラウザーはサイトが HTTPS でアクセスできることを知り、 Strict-Transport-Security ヘッダーを信用します。
+ +

事例

+ +

あなたが、空港で無料の Wi-Fi アクセスポイントにログインしてウェブの利用を開始し、オンラインバンキングサービスで残高の確認や取引を行ったとします。しかし不運にも、あなたが使用したアクセスポイントはハッカーのノートパソコンであり、そのハッカーはあなたの HTTP リクエストを傍受して、本物の銀行のサイトではなく偽のサイトへリダイレクトしたとします。こうなると、あなたの個人情報はハッカーにさらされてしまいます。

+ +

Strict Transport Security はこの問題を解決します。いったん銀行のウェブサイトへ HTTPS でアクセスすれば、そして銀行のウェブサイトが Strict Transport Security を利用していれば、ブラウザーは自動的に HTTPS のみを用いるよう理解して、ハッカーによるこの種の中間者攻撃の実行を防ぎます。

+ +

ブラウザーでの扱い

+ +

最初にサイトに HTTPS でアクセスして Strict-Transport-Security ヘッダーが返されると、ブラウザーはこの情報を記録し、以降は HTTP を使用してサイトを読み込みもうとすると、自動的に HTTPS を使用するようになります。

+ +

Strict-Transport-Security ヘッダーで指定された有効期限が経過すると、次回は自動的に HTTPS を使用するのではなく、通常通りに HTTP でサイトを読み込もうとします。

+ +

なお、 Strict-Transport-Security ヘッダーがブラウザーへ送られるたびに、そのウェブサイトに対する有効期限が更新されるので、サイトはこの情報を更新して期限切れを防ぐことができます。 Strict-Transport-Security を無効にする必要がある場合は、 HTTPS 通信時に max-age の値を 0 に設定することで Strict-Transport-Security ヘッダーが失効し、ブラウザーからの HTTP 接続が許されるようになります。

+ +

Strict Transport Security のプリロード

+ +

Google は HSTS 先読みサービス を行っています。ガイドラインに従ってドメインを登録すれば、ブラウザーはドメインに安全ではない接続を行わないようになります。サービスは Google によって運営されており、すべてのブラウザーが先読みリストを使用する意志を示しています (または既に使用を始めています)。但し、これは HSTS 仕様書にあるものではなく、公式なものとして扱うべきではありません。

+ + + +

+ +

既存および将来のすべてのサブドメインで、1年間を期限として HTTPS を使用する設定です。これは HTTP のみで提供できるページやサブドメインへのアクセスをブロックします。

+ +
Strict-Transport-Security: max-age=31536000; includeSubDomains
+ +

以下の例では、 max-age は前回の1年間を期限とする max-age を延長して2年間に設定します。なお、1年間はブラウザーの HSTS 先読みリストに含まれるドメインで有効です。しかし、2年間は https://hstspreload.org で説明されているとおり、ウェブサイトの最終的な HSTS 設定のゴールとして推奨されています。また、最後の preload は Chromium, Edge, Firefox などの主要なブラウザーの HSTS 先読みリストで必要です。

+ +
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('HSTS')}}{{Spec2('HSTS')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Strict-Transport-Security")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

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

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

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

ディレクティブ

+ +
+
*
+
サーバーはワイルドカードとして "*" を指定することができ、それによって全てのオリジンがタイミングリソースを見ることができます。
+
<origin>
+
タイミングリソースを表示できる URI を指定します。 複数のオリジンをカンマ区切りで指定できます。
+
+ +

+ +

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

+ +
Timing-Allow-Origin: *
+ +

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

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

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('Resource Timing 3', '#sec-timing-allow-origin', 'Timing-Allow-Origin')}}{{Spec2("Resource Timing 3")}}Initial definition.
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Timing-Allow-Origin")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Tk 応答ヘッダーは、該当する要求に適用される追跡状態を示します。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "応答ヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Tk: !  (工事中)
+Tk: ?  (動的)
+Tk: G  (ゲートウェイ又は複数の関係者)
+Tk: N  (追跡なし)
+Tk: T  (追跡中)
+Tk: C  (同意済みの追跡中)
+Tk: P  (潜在的な同意)
+Tk: D  (DNT を無視)
+Tk: U  (更新済み)
+
+ +

ディレクティブ

+ +
+
!
+
工事中。オリジンのサーバーは現在の追跡状態の通信のテストを行っています。
+
?
+
動的。オリジンのサーバーは追跡状態を特定するために追加情報が必要です。
+
G
+
ゲートウェイ又は複数の関係者。サーバーは、複数の関係者が関わる交換のゲートウェイとして機能しています。
+
N
+
追跡なし。
+
T
+
追跡中。
+
C
+
同意済みの追跡中。オリジンのサーバーは、このユーザー、ユーザーエージェント、機器が追跡に関する事前の同意を得ていると考えています。
+
P
+
潜在的な同意。オリジンのサーバーは、このユーザー、ユーザーエージェント、機器を追跡するための事前の同意をリアルタイムで受け取ったかどうかを知りませんが、そのような同意が確定するまで DNT:1 データを使用または共有しないことを約束します。 そのような同意が受領されていない DNT:1 データを48時間以内に削除または永久に匿名化することを約束します。
+
D
+
DNT を無視。オリジンのサーバーは、要求しているユーザーエージェントから受信した追跡設定を尊重することができないか、またはそうしたくない。
+
U
+
更新済み。この要求により、このユーザー、ユーザーエージェント、機器に適用可能な追跡状態が変更される可能性があります。
+
+ +

+ +

追跡しないように宣言しているリソースへの Tk ヘッダーは次のようになります。

+ +
Tk: N
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('Tracking','#Tk-header-defn', 'Tk header field')}}{{Spec2("Tracking")}}初回定義
+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.Tk")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Transfer-Encoding ヘッダーは、{{Glossary("Payload body","ペイロード本文")}}をユーザーに安全に転送するために使われる符号化方式を指定します。

+ +
HTTP/2 は HTTP 1.1 のチャンク化した転送エンコードの仕組みに対応しておらず、新規にもっと効率的な、データストリーミングの仕組みを提供しています。
+ +

Transfer-Encodingホップバイホップヘッダーであり、リソース自体ではなく、二つのノード間のメッセージに適用されます。複数ノードコネクションのそれぞれの区間は、異なる Transfer-Encoding の値を使用することがあります。コネクション全体を通してデータを圧縮したい場合は、代わりにエンドトゥエンドの {{HTTPHeader("Content-Encoding")}} ヘッダーを使用してください。

+ +

本文のない {{HTTPMethod("HEAD")}} リクエストに対するレスポンスで使われたときは、対応する {{HTTPMethod("GET")}} メッセージに適用されるであろう値を示します。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}はい
+ +

構文

+ +
Transfer-Encoding: chunked
+Transfer-Encoding: compress
+Transfer-Encoding: deflate
+Transfer-Encoding: gzip
+Transfer-Encoding: identity
+
+// コンマで区切って複数の値を並べることができます
+Transfer-Encoding: gzip, chunked
+ +

ディレクティブ

+ +
+
chunked
+
データはチャンク (塊) の連続で送られます。この場合は {{HTTPHeader("Content-Length")}} ヘッダーが省略されます。それぞれのチャンクの先頭に現在のチャンクの長さを16進数の形式で追加し、その後で '\r\n' が続き、チャンク自体ももう一つの '\r\n' が続きます。最後のチャンクは通常のチャンクですが、長さが0であるという点が異なります。この後に、一連のエンティティのヘッダーフィールド (おそらく空) から成るトレイラーが続きます。
+
compress
+
Lempel-Ziv-Welch (LZW) アルゴリズムを使用した形式です。この値の名前はこのアルゴリズムを実装している UNIX の compress プログラムから採られました。
+ 特許問題 (2003年に期限切れ) の影響もあり、多くの UNIX ディストリビューションから compress プログラムが消滅したように、今日ではこのコンテンツ符号化方式を使用しているブラウザーはほとんどありません。
+
deflate
+
zlib 構造体 (RFC 1950 で定義) と deflate 圧縮アルゴリズム (RFC 1951 で定義) を使用します。
+
gzip
+
Lempel-Ziv coding (LZ77) と32ビット CRC を使用する形式です。これは元は UNIX の gzip プログラムの形式です。 HTTP/1.1 標準は、互換性のために、このコンテンツ符号化方式の別名としてx-gzip を解釈することにサーバーが対応することを推奨しています。
+
identity
+
恒等写像 (つまり、圧縮なし、変更なし) であることを示します。このトークンは、特に明示された場合は、常に受け付けられるとみなされます。
+
+ +

+ +

チャンク化の符号化

+ +

チャンク化の符号化は、大量のデータをクライアントに送り、リクエストが完了するまでレスポンスの合計の長さが分からない場合に便利です。例えば、巨大な HTML の表をデータベースのクエリの結果として作成したり、大きな画像を転送したりする場合などです。チャンク化されたレスポンスは以下のようになります。

+ +
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
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7230", "Transfer-Encoding", "3.3.1")}}Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Transfer-Encoding")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の Upgrade-Insecure-Requests リクエストヘッダーは、暗号化および認証されたレスポンスに対するクライアントの設定を表す信号をサーバーに送信し 、{{CSP("upgrade-insecure-requests")}} CSP ディレクティブを正常に処理できることを示します。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Upgrade-Insecure-Requests: 1
+ +

+ +

クライアントは、次のように {{CSP("upgrade-insecure-requests")}} のアップグレードメカニズムをサポートしていることをサーバーに通知します。

+ +
GET / HTTP/1.1
+Host: example.com
+Upgrade-Insecure-Requests: 1
+ +

これで、サーバーは安全なバージョンのサイトにリダイレクトできます。 {{HTTPHeader("Vary")}} ヘッダーを使用することで、アップグレードメカニズムをサポートしていないクライアントにキャッシュからサイトが提供されなくなります。

+ +
Location: https://example.com/
+Vary: Upgrade-Insecure-Requests
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態コメント
{{specName("Upgrade Insecure Requests", "#preference", "upgrade-insecure-requests")}}{{Spec2('Upgrade Insecure Requests')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Upgrade-Insecure-Requests")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

この文書では、 Firefox 4 以降および Gecko 2.0 以降ベースのアプリケーションで用いられるユーザーエージェント文字列について説明します。 Gecko 2.0 での変更点について詳しくは Final User Agent string for Firefox 4 (ブログ記事) をご覧ください。ユーザーエージェントの検出に関する文書や Hacks の投稿もご覧ください。

+ +

一般形

+ +

Firefox 自身のユーザーエージェント文字列は、4つの部分に分けられます。

+ +

Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion

+ + + +
メモ: Gecko ベースのブラウザー向けに推奨するスニッフィング法 (機能の検出を行う代わりにブラウザーエンジンのスニッフィングを行わなければならない場合) は、 "Gecko" および "rv:" の文字列が存在するかの検出です。これは、他ブラウザーの一部に "like Gecko" というトークンが含まれるためです。
+ +

Gecko ベースの他製品では下記 2 つの形式のいずれかであり、各トークンの意味は以下に記載した内容を除いて同じです:

+ +

Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail appname/appversion
+ Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion appname/appversion

+ + + +

モバイルおよびタブレットの標示

+ +
+

Firefox 11 以降のみです。

+
+ +

UA 文字列で platform の部分は、 Firefox が携帯電話サイズまたはタブレットの機器で動作しているかを示します。携帯電話フォームファクターの機器で Firefox が動作している場合は、 Mobile; というトークンが UA 文字列で platform の部分に現れます。一方タブレット機器で Firefox が動作している場合は、 Tablet; というトークンが UA 文字列で platform の部分に現れます。例えば:

+ +
Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0
+Mozilla/5.0 (Android 4.4; Tablet; rv:41.0) Gecko/41.0 Firefox/41.0
+ +
バージョン番号は重要ではありません。バージョン番号を基に判断しないでください。
+ +

ある機器のフォームファクター向けのコンテンツを決めるために好ましい方法は、CSS メディアクエリの使用です。しかし機器のフォームファクターの対象コンテンツを決めるために UA スニッフィングを用いている場合は、携帯電話フォームファクターでは Mobi (Opera Mobile が "Mobile" ではなく "Mobi" と表記するため) を検索するようにして、"Android" と機器のフォームファクターに対応関連があるとは考えないようにしてください。そうすることで Firefox を他の携帯電話やタブレットのオペレーティングシステム向けに公開した場合や Android がラップトップ PC に使用された場合でもコードが動作します。また、タッチ対応端末を検出するには "Mobi" や "Tablet" を検索するのではなく、タッチ機能を検出してください。タブレットではないタッチ対応端末の場合もあります。

+ +
Firefox OS 端末では、オペレーティングシステムを示す部分がない形式となります (例: "Mozilla/5.0 (Mobile; rv:15.0) Gecko/15.0 Firefox/15.0")。Web がプラットフォームです。
+ +

Windows

+ +

Windows のユーザーエージェントには以下のバリエーションがあり、その中で x.y は Windows NT のバージョンを表します (例えば、Windows NT 6.1)。

+ + + + + + + + + + + + + + + + + + +
Windows のバージョンGecko のユーザーエージェント文字列
x86 CPU の Windows NTMozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0
x64 CPU の Windows NTMozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0
+ +

Macintosh

+ +

ここで x.y は Mac OS X のバージョンを表します (例えば、Mac OS X 10.6)。

+ + + + + + + + + + + + + + + + + + +
Mac OS X のバージョンGecko のユーザーエージェント文字列
Intel x86 または x86_64 環境の Mac OS XMozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0
PowerPC 環境の Mac OS XMozilla/5.0 (Macintosh; PPC Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0
+ +

Linux

+ +

Linux には多様なプラットフォームが存在します。 Linux ディストリビューションによってはユーザーエージェント文字列を変更する拡張機能を含んでいることがあります。いくつかの一般的な例は以下のとおりです。

+ + + + + + + + + + + + + + + + + + + + + + +
Linux のバージョンGecko のユーザーエージェント文字列
i686 CPU の Linux デスクトップMozilla/5.0 (X11; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0
x86_64 CPU の Linux デスクトップMozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0
Nokia N900 Linux モバイルの Fennec ブラウザーMozilla/5.0 (Maemo; Linux armv7l; rv:10.0) Gecko/20100101 Firefox/10.0 Fennec/10.0
+ +

Android (バージョン 40 以下)

+ + + + + + + + + + + + + + + + + + + + +
フォームファクターGecko のユーザーエージェント文字列
携帯電話Mozilla/5.0 (Android; Mobile; rv:40.0) Gecko/40.0 Firefox/40.0
タブレットMozilla/5.0 (Android; Tablet; rv:40.0) Gecko/40.0 Firefox/40.0
+ +

Android (バージョン 41 以降)

+ +

バージョン 41 以降の Android 版 Firefox では platform トークンに Android バージョンが含まれます。相互運用性向上のため、 Android 4 以前のバージョンでブラウザーが動作している場合は 4.4 と出力します。 Android バージョン 4 以降では実際のバージョン番号が出力されます。なお、Gecko エンジンはすべての Android バージョンに対して同じ機能を提供しています。

+ + + + + + + + + + + + + + + + + + +
フォームファクターGecko のユーザーエージェント文字列
携帯電話Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0
タブレットMozilla/5.0 (Android 4.4; Tablet; rv:41.0) Gecko/41.0 Firefox/41.0
+ +

Focus for Android

+ +

バージョン1から、 Focus は Android WebView によって実現されており、以下のユーザーエージェント文字列書式を使用しています。

+ +
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>
+ +

タブレット版の WebView はモバイル版のミラーですが、 Mobile トークンを含みません。

+ +

バージョン6から、ユーザーが GeckoView ベースの Focus for Android を隠し設定で選択できるようになっています。 Gecko との互換性を示すため、 GeckoView の UA 文字列を使用します。

+ + + + + + + + + + + + + + + + + + + + +
Focus Version (レンダリングエンジン)ユーザーエージェント文字列
1.0 (WebView Mobile)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
1.0 (WebView Tablet)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
6.0 (GeckoView)Mozilla/5.0 (Android 7.0; Mobile; rv:62.0) Gecko/62.0 Firefox/62.0
+ +

Klar for Android

+ +

バージョン 4.1 以降、 Klar for Android は Focus for Android と同じ UA 文字列を使用します。バージョン 4.1 より前では、 Klar/<version> product/version のトークンを送っていました。.

+ + + + + + + + + + + + + + + + + + + + + + +
Klar バージョン (レンダリングエンジン)iOS 版 Firefox のユーザーエージェント文字列
1.0 (WebView)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
4.1+ (WebView)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
6.0+ (GeckoView)Mozilla/5.0 (Android 7.0; Mobile; rv:62.0) Gecko/62.0 Firefox/62.0
+ +

Focus for iOS

+ +

Focus for iOS のバージョン7は、以下の形式のユーザーエージェント文字列を使用します。

+ +
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
+ +

メモ: このユーザーエージェント文字列は iPhone XR シミュレーターから取得したもので、端末によって異なるかもしれません。

+ +

Firefox for Fire TV

+ +

Firefox for Fire TV のバージョン3 (およびそれ以前もおそらく) は、以下の書式のユーザーエージェント文字列を使用します。

+ +
Mozilla/5.0 (Linux; <Android version>) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/<firefoxversion> Chrome/<Chrome Rev> Safari/<WebKit Rev>
+ + + + + + + + + + + + +
Firefox TV バージョンユーザーエージェント文字列
v3.0Mozilla/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
+ +

Firefox for Echo Show

+ +

Firefox for Echo Show はバージョン1.1から、以下の書式のユーザーエージェント文字列を使用しています。

+ +
Mozilla/5.0 (Linux; <Android version>) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/<firefoxversion> Chrome/<Chrome Rev> Safari/<WebKit Rev>
+
+ + + + + + + + + + + + +
Firefox for Echo Show バージョンユーザーエージェント文字列
v1.1Mozilla/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
+ +

Firefox OS

+ + + + + + + + + + + + + + + + + + + + + + + + +
フォームファクターGecko のユーザーエージェント文字列
携帯電話Mozilla/5.0 (Mobile; rv:26.0) Gecko/26.0 Firefox/26.0
タブレットMozilla/5.0 (Tablet; rv:26.0) Gecko/26.0 Firefox/26.0
テレビMozilla/5.0 (TV; rv:44.0) Gecko/44.0 Firefox/44.0
端末特有Mozilla/5.0 (Mobile; nnnn; rv:26.0) Gecko/26.0 Firefox/26.0
+ +

端末特有のユーザーエージェント文字列

+ +

Mozilla は強く反対していますが、残念ながら一部の機器メーカーは端末の ID を表すトークンを、ユーザーエージェント文字列に含めています。これに当てはまる場合は Firefox OS のユーザーエージェント文字列が、前出の表で示したように端末特有の文字列になります。 nnnn; が、端末を示すメーカーのコードです (ガイドラインもご覧ください)。私たちは "NexusOne;", "ZTEOpen;", "Open C;" などを見つけました (空白を入れることも非推奨です)。ユーザーエージェント検出のロジックを支援するためにこの情報を提供しますが、 Mozilla はユーザーエージェント文字列で端末 ID を検出することを推奨しません。

+ +

ユーザーエージェント文字列に端末 ID を持つ場合を含むすべてのモバイル端末を検出するであろう、JavaScript の正規表現は以下のとおりです。

+ +
/mobi/i
+ +

i は大文字・小文字を区別しないことを示し、 mobi がすべてのモバイルブラウザーに一致します。

+ +

Firefox OS のバージョン番号

+ +

Firefox OS のバージョン番号は UA 文字列に含まれませんが、 UA 文字列には Gecko のバージョンからバージョン情報を特定することができます。

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Firefox OS のバージョン番号Gecko のバージョン番号
1.0.118.0
1.118.1
1.226.0
1.328.0
1.430.0
2.032.0
2.134.0
2.237
2.544
+ +
+

この対応関係は Mercurial リポジトリ名から容易に判断できます。mozilla-b2g で始まるリポジトリが Firefox OS のリリースリポジトリであり、Firefox OS と Gecko の両バージョンがその名前に含まれています。

+
+ +

Firefox OS のバージョン番号は 4 つの数字があります: X.X.X.Y. 始めの 2 つの数字は Mozilla の製品チームが管理しており、新機能を伴うバージョンを表します (例: v1.1、1.2 など)。3 番目の番号はセキュリティ更新向けの定期的なバージョンの識別 (最大 6 週間ごと) として増えていきます。4 番目の番号は OEM が管理します。

+ +

iOS

+ +

iOS 版の Firefox では既定の Mobile Safari の UA 文字列に FxiOS/<version> トークンを追加したものになります。これは Chrome for iOS の UA 定義と同じ形式です

+ + + + + + + + + + + + + + + + + + + + + + +
フォームファクターiOS 版 Firefox のユーザエージェント文字列
iPodMozilla/5.0 (iPod touch; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4
iPhoneMozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4
iPadMozilla/5.0 (iPad; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4
+ +

Firefox Web Runtime

+ +

Web Runtime はデスクトップ版 Firefox と同じユーザーエージェント文字列を使います。

+ +

その他の Gecko ベースのブラウザー

+ +

以下は、さまざまなプラットフォームの Gecko ベースのブラウザーにおける UA 文字列の一例です。これらの多くはまだ Gecko 2.0 ベースで公開されていないことに注意してください!

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ブラウザーGecko のユーザーエージェント文字列
Maemo 版 Firefox (Nokia N900)Mozilla/5.0 (Maemo; Linux armv7l; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 Fennec/10.0.1
Mac 版 CaminoMozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 Camino/2.2.1
Windows 版 SeaMonkeyMozilla/5.0 (Windows NT 5.2; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1
Mac 版 SeaMonkeyMozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1
Linux 版 SeaMonkeyMozilla/5.0 (X11; Linux i686; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1
+ +

アプリケーション、ベンダー、拡張向けの実装上の注意

+ +

Firefox 4 および Gecko 2.0 以前では、拡張機能が設定項目 general.useragent.extra.identifier を通してユーザーエージェント文字列を追加することができました (ユーザーエージェント文字列の旧版リファレンス をご覧ください。しかし、これは {{Bug(581008)}} により不可能になりました。

+ +

以前は特定のプラグイン・アドオン・拡張機能が、自身がインストールされていることを知らせるためにユーザーエージェント文字列を追加していました。現在、やむを得ず必要である場合に推奨される方法 (すべての要求が遅くなることに留意してください) は、カスタム HTTP ヘッダを設定すること です。

+ +

関連情報

+ + + +
+

mozilla.dev.platform へのコメント

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 +--- +
{{HTTPSidebar}}
+ +

User-Agent {{Glossary("request header", "リクエストヘッダー")}}は、サーバーやネットワークピアがアプリケーション、オペレーティングシステム、ベンダーや、リクエストしている{{Glossary("user agent", "ユーザーエージェント")}}のバージョン等を識別できるようにする特性文字列です。

+ +
+

ブラウザーによって異なるウェブページやサービスを提供することが、通常は悪い考えである理由については、ユーザーエージェント文字列を用いたブラウザーの判定をお読みください。

+
+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
User-Agent: <product> / <product-version> <comment>
+ +

ウェブブラウザーでよくある書式は以下のようなものです。

+ +
User-Agent: Mozilla/5.0 (<system-information>) <platform> (<platform-details>) <extensions>
+ +

ディレクティブ

+ +
+
<product>
+
製品の識別子です。名前または開発コードネームです。
+
<product-version>
+
製品のバージョン番号です。
+
<comment>
+
ゼロ個以上のコメントで、サブ製品情報など、より詳細な情報を含みます。
+
+ +

Firefox の UA 文字列

+ +

Firefox や Gecko ベースのユーザエージェント文字列の詳細については、 Firefox のユーザエージェント文字列リファレンスを参照してください。 Firefox の UA 文字列は4つの部分に分解されます。

+ +
Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
+ +
    +
  1. Mozilla/5.0 は、 Mozilla と互換性があるブラウザーであるということを示す一般的なトークンで、現在はほぼすべてのブラウザーで共通です。
  2. +
  3. platform は、ブラウザーが動作しているプラットフォーム (Windows, Mac, Linux, Android など)、およびモバイル端末かどうかを示します。 {{Glossary("Firefox OS")}} のスマートフォンはウェブプラットフォームなので、 Mobile だけです。 platform が複数の "; " という区切りから成っていることに留意してください。後述の詳細と例も併せてご覧ください。
  4. +
  5. rv:geckoversion は Gecko のリリースバージョンです ("17.0" など)。最近のブラウザーの geckoversionfirefoxversion と同じです。
  6. +
  7. Gecko/geckotrail は、ブラウザーが Gecko を基にしていることを示します。 (デスクトップでは、 geckotrail は常に 20100101 の固定文字列です。)
  8. +
  9. Firefox/firefoxversion は、ブラウザーが Firefox であること、またそのバージョン ("17.0" など) を示しています。
  10. +
+ +

+ +
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 x.y; rv:42.0) Gecko/20100101 Firefox/42.0
+
+ +

Chrome の UA 文字列

+ +

Chrome (または Chromium/Blink ベースのエンジン) のユーザーエージェント文字列は Firefox のものと似ています。互換性のため、 KHTML, like GeckoSafari のような文字列が追加されています。

+ +

+ +
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
+ +

Opera の UA 文字列

+ +

Opera ブラウザーも Blink エンジンに基づいているので、大部分は同じですが、 "OPR/<version>" を追加します。

+ +

+ +
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
+ +

古い Presto ベースの Opera のリリースは、次のものを使用していました。

+ +
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
+ +

Safari の UA 文字列

+ +

この例では、ユーザーエージェント文字列はモバイル Safari のものです。これは Mobile という語を含んでいます。

+ +

+ +
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
+ +

Internet Explorer の UA 文字列

+ +

+ +
Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)
+ +

クローラーやボットの UA 文字列

+ +

+ +
Googlebot/2.1 (+http://www.google.com/bot.html)
+ +

仕様書

+ + + + + + + + + + + + + + + + + + +
仕様書題名
{{RFC(7231, "User-Agent", "5.5.3")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
{{RFC(2616, "User-Agent", "14.43")}}Hypertext Transfer Protocol -- HTTP/1.1
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.User-Agent")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

Vary HTTP レスポンスヘッダーは、オリジンのサーバーから新しく要求するのではなく、キャッシュされたレスポンスを使用できるかどうかを決定するために将来のリクエストヘッダーをどのように一致させるかを決定します。これは、コンテンツネゴシエーションアルゴリズムでリソースの表現を選択するときにどのヘッダーを使用したかを示すためにサーバーによって使用されます。

+ +

Vary ヘッダーは {{HTTPStatus("200")}} OK レスポンスに設定されるのと同様に、 {{HTTPStatus("304")}} Not Modified にも設定されます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Vary: *
+Vary: <header-name>, <header-name>, ...
+
+ +

ディレクティブ

+ +
+
*
+
URL のための各リクエストは、固有でキャッシュ不可能なリクエストとして扱われると仮定されます。これを示すのには {{HTTPHeader("Cache-Control")}}: no-store を使用したほうが良く、こちらはより明確に読むことができ、オブジェクトが保存されないことを示します。
+
<header-name>
+
コンマ区切りで、キャッシュされたレスポンスが使用されるかどうかを決定する際に関わるヘッダー名のリストです。
+
+ +

+ +

動的な提供

+ +

Vary: User-Agent ヘッダーが使用されたとき、キャッシュサーバーはキャッシュからページを提供するかどうかを決定する際にユーザーエージェントを考慮するべきです。例えば、モバイルユーザーに対して異なるコンテンツを提供しているのであれば、誤ってサイトのデスクトップ版のサイトをモバイルユーザーに対して提供してしまうことを防ぐのに役立ちます。これは Google 等の検索エンジンがページのモバイル版を発見するのに役立ち、 Cloaking を求めずに区別することができる可能性があります。

+ +
Vary: User-Agent
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7231", "Vary", "7.1.4")}}Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Vary")}}

+ +

互換性メモ

+ + + +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

一般ヘッダーのVia は、フォワードプロキシとリバースプロキシの両方のプロキシによって追加され、リクエストヘッダーとレスポンスヘッダーに表示されます。 メッセージ転送の追跡、要求ループの回避、および要求/応答チェーンに沿った送信者のプロトコル機能の識別に使用されます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("General header")}}
{{Glossary("Forbidden header name")}}yes
+ +

構文

+ +
Via: [ <protocol-name> "/" ] <protocol-version> <host> [ ":" <port> ]
+or
+Via: [ <protocol-name> "/" ] <protocol-version> <pseudonym>
+
+ +

ディレクティブ

+ +
+
<protocol-name>
+
オプション。"HTTP"など、使用するプロトコル名。
+
<protocol-version>
+
"1.1"など、使用されているプロトコルのバージョン。
+
<host> and <port>
+
パブリックプロキシのURLとポート。
+
<pseudonym>
+
内部プロキシの名前/エイリアス。
+
+ +

+ +
Via: 1.1 vegur
+Via: HTTP/1.1 GWA
+Via: 1.0 fred, 1.1 p.example.net
+
+ +

仕様書

+ + + + + + + + + + + + +
SpecificationTitle
{{RFC("7230", "Via", "5.7.1")}}Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing
+ +

ブラウザの互換

+ + + +

{{Compat("http.headers.Via")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +
+

メモ: Warning ヘッダーはまもなく非推奨になる予定です。詳しくは Warning (https://github.com/httpwg/http-core/issues/139)Warning: header & stale-while-revalidate (https://github.com/whatwg/fetch/issues/913) をご覧ください。

+
+ +

Warning は HTTP の一般ヘッダーで、可能性のある問題についてメッセージのステータスによる情報を含みます。一つのレスポンスに複数の Warning ヘッダーが含まれる可能性があります。

+ +

Warning ヘッダーフィールドは一般的にあらゆるメッセージに適用できますが、一部の警告コードはキャッシュ専用であり、レスポンスメッセージのみに適用することができます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("General header", "一般ヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
Warning: <warn-code> <warn-agent> <warn-text> [<warn-date>]
+
+ +

ディレクティブ

+ +
+
<warn-code>
+
3桁の警告番号です。最初の桁は、検証後にレスポンスを格納する際に Warning を削除する必要があるかどうかを示します。 +
    +
  • 1xx の警告コードは、新鮮さやレスポンスの検証ステータスを表し、キャッシュされる際に削除されます。
  • +
  • +

    2xx の警告コードは、検証によって修正されない表現のいくつかの側面を説明しており、レスポンス全体が送信されない限り、検証後もキャッシュによって削除されないことを表します。

    +
  • +
+
+
<warn-agent>
+
+

Warning ヘッダーを追加するサーバーやソフトウェアの名前または仮名です (エージェントが不明な場合は "-" になることがあります)。

+
+
<warn-text>
+
エラーを説明する助言のテキストです。
+
<warn-date>
+
任意。複数の Warning ヘッダーが送信される場合は、 {{HTTPHeader("Date")}} ヘッダーと一致する日付を入れてください。
+
+ +

警告コード

+ +

HTTP Warn Codes registry at iana.org では、警告コードの名前空間を定義しています。

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
コードテキスト説明
110Response is Staleキャッシュによって提供されたレスポンスが古くなっている (有効期限が切れている)。
111Revalidation Failedサーバーへ到達できなかったため、レスポンスの検証をしようとして失敗した。
112Disconnected Operationキャッシュがネットワークの他の部分から切断された。
113Heuristic Expirationキャッシュが24時間より長い保持時間を選択しており、かつレスポンスの時間が24時間よりも長い場合。
199Miscellaneous Warning任意で特定されていない警告
214Transformation Appliedコンテンツのエンコーディング、メディア種別など、表現方法の変換を行った場合にプロキシが追加します。
299Miscellaneous Persistent Warning199 と同様だが、永続的な警告を含む場合
+ +

+ +
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"
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書題名
{{RFC("7234", "Warning", "5.5")}}Hypertext Transfer Protocol (HTTP/1.1): Caching
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.Warning")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の WWW-Authenticate 応答ヘッダーは、リソースへのアクセス権を得るために使われる認証方法を定義します。

+ +

WWW-Authenticate ヘッダーは {{HTTPStatus("401")}} Unauthorized 応答と共に送られます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "応答ヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
WWW-Authenticate: <type> realm=<realm>
+
+ +

ディレクティブ

+ +
+
<type>
+
認証の種類。一般的には "Basic" です。 IANA は 認証方式の一覧を管理しています。
+
realm=<realm>
+
保護領域の説明です。 realm が指定されていない場合は、クライアントはよく書式化されたホスト名を代わりに表示します。
+
charset=<charset>
+
ユーザー名とパスワードを送信するときのサーバーが推奨するエンコーディング方式をクライアントに伝えます。大文字小文字の区別なしの文字列 "UTF-8" だけが許可されています。これは realm 文字列のエンコーディングとは関係がありません。
+
+ +

+ +

通常、 WWW-Authenticate ヘッダーを含むサーバーの応答は以下のようなものです。

+ +
WWW-Authenticate: Basic
+
+WWW-Authenticate: Basic realm="Access to the staging site", charset="UTF-8"
+
+ +

Apache や nginx サーバーで HTTP Basic 認証を使用してサイトを保護する方法の例については、 HTTP 認証 を参照してください。

+ +

仕様書

+ + + + + + + + + + + + + + + + + + +
仕様書題名
{{RFC("7235", "WWW-Authenticate", "4.1")}}HTTP/1.1: Authentication
{{RFC("7617")}}The 'Basic' HTTP Authentication Scheme
+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.WWW-Authenticate")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

X-Content-Type-Options は HTTP のレスポンスヘッダーで、 {{HTTPHeader("Content-Type")}} ヘッダーで示された MIME タイプを変更せずに従うべきであることを示すために、サーバーによって使用されるマーカーです。これにより、MIME タイプのスニッフィングを抑止することができます。すなわち、ウェブマスターが自分が何をしているかを分かっていると言う手段です。

+ +

このヘッダーは、コンテンツのスニッフィングにより、実行不可能な MIME タイプを実行可能な MIME タイプに変換してしまうという事故をウェブマスターが抑止するための方法として、マイクロソフトが IE 8 で導入したものです。それ以来、他のブラウザーは MIME スニッフィングのアルゴリズムがそれほど積極的ではなくても、このヘッダーを導入してきました。

+ +

Firefox 72 から、 {{HTTPHeader("Content-type")}} が提供されている場合、 MIME スニッフィングの抑止が最上位の文書にも適用されるようになりました。これにより、 HTML のウェブページが text/html 以外の MIME タイプで提供されている場合、表示される代わりにダウンロードされることがあります。両方のヘッダーを正しく設定してください。

+ +

サイトのセキュリティテスターは通常、このヘッダーが設定されていることを期待しています。

+ +

注: X-Content-Type-Options は、 nosniff によるリクエストブロッキングリクエスト先が "script" と "style" の場合のみ適用します。しかし、 Cross-Origin Read Blocking (CORB) 保護を HTML, TXT, JSON, XML の各ファイル (SVG image/svg+xml を除く) に対して有効にすることもできます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
X-Content-Type-Options: nosniff
+
+ +

ディレクティブ

+ +
+
nosniff
+
リクエスト先のタイプが以下の場合、リクエストをブロックします。 + +
+
Cross-Origin Read Blocking (CORB) 保護を次の MIME タイプに対して有効にします。 +
    +
  • text/html
  • +
  • text/plain
  • +
  • text/json, application/json またはその他の JSON 拡張を伴うタイプ: */*+json
  • +
  • text/xml, application/xml またはその他の XML 拡張を伴うタイプ: */*+xml (image/svg+xml を除く)
  • +
+
+
+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName("Fetch", "#x-content-type-options-header", "X-Content-Type-Options definition")}}{{Spec2("Fetch")}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.X-Content-Type-Options")}}

+ +

ブラウザー固有の注意事項

+ + + +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

X-DNS-Prefetch-Control は HTTP のレスポンスヘッダーで、 DNS 先読み、つまりユーザーが進むことができるリンクと、画像、 CSS、 JavaScript などの文書から参照される項目の両方で、ブラウザーが事前にドメイン名の解決を実行する機能を制御します。

+ +

この先読みはバックグラウンドで行われるので、参照されている項目が必要になった時に {{glossary("DNS")}} が解決されている可能性が高くなります。これによって、ユーザーがリンクをクリックしたときに遅延が短縮されます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
X-DNS-Prefetch-Control: on
+X-DNS-Prefetch-Control: off
+
+ +

ディレクティブ

+ +
+
on
+
DNS 先読みを有効にします。この機能に対応しているブラウザーは、このヘッダーが存在しない場合はこの動作をします。
+
off
+
DNS 先読みを無効にします。これはページのリンクを制御しない場合や、ドメインに情報漏洩させたくないと分かる場合に有用です。
+
+ +

解説

+ +

DNS リクエストは帯域で見ればとても小さいものですが、遅延は、特にモバイルネットワークではとても大きいものです。 DNS の先読みを投機的に行うと、ユーザーがリンクをクリックするときなど特定の場面の遅延を著しく短縮することができます。場合によっては、遅延を秒単位で短縮することができます。

+ +

ブラウザーによってはこの先読みの実装で、ドメイン名の解決が実際のページのコンテンツの読み込みと (直後ではなく) 並列で行うことができます。これを行うことで、遅延の大きい名前解決プロセスがコンテンツの読み込みを遅らせないようにします。

+ +

ページの読み込み時間は – 特にモバイルネットワークにおいては – この方法で著しく改善できます。画像のドメイン名がリクエストに先立って解決できれば、多数の画像を読み込むページの読み込み時間に 5% 以上の改善が見られることがあります。

+ +

ブラウザーの先読みの構成

+ +

一般に、先読みを管理することを考える必要はありません。しかし、ユーザーは先読みを無効にしたいと思うかもしれません。 Firefox では、設定の network.dns.disablePrefetchtrue にすることで実現できます。

+ +

また、既定では、埋め込みリンクのホスト名の先読みは {{glossary("HTTPS")}} で読み込まれた文書では実行されません。 Firefox では、設定の network.dns.disablePrefetchFromHTTPSfalse に設定することでこれを変更することができます。

+ +

+ +

先読みの有効化と無効化

+ +

次のように、サーバー側から X-DNS-Prefetch-Control ヘッダーを送信するか、個別の文書で {{ htmlattrxref("http-equiv", "meta") }} 属性を {{ HTMLElement("meta") }} 要素に設定します。

+ +
<meta http-equiv="x-dns-prefetch-control" content="off">
+
+ +

逆の設定をするには content を "on" にしてください。

+ +

特定のホスト名の参照の強制

+ +

リンク種別dns-prefetch にした {{ HTMLElement("link") }} 要素に {{ htmlattrxref("rel","link") }} 属性を使用することで、そのホスト名を使用した特定のアンカーを提供せずに、特定のホスト名を強制的に検索することができます。

+ +
<link rel="dns-prefetch" href="https://www.mozilla.org/contribute/">
+
+ +

この例では、 "www.mozilla.org/contribute" というドメイン名が事前に解決されます。

+ +

同様に、 link 要素は完全な URL を提供せずにホスト名を解決するために使用することができますが、ホスト名の前に2つのスラッシュを付けた場合だけです。

+ +
<link rel="dns-prefetch" href="//www.mozilla.org/contribute/">
+
+ +

ホスト名の強制的な先読みは、例えば、あるサイトのホームページ自体では使用されていないにもかかわらず、サイト全体で頻繁に参照されるドメイン名を強制的に事前解決するために有用かもしれません。これは、ホームページの性能には影響しないかもしれませんが、サイトの全体的なパフォーマンスを向上させます。

+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.X-DNS-Prefetch-Control")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

X-Forwarded-For (XFF) ヘッダーは、 HTTP プロキシ又はロードバランサーを通過してウェブサーバーへ接続したクライアントの、送信元 IP アドレスを特定するために事実上の標準となっているヘッダーです。クライアントとサーバーとの間でトラフィックに何かが介在すると、サーバーのアクセスログにはプロキシ又はロードバランサーのアドレスしか残りません。クライアントの元 IP アドレスを記録するために、 X-Forwarded-For 要求ヘッダーが使用されます。

+ +

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

+ +

標準化されたヘッダーは HTTP {{HTTPHeader("Forwarded")}} ヘッダーです。

+ +

X-Forwarded-For は、電子メールメッセージが他のアカウントから転送されたことを示す電子メールヘッダーとしても使われます。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "要求ヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
X-Forwarded-For: <client>, <proxy1>, <proxy2>
+
+ +

ディレクティブ

+ +
+
<client>
+
クライアントの IP アドレス
+
<proxy1>, <proxy2>
+
要求が複数のプロキシを通して行われる場合、それぞれの通過するプロキシの IP アドレスが書き出されます。つまり、最も右の IP アドレスが最も後のプロキシであり、最も左の IP アドレスが元のクライアントの IP アドレスです。
+
+ +

+ +
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
+
+ +

そのほかの標準外の形式:

+ +
# いくつかの Google サービスで使用された
+X-ProxyUser-Ip: 203.0.113.19
+ +

仕様書

+ +

現時点で、仕様書の一部ではありません。このヘッダーの標準化版は {{HTTPHeader("Forwarded")}} ヘッダーです。

+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.X-Forwarded-For")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

X-Forwarded-Host (XFH) ヘッダーは、 HTTP の {{HTTPHeader("Host")}} リクエストヘッダー内でクライアントから要求された元のホストを特定するための事実上の標準となっているヘッダーです。

+ +

リバースプロキシ (ロードバランサー、 CDN) のホスト名とポート番号は、リクエストを扱う元のサーバーとは異なってもよく、この場合はもともと使用されていたのがどのホストであるかを特定するのに X-Forwarded-Host ヘッダーが便利です。

+ +

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

+ +

標準化されたヘッダーは HTTP {{HTTPHeader("Forwarded")}} ヘッダーです。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
X-Forwarded-Host: <host>
+
+ +

ディレクティブ

+ +
+
<host>
+
転送されたサーバーのドメイン名
+
+ +

+ +
X-Forwarded-Host: id42.example-cdn.com
+
+ +

仕様書

+ +

現時点で、仕様書の一部ではありません。このヘッダーの標準化版は {{HTTPHeader("Forwarded")}} ヘッダーです。

+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.X-Forwarded-Host")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

X-Forwarded-Proto (XFP) ヘッダーは、プロキシまたはロードバランサーへ接続するのに使っていたクライアントのプロトコル (HTTP または HTTPS) を特定するために事実上の標準となっているヘッダーです。サーバーのアクセスログにはサーバーとロードバランサーの間で使われたプロトコルが含まれていますが、クライアントとロードバランサーの間で使用されたプロトコルは含まれていません。クライアントとロードバランサーの間で使用されたプロトコルを特定するには、 X-Forwarded-Proto リクエストヘッダーを使用することができます。

+ +

標準化されたヘッダーは HTTP {{HTTPHeader("Forwarded")}} ヘッダーです。

+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Request header", "リクエストヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
X-Forwarded-Proto: <protocol>
+
+ +

ディレクティブ

+ +
+
<protocol>
+
転送されたプロトコル (http または https).
+
+ +

+ +
X-Forwarded-Proto: https
+ +

その他の標準外の形式:

+ +
# Microsoft
+Front-End-Https: on
+
+X-Forwarded-Protocol: https
+X-Forwarded-Ssl: on
+X-Url-Scheme: https
+
+ +

仕様書

+ +

現時点で、仕様書の一部ではありません。このヘッダーの標準化版は {{HTTPHeader("Forwarded")}} ヘッダーです。

+ +

ブラウザーの対応

+ + + +

{{Compat("http.headers.X-Forwarded-Proto")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

X-Frame-OptionsHTTP のレスポンスヘッダーで、ブラウザーがページを {{HTMLElement("frame")}}, {{HTMLElement("iframe")}}, {{HTMLElement("embed")}}, {{HTMLElement("object")}} の中に表示することを許可するかどうかを示すために使用されます。サイトはコンテンツが他のサイトに埋め込まれないよう保証することで、{{interwiki("wikipedia", "クリックジャッキング")}}攻撃を防ぐために使用することができます。

+ +

強化されたセキュリティは、ユーザーが X-Frame-Options に対応したブラウザーを使用して文書にアクセスした場合のみ提供されます。

+ +
+

Note: {{HTTPHeader("Content-Security-Policy")}} ヘッダーには frame-ancestors ディレクティブがあり、対応しているブラウザーにおいてこのヘッダーを置き換えています。

+
+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +

X-Frame-Options には二つの有効なディレクティブがあります。

+ +
X-Frame-Options: DENY
+X-Frame-Options: SAMEORIGIN
+
+ +

ディレクティブ

+ +

DENY を指定した場合は、他のサイトからフレームにページを読み込もうとした時に失敗するだけでなく、同じサイトから読み込もうとした時にも失敗します。一方、 SAMEORIGIN を指定した場合は、フレームの中のページを含むサイトが、ページを提供しているサイトと同じである限り、フレーム内でページを利用することができます。

+ +
+
DENY
+
サイト側の意図に関わらず、ページをフレーム内に表示することはできません。
+
SAMEORIGIN
+
ページは、ページ自体と同じオリジンのフレーム内でのみ表示されます。仕様書ではこのオプションを最上位、親、チェーン全体のどれに適用するかをブラウザーベンダーに任せていますが、すべての生成元が同じオリジンでない限り、利用価値がないと議論されています。 ({{bug(725490)}} を参照)。対応の詳細は{{anch("Browser compatibility", "ブラウザーの互換性")}}もご覧ください。
+
ALLOW-FROM uri (廃止)
+
これは廃止されたディレクティブであり、最近のブラウザーでは動作しません。使用しないでください。対応している古いブラウザーでは、ページは指定されたオリジン uri のフレーム内でのみ表示されます。なお、従来の Firefox では SAMEORIGIN と同じ問題がありました。 — フレームの生成元が同じオリジンであるかどうかをチェックしません。 {{HTTPHeader("Content-Security-Policy")}} ヘッダーには frame-ancestors ディレクティブがあり、代わりにこれを使用することができます。
+
+ +

+ +
+

メモ: meta タグに設定しても意味がありません。例えば、 <meta http-equiv="X-Frame-Options" content="deny"> は効果がありません。使用しないでください。以下の例にあるように、 X-Frame-Options は HTTP ヘッダーを通じて設定された場合のみ動作します。

+
+ +

Apache の設定

+ +

Apache で X-Frame-Options ヘッダをすべてのページで送信するように設定するには、サイトの設定に以下の記述を追加してください。

+ +
Header always set X-Frame-Options "SAMEORIGIN"
+
+ +

Apache で X-Frame-Options を DENY に設定するには、サイトの設定に以下の記述を追加してください

+ +
Header set X-Frame-Options "DENY"
+
+ +

nginx の設定

+ +

nginx で X-Frame-Options ヘッダーを送信するように設定するには、以下の記述を http、server、 location のいずれかの設定に追加してください。

+ +
add_header X-Frame-Options SAMEORIGIN always;
+
+ +

IIS の設定

+ +

IIS で X-Frame-Options ヘッダーを送信するように設定するには、サイトの Web.config ファイルに以下の設定を追加してください。

+ +
<system.webServer>
+  ...
+
+  <httpProtocol>
+    <customHeaders>
+      <add name="X-Frame-Options" value="SAMEORIGIN" />
+    </customHeaders>
+  </httpProtocol>
+
+  ...
+</system.webServer>
+
+ +

HAProxy の設定

+ +

HAProxy で X-Frame-Options ヘッダーを送信するように設定するには、以下の記述を front-end、listen、backend のいずれかの設定に追加してください。

+ +
rspadd X-Frame-Options:\ SAMEORIGIN
+
+ +

他にも、より新しいバージョンでは次のような設定ができます。

+ +
http-response set-header X-Frame-Options SAMEORIGIN
+
+ +

Express の設定

+ +

Express で X-Frame-Options ヘッダーを送信するように設定するには、 helmet を使用して frameguard でヘッダーを設定します。以下の記述をサーバー設定に追加してください。

+ +
const helmet = require('helmet');
+const app = express();
+app.use(helmet.frameguard({ action: 'SAMEORIGIN' }));
+
+ +

他にも、直接 frameguard を使用することもできます。

+ +
const frameguard = require('frameguard')
+app.use(frameguard({ action: 'SAMEORIGIN' }))
+
+ +

仕様書

+ + + + + + + + + + + + + + +
仕様書題名
{{RFC("7034")}}HTTP Header Field X-Frame-Options
+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.X-Frame-Options")}}

+ +

関連情報

+ + 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 +--- +
{{HTTPSidebar}}
+ +

HTTP の X-XSS-Protection レスポンスヘッダーは Internet Explorer, Chrome, Safari の機能で、反射型クロスサイトスクリプティング ({{Glossary("XSS")}}) 攻撃を検出したときに、ページの読み込みを停止するためのものです。強い {{HTTPHeader("Content-Security-Policy")}} をサイトが実装して、インライン JavaScript の使用を無効にしていれば ('unsafe-inline')、現在のブラウザーではこれらの防御は大枠で不要なものですが、まだ {{Glossary("CSP")}} に対応していない古いウェブブラウザーを使用しているユーザーには防御になります。

+ +
+ + +

つまり、レガシーブラウザをサポートする必要がない場合は、代わりに Content-Security-Policy を使用し unsafe-inline を許可しないことをお勧めします。

+
+ + + + + + + + + + + + +
ヘッダー種別{{Glossary("Response header", "レスポンスヘッダー")}}
{{Glossary("Forbidden header name", "禁止ヘッダー名")}}いいえ
+ +

構文

+ +
X-XSS-Protection: 0
+X-XSS-Protection: 1
+X-XSS-Protection: 1; mode=block
+X-XSS-Protection: 1; report=<reporting-uri>
+
+ +
+
0
+
XSS フィルタリングを無効化します。
+
1
+
XSS フィルタリングを有効化します (通常はブラウザーの既定値です)。クロスサイトスクリプティング攻撃を検知すると、ブラウザーはページをサニタイズします (安全でない部分を取り除きます)。
+
1; mode=block
+
XSS フィルタリングを有効化します。攻撃を検知すると、ページをサニタイジングするよりも、ページのレンダリングを停止します。
+
1; report=<reporting-URI> (Chromium only)
+
XSS フィルタリングを有効化します。クロスサイトスクリプティング攻撃を検知すると、ブラウザーはページをサニタイズし、攻撃レポートを作成します。レポートを送信するために、 CSP {{CSP("report-uri")}} ディレクティブ機能を利用します。
+
+ +

+ +

XSS 攻撃が反映されたページを見つけたらその読み込みをブロックする場合。

+ +
X-XSS-Protection: 1; mode=block
+ +

PHP

+ +
header("X-XSS-Protection: 1; mode=block");
+ +

Apache (.htaccess)

+ +
<IfModule mod_headers.c>
+  Header set X-XSS-Protection "1; mode=block"
+</IfModule>
+ +

Nginx

+ +
add_header "X-XSS-Protection" "1; mode=block";
+ +

仕様書

+ +

仕様書や草案で定義されたものではありません。

+ +

ブラウザーの互換性

+ + + +

{{Compat("http.headers.X-XSS-Protection")}}

+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf