Accept-Charset
Accept-Charset
请求的 HTTP 标头通告的字符集客户端能够理解。使用内容协商,服务器然后选择一个提议,使用它并在Content-Type
响应头中通知客户它选择的内容。浏览器通常不会将此标题设置为每个内容类型的默认值,通常这是正确的,并且传输它将允许更容易的指纹识别。
如果服务器不能提供任何匹配的字符集,理论上可以发回一个406
(不可接受的)错误代码。但是,为了更好的用户体验,这种情况很少发生,Accept-Charset
在这种情况下更常见的方式是忽略 header 。
在早期版本的 HTTP / 1.1 中,ISO-8859-1
定义了一个默认的 charset()。现在不是这种情况,现在每种内容类型都可以有其自己的默认值。
Header type | Request header |
---|---|
Forbidden header name | yes |
语法
Accept-Charset: <charset>// Multiple types, weighted with the quality value syntax:Accept-Charset: utf-8, iso-8859-1;q=0.5
指令
<charset>
像utf-8
或iso-8859-15.*
的一个字符集。Header 中没有提到的任何字符集;
'*'
被用作通配符。
;q=
(q因子权重)任何值都按照称为权重的相对质量值的优先顺序排列。
例子
Accept-Charset: iso-8859-1Accept-Charset: utf-8, iso-8859-1;q=0.5Accept-Language: utf-8, iso-8859-1;q=0.5, *;q=0.1
规范
Specification | Title |
---|---|
RFC 7231, section 5.3.3: Accept-Charset | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context |
浏览器兼容性
Feature | Chrome | Firefox | Edge | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |