什么是Authentication?
首先解释两个长的很像、容易混淆的单词,Authentication(鉴定、认证)和Authorization(授权)。
Authentication就是要证明你是谁。举个例子,你告诉别人你的名字叫Alice,怎么样让别人确信你就是Alice,这就是Authentication。
Authorization则是当别人已经相信是你以后,你是不是被允不允许做做某件事儿。比如,当你已经证明了你就是Alice了,你可以查你自己的信用卡刷卡记录,但不能查Bob的刷卡记录,这就是Authorization(当然,如果Alice是Bob的老婆这种情况除外)。
这篇博客就主要看看HTTP Authentication到底是怎么回事。然后两种常见的Authentication机制:HTTP Basic和Digest。
HTTP Basic
顾名思义,HTTP Basic指的就是最简单的Authentication协议。简单到什么份儿上呢?直接方式告诉服务器你的用户名(username)和密码(password)。这里假设我们的用户名是Alice,密码是123456。
我们使用curl访问服务器
curl -u Alice:123456 http://kiwiserver.com/secret -v
request头部:
GET /secret HTTP/1.1
Authorization: Basic QWxpY2U6MTIz