开放平台这个话题其实很大,涉及到多方面,比如平台搭建、安全、流量控制与计费、服务端性能优化等;这次QCon会议中,人人网介绍了开放平台授权与验证,飞信介绍了资源分配与控制策略,淘宝介绍了Web请求异步化处理,腾讯介绍了Open API的设计;下面是我之后的一些总结;
1、授权与验证
还是拿网上最流行的例子吧,网站A提供图片存储服务,网站B提供在线打印服务;现在用户想使用网站B提供的在线打印功能打印存储在网站A上的图片,怎么办呢?通常有两种做法:
- 用户先从网站A把要打印的图片下载到本地,然后再上传到网站B,最后通过网站B完成打印;
- 用户从网站B上直接访问存储在网站A上的图片,然后打印;
两种做法对比一下,显然是第二种用户体验更好,但有更多的问题需要解决:
- 网站B如何访问用户存储在网站A上的图片,即如何访问网站A提供的服务?
- 网站A如何保证用户数据的安全性?如防止用户1去打印用户2的图片?
直接进入主题吧,关于安全性,即授权与验证,经历了三个阶段:
1) HTTP基本认证
HTTP基本认证是一种用来允许Web浏览器,或其他客户端程序在请求时提供以用户名和口令形式的凭证,详细介绍可以看维基百科上的介绍;
其大致流程是: