44

我对 RESTful API 的概念很陌生。

我正在为在线商店设计一个 RESTful API。

我还没有正确理解基于 SSL 的基本 HTTP 身份验证的概念。

这是否意味着对于每个请求,用户都必须再次输入他/她的用户名和密码?

有人可以详细解释它的功能以及它的用途吗?

4

1 回答 1

71

基本身份验证只是用户的标准 HTTP 标头,并以 base64 编码传递:

授权:基本QWxhZGRpbjpvcGVuIHNlc2FtZQ==

http://en.wikipedia.org/wiki/Basic_access_authentication)。如果您通过此标头通过非 ssl 连接验证您的其余 API 调用,问题是中间的任何人都可以从您的身份验证中解码您的用户名和密码标题。

为确保您的密码安全发送,您必须使用 HTTPS 而不是正常的 HTTP 连接。HTTP 和 HTTPS 之间的唯一区别是 HTTPS 在 TCP/IP 上使用 SSL/TSL 安全协议,而不是普通的 TCP/IP。

现在这有一个缺点,即在 CPU 上建立 HTTPS 连接比普通 HTTP 连接更昂贵。很明显,如果您想使用此标头对每个请求的 REST 调用进行身份验证,您应该使您的 REST API 仅可用于 HTTPS 连接。

于 2013-10-12T10:22:09.937 回答