我是 RESTful API 概念的新手。
我正在为在线商店设计 RESTful API。
我没有正确理解基于 SSL 的基本 HTTP 身份验证的概念。
这是否意味着对于每个请求,用户都必须再次输入他/她的用户名和密码?
有人可以详细解释它的功能和用途吗?
最佳答案
基本身份验证只是一个带有用户的标准 HTTP header ,并以 base64 编码传递:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
( http://en.wikipedia.org/wiki/Basic_access_authentication )。如果您通过非 ssl 连接通过此 header 验证您的其余 API 调用,问题是中间的任何人都可以从您的 auth header 解码您的用户名和密码。
为确保您的密码安全发送,您必须使用 HTTPS 而不是普通的 HTTP 连接。 HTTP 和 HTTPS 之间的唯一区别是 HTTPS 使用基于 TCP/IP 的 SSL/TSL 安全协议(protocol),而不是普通的 TCP/IP。
现在这有一个缺点,即建立 HTTPS 连接比普通 HTTP 连接在 cpu 上的开销更大。 很明显,如果您想要使用此 header 对每个请求的 rest 调用进行身份验证,您应该使您的 rest API 仅可用于 HTTPS 连接。
关于REST API 通过 SSL 的 HTTP 基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19332821/