HTTP基本认证
桌面应用程序也通过HTTP协议跟Web服务器交互, 桌面应用程序一般不会使用cookie, 而是把 "用户名+冒号+密码"用BASE64算法加密后的字符串放在http request 中的header Authorization中发送给服务端, 这种方式叫HTTP基本认证(Basic Authentication)
我用中文简述一下http auth的过程:
· 客户端发送http请求 · 服务器发现配置了http auth,于是检查request里面有没有"Authorization"的http header · 如果有,则判断Authorization里面的内容是否在用户列表里面,Authorization header的典型数据为"Authorization: Basic cm9vdDpyb290",其中Basic表示基础认证, cm9vdDpyb290是base64编码的"root:root"字符串。 · 如果没有,或者用户密码不对,则返回http code 401页面给客户端 · 标准的http浏览器在收到401页面之后,应该弹出一个对话框让用户输入帐号密码;并在用户点确认的时候再次发出请求,这次请求里面将带上Authorization header
一次典型的访问场景是:
· 浏览器发送http请求(没有Authorization header) · 服务器端返回401页面 · 浏览器弹出认证对话框 · 用户输入帐号密码,并点确认 · 浏览器再次发出http请求(带着Authorization header)