Accept-Charset
Accept-Charset
は HTTP のリクエストヘッダーで、クライアントが理解できる文字エンコーディングを広報します。コンテンツネゴシエーションを使用して、サーバーは提案の 1 つを選択、使用し、クライアントに選択結果を Content-Type
レスポンスヘッダー内、ふつうは charset=
引数の中で通知します。通常はそれぞれのリソースの既定値が正しく、これを送信するとフィンガープリンティングを許してしまうことがあるため、ブラウザーは通常、このヘッダーを設定しません。
サーバーが一致する文字エンコーディングを提供できない場合、理論的には 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 以降は送信しなくなりました。
構文
Accept-Charset: <charset> // 複数の型を品質値で重みづけした構文 Accept-Charset: utf-8, iso-8859-1;q=0.5
ディレクティブ
<charset>
-
utf-8
またはiso-8859-15
のような文字セット。 *
-
ヘッダー内の他の場所に記述されていない文字セット。
'*'
はワイルドカードとして使用されます。 ;q=<weight>
-
エンコーディングはすべて、重みと呼ばれる相対的な品質値を使用して表現された設定の順番で配置されます。
例
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, セクション 5.3.3: Accept-Charset | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context |
ブラウザーの互換性
関連情報
- HTTP のコンテンツネゴシエーション
- Accept-Charset is no more
- コンテンツネゴシエーションの結果を含むヘッダー:
Content-Type
- 他の同様のヘッダー:
TE
,Accept-Encoding
,Accept-Language
,Accept