在HTTP中,您可以在请求中指定您的客户端可以使用accept标头接受响应中的特定内容,其值为application/xml.内容类型规范允许您在内容类型中包含参数,例如charset=utf-8,表示您可以接受具有指定字符集的内容.
还有accept-charset标题,它指定客户端接受的字符编码.
如果指定了两个标头,并且accept标头包含带有charset参数的内容类型,那么服务器应该将其视为高级标头?
例如:
Accept: application/xml; q=1,
text/plain; charset=ISO-8859-1; q=0.8
Accept-Charset: UTF-8
Run Code Online (Sandbox Code Playgroud)
我已经使用Fiddler向各种服务器发送了一些示例请求来测试它们的响应方式:
例子
W3
请求
GET http://www.w3.org/ HTTP/1.1
Host: www.w3.org
Accept: text/html;charset=UTF-8
Accept-Charset: ISO-8859-1
Run Code Online (Sandbox Code Playgroud)
响应
Content-Type: text/html; charset=utf-8
Run Code Online (Sandbox Code Playgroud)
谷歌
请求
GET http://www.google.co.uk/ HTTP/1.1
Host: www.google.co.uk
Accept: text/html;charset=UTF-8
Accept-Charset: ISO-8859-1
Run Code Online (Sandbox Code Playgroud)
响应
Content-Type: text/html; charset=ISO-8859-1
Run Code Online (Sandbox Code Playgroud)
堆栈溢出
请求
GET http://stackoverflow.com/ HTTP/1.1
Host: stackoverflow.com
Accept: text/html;charset=UTF-8
Accept-Charset: ISO-8859-1
Run Code Online (Sandbox Code Playgroud)
响应
Content-Type: text/html; charset=utf-8
Run Code Online (Sandbox Code Playgroud)
微软
请求
GET http://www.microsoft.com/ HTTP/1.1
Host: www.microsoft.com
Accept: text/html;charset=UTF-8
Accept-Charset: ISO-8859-1 …Run Code Online (Sandbox Code Playgroud)