我是Restful API概念的新手。
我正在为网上商店设计一个安静的api。
我没有正确理解基于ssl的基本http身份验证的概念。
这是否意味着,对于每个请求,用户都必须再次输入他/她的用户名和密码?
有人可以详细解释它的功能如何以及如何使用它?
提前致谢。
答案 0 :(得分:70)
基本身份验证只是一个标准的HTTP标头,用户和pass以base64编码:
授权:基本QWxhZGRpbjpvcGVuIHNlc2FtZQ ==
(http://en.wikipedia.org/wiki/Basic_access_authentication)。如果您通过此标头通过非ssl连接验证您的其余API调用,则问题是中间的任何人都可以从您的身份验证标头中解码您的用户名和密码。
要确保您的密码是安全发送的,而不是普通的HTTP连接,您必须使用HTTPS。 HTTP和HTTPS之间的唯一区别是HTTPS使用TCP / IP上的SSL / TSL安全协议而不是普通的TCP / IP。
现在这有一个缺点,就是在cpu上建立HTTPS连接比普通HTTP连接更昂贵。 很明显,如果您想使用此标头对每个请求进行其余调用的身份验证,则应使您的其余API仅适用于HTTPS连接。