Accept-Charset
请求头用来告知(服务器)客户端可以处理的字符集类型。 借助内容协商机制,服务器可以从诸多备选项中选择一项进行应用, 并使用Content-Type
应答头通知客户端它的选择。浏览器通常不会设置此项值,因为每种内容类型的默认值通常都是正确的,但是发送它会更有利于识别。
如果服务器不能提供任何可以匹配的字符集的版本,那么理论上来说应该返回一个 406
(Not Acceptable,不被接受)的错误码。但是为了更好的用户体验,这种方法很少采用,取而代之的是将其忽略。
在早期版本的HTTP/1.1协议中,规定了一个默认的字符集(ISO-8859-1)。但是现在情况不同了,目前每一种内容类型都有自己的默认字符集。
Header type | Request header |
---|---|
Forbidden header name | yes |
句法
Accept-Charset: <charset> // Multiple types, weighted with the quality value syntax: Accept-Language: utf-8, iso-8859-1;q=0.5
指令
<charset>
诸如 utf-8
或iso-8859-15的字符集。
*
在这个消息头中未提及的任意其他字符集;'*'
用来表示通配符。;q=
(q-factor weighting)- 值代表优先顺序,用相对质量价值表示,又称为权重。
例子
Accept-Charset: iso-8859-1 Accept-Charset: utf-8, iso-8859-1;q=0.5 Accept-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 |
浏览器兼容性
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
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) |
参见
- HTTP 内容协商机制
- 用来表示内容协商结果的消息头:
Content-Type
- 其他类似消息头:
TE
,Accept-Encoding
,Accept-Language
,Accept