HTTP标头使用非英文字符

时间:2015-11-24 11:46:02

标签: rest http

我正在使用高级REST客户端应用程序(Chrome插件)使用HTTP标头执行身份验证,它可以正常运行。

X-Username: member
X-Password: abc123

但是,当我尝试使用非英语用户名时

X-Username: 阿里巴巴
X-Password: abc123

我收到以下错误

Unable set request header: X-Username: 阿里巴巴

如果可能,如何设置请求标头以使用中文字符?

1 个答案:

答案 0 :(得分:1)

根据规范RFC 7230(HTTP 1.1):

  

历史上,HTTP允许字段内容包含文本      ISO-8859-1 charset [ISO-8859-1],仅支持其他字符集      通过使用[RFC2047]编码。在实践中,大多数HTTP标头      字段值仅使用US-ASCII字符集[USASCII]的子集。      新定义的标题字段应该将其字段值限制为      US-ASCII八位字节。收件人应该在字段中处理其他八位字节      内容(obs-text)为不透明数据。

也就是说,凭证有一个标准的HTTP标头,Authorization。您可以使用基本身份验证,其内容将使用base64编码:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Basic之后的值是字符串username:password的编码值。有关此类机制的更多详细信息,请参阅以下链接:https://en.wikipedia.org/wiki/Basic_access_authentication

有关详细信息,请参阅此答案:What encoding should I use for HTTP Basic Authentication?

希望它可以帮到你, 亨利