[关闭]
@songying 2018-09-30T13:51:32.000000Z 字数 1188 阅读 1150

11. HTTP协议中的客户识别机制

HTTP


基本有以下几种用户识别机制:
1. 承载用户身份信息的HTTP首部
2. 客户端IP地址跟踪,通过用户的IP地址对其进行识别
3. 用户登录,用认证方式来识别用户
4. 胖url, 一种再URL中嵌入识别信息的技术
5. cookie: 一种功能强大且高效的持久身份识别技术

HTTP 首部

首部名称 首部类型 描述
From 请求 用户的E-mail地址
User-Agent 请求 用户的浏览器软件
Referer 请求 用户是从这个页面按照连接跳转过来的
Authorization 请求 用户名和密码
Client-IP 扩展(请求) 客户端的IP地址
X-Forwarded-For 扩展 (请求) 客户端的IP地址
Cookie 扩展 (请求) 服务器产生的ID标签

客户ip地址

使用IP地址定位用户,有以下几个缺点:
1. 客户端 IP 地址描述的是所用的机器,而不是用户。如果多个用户共享同一台计算机,就无法对其进行区分了。
2. 很多因特网服务提供商都会在用户登录时为其动态分配 IP 地址。
3. 为了提高安全性,并对稀缺的地址资源进行管理,很多用户都是通过网络地址转换(Network Address Translation,NAT)防火墙来浏览网络内容的。这些 NAT 设备隐藏了防火墙后面那些实际客户端的 IP 地址,将实际的客户端 IP 地址转换成了一个共享的防火墙 IP 地址(和不同的端口号)。
4. HTTP 代理和网关通常会打开一些新的、到原始服务器的 TCP 连接。Web 服务器看到的将是代理服务器的 IP 地址,而不是客户端的。

用户登录

为了使 Web 站点的登录更加简便,HTTP 中包含了一种内建机制,可以用 WWW-Authenticate 首部和 Authorization 首部向 Web 站点传送用户的相关信息。一 旦登录,浏览器就可以不断地在每条发往这个站点的请求中发送这个登录信息了, 这样,就总是有登录信息可用了。

上图流程如下:
1. 浏览器对站点 www.joes-hardware.com 发起了一条请求。
2. 站点并不知道这个用户的身份,因此服务器会返回 401 Login Required HTTP 响应码,并添加 WWW-Authentication 首部,要求用户登录。
这样浏览器就会弹出一个登录对话框。
3. 用户输入了用户名和密码,浏览器就会重复原来的请求。这次它会添加一个 Authorization 首部,说明用户名和密码。
4. 今后的请求要使用用户名和密码时,浏览器会自动将存储下来的值发送出去,甚至在站点没有要求发送的时候也经常会向其发送。浏览器在每次请求中都向服务器发送 Authorization首部作为一种身份的标识,这样,只要登录一次,就可以在整个会话期间维持用户的身份了。

胖url

包含了用户状态信息的 URL 被称为胖 URL。
缺点有以下几个:
1. 丑陋的 URL
2. 无法共享 URL
3. 破坏缓存
4. 额外的服务器负荷
5. 逃逸口
6. 在会话间是非持久的

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注