📜  HTTP 标头 |接受字符集

📅  最后修改于: 2022-05-13 01:56:36.289000             🧑  作者: Mango

HTTP 标头 |接受字符集

HTTP Accept-Charset是一个请求类型标头。此标头用于指示服务器响应可接受的字符集。 accept-charset 标头指定客户端接受的字符编码,此标头还允许用户代理指定它支持的字符集。
内容协商的帮助下,它选择编码类型,然后使用它通过 Content-Type 响应标头通知客户端其选择,该响应标头通常出现在charset= parameter.我们的 Web 浏览器通常不发送此标头,因为传输它会允许指纹识别,并且每个资源的默认值通常是正确的。如果此 Header 不存在,则用户代理必须为其接受的每个 text/* 媒体类型指定每个字符集参数,例如

Accept: text/html;charset=US-ASCII, text/html;charset=UTF-8, text/plain;
charset=US-ASCII,text/plain;charset=UTF-8

注意:当服务器无法从该请求中提供任何字符编码时,它将返回一个406 Not Acceptable错误代码,以避免这种情况并在不存在 Accept-Charset 标头时提供更好的用户体验,默认为任何字符集是可以接受的。

句法:

  • 这是单个字符集。
    Accept-Charset: 
  • 此语法用于选择具有质量值的多个字符集。
    Accept-Charset: ,   ;q= 

指令:此标头接受三个如上所述和如下所述的指令:

  • 该指令保存 charset 类型,任何字符编码名称,如 UTF-32 、UTF-16 或 iso-8859-15。
  • *:此指令用作标题中任何地方未提及的任何字符的通配符。

注意:这个;q=定义了因子权重,值按使用相对质量值表示的优先顺序排列。

例子:

  • 在此示例中,单个值位于 Accept-Charset 标头上
    Accept-Charset: iso-8859-5
  • 在此示例中,双精度值是 Accept-Charset 标头
    Accept-Charset: utf-8, iso-8859-1;q=0.7
  • 在此示例中,双精度值是 Accept-Charset 标头,第二个使用“*”通配符选择所有编码
    Accept-Charset: utf-8, iso-8859-1;q=0.7, *;q=0.9

支持的浏览器:浏览器与HTTP Accept-Charset 标头不兼容。