识别,认证与安全
第三部分的4章提供了一系列的技术和机器,可用来跟踪身份,进行安全性检测,控制对内容的访问。
客户端识别与cookie机制 第十一章
HTTP最初是一个匿名,无状态的请求/响应协议。服务器处理来自客户端的请求,然后向客户端回送一条响应。web服务器几乎没有什么信息可以用来判定是哪个用户发送的请求,也无法记录来访用户的请求序列。
用户识别机制
- 承载用户身份信息的HTTP首部
- 客户端IP地址跟踪,通过用户的IP地址对其进行识别
- 用户登录,用认证方式来识别用户
- 胖URL,一种在URL中嵌入识别信息的技术
- cookie,一种功能强大且高效的持久身份识别技术
HTTP首部
下表给出了7种常见的用来承载用户相关信息的HTTP请求首部。后面3个首部是扩展类型的请求首部。
首部名称 | 描述 |
---|---|
From | 用户的E-mail地址 |
User-Agent | 用户的浏览器软件 |
Referer | 用户是从这个页面上依照链接跳转过来的 |
Authorization | 用户名和密码 |
Client-IP | 客户端的IP地址 |
X-Forwarded-For | 客户端的IP地址 |
Cookie | 服务器产生的ID标签 |
用户登录
为了使web站点的登录更加简便,HTTP中包含了一种内建机制,可以用WWW-Authenticate
首部和Authorization
首部向web站点传送用户的相关信息。一旦登录,浏览器就可以不断地在每条发往这个站点的请求中发送这个登录信息了。
缺点:保密性不强,不能跨站点,不同的站点需要重新输入账户密码。
胖URL
可以通过胖URL将服务器上若干个独立的HTTP事务捆绑成一个”会话”或”访问”。用户首次访问这个web站点时,会生成一个唯一的ID,用服务器可以识别的方式将这个ID添加到URL中,然后服务器就会将客户端重新导向这个胖URL。
问题:
- 丑陋的URL
- 无法共享URL
- 破坏缓存
- 额外的服务器负荷
- 逃逸口
- 在会话间是非持久的
cookie
cookie是当前识别用户,实现持久会话的最好方式。最初由网景公司开发,但现在所有的主要浏览器都支持他。