11.2 HTTP 首部
表 11-1 给出了七种最常见的用来承载用户相关信息的 HTTP 请求首部。这里我们先讨论前三个;后面四个首部用于更高级的识别技术,我们稍后讨论。
表11-1 承载用户相关信息的HTTP首部
首部名称 | 首部类型 | 描 述 |
---|---|---|
From | 请求 | 用户的 E-mail 地址 |
User-Agent | 请求 | 用户的浏览器软件 |
Referer | 请求 | 用户是从这个页面上依照链接跳转过来的 |
Authorization | 请求 | 用户名和密码(稍后讨论) |
Client-IP | 扩展(请求) | 客户端的 IP 地址(稍后讨论) |
X-Forwarded-For | 扩展(请求) | 客户端的 IP 地址(稍后讨论) |
Cookie | 扩展(请求) | 服务器产生的 ID 标签(稍后讨论) |
From
首部包含了用户的 E-mail 地址。每个用户都有不同的 E-mail 地址,所以在理想情况下,可以将这个地址作为可行的源端来识别用户。但由于担心那些不讲道德的服务器会搜集这些 E-mail 地址,用于垃圾邮件的散发,所以很少有浏览器会发送 From
首部。实际上,From
首部是由自动化的机器人或蜘蛛发送的,这样在出现问题时,网管还有个地方可以发送愤怒的投诉邮件。
User-Agent
首部可以将用户所用浏览器的相关信息告知服务器,包括程序的名称和版本,通常还包含操作系统的相关信息。要实现定制内容与特定的浏览器及其属性间的良好互操作时,这个首部是非常有用的,但它并没有为识别特定的用户提供太多有意义的帮助。下面是两种 User-Agent
首部,一种是网景的 Navigator 发送的,另一种是微软的 Internet Explorer 发送的:
- Navigator 6.2
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.4)
Gecko/20011128
Netscape6/6.2.1
- Internet Explorer 6.01
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Referer
首部提供了用户来源页面的 URL。Referer
首部自身并不能完全标识用户,但它确实说明了用户之前访问过哪个页面。通过它可以更好地理解用户的浏览行为,以及用户的兴趣所在。比如,如果你是从一个篮球网站抵达某个 Web 服务器的,这个服务器可能会推断你是个篮球迷。
From
、User-Agent
和 Referer
首部都不足以实现可靠的识别。后面的小节对识别特定用户的策略进行了更为详细的讨论。