http 认证
http basic
- 把
username
和password
做成username:password
的样子(用冒号分隔) - 进行Base64编码。
Base64("username:password")
得到一个字符串(如:把haoel:coolshell
进行base64 后可以得到aGFvZW86Y29vbHNoZWxsCg
) - 把
aGFvZW86Y29vbHNoZWxsCg
放到HTTP头中Authorization
字段中,形成Authorization: Basic aGFvZW86Y29vbHNoZWxsCg
,然后发送到服务端。 - 服务端如果没有在头里看到认证字段,则返回401错,以及一个个
WWW-Authenticate: Basic Realm='HelloWorld'
之类的头要求客户端进行认证。之后如果没有认证通过,则返回一个401错。如果服务端认证通过,那么会返回200。
我们可以看到,使用Base64的目的无非就是为了把一些特殊的字符给搞掉,这样就可以放在HTTP协议里传输了。而这种方式的问题最大的问题就是把用户名和口令放在网络上传,所以,一般要配合TLS/SSL的安全加密方式来使用。我们可以看到 JIRA Cloud 的API认证支持HTTP Basic 这样的方式。
Reference
- 原文作者:nepp
- 原文链接:https://nepp-an.github.io/post/http%E8%AE%A4%E8%AF%81/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。