第三部分 识别、认证与安全——第11章 客户端识别与cookie机制

dd本章我们将讨论下列用户识别机制:

  • 承载用户身份的HTTP首部。
  • 客户端IP地址跟踪,通过用户的IP地址对其进行识别。
  • 用户登录,用认证方式来识别用户。
  • 胖URL,一种在URL中嵌入识别信息的技术
  • cookie,一种功能强大且高效的持久身份识别技术。
1 HTTP首部

承载用户相关信息的HTTP首部

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

使用客户端IP地址来识别用户存在着很多缺点,限制了将其作为用户识别技术的效能。

  • 客户端IP地址描述的是所用的机器,而不是用户。如果多个用户共享同一台计算机,就无法对其进行区分了。
  • 很多因特网服务提供商都会在用户登录时为其动态分配IP地址。
  • 为了提高安全性,并对稀缺的地址资源进行管理,很多用户都是通过网络地址转换(Network Address Translation,NAT)防火墙来浏览网络内容的。这些NAT设备隐藏了防火墙后面那些实际客户端的IP地址,将实际的客户端IP地址转换成了一个共享的防火墙IP地址(和不同的端口号)。
  • HTTP代理和网关通常会打开一些新的、到原始服务器的TCP连接。Web服务器看到的将是代理服务器的IP地址,而不是客户端的。有些代理为了绕过这个问题会添加特殊的Client-IP或X-Forwarded-For扩展首部来保存原始的IP地址。但并不是所有的代理都支持这种行为。

第三部分 识别、认证与安全——第11章 客户端识别与cookie机制_第1张图片

3 用户登录
4 胖URL

包含了用户状态信息的URL被称为胖URL
胖URL存在的缺陷:

  • 丑陋的URL
  • 无法共享的URL
  • 破坏缓存:为每个URL生成用户特有的版本就意味着不再有可供公共访问的URL需要缓存了
  • 额外的服务器负荷:服务器需要重写HTML页面使URL变胖
  • 逃逸口:用户跳转到其他站点或者请求一个特定的URL时,就很容易在无意中“逃离”胖URL会话,只有当用户严格地追随预先修改过的链接时,胖URL才能工作。如果用户逃离此链接,就会丢失他的进展信息,得重新开始。
5 cookie

cookie是当前识别用户,实现持久会话的最好方式。

cookie分为两类:

  • 会话cookie
  • 持久cookie

会话cookie是一种临时cookie,它记录用户访问站点时的设置和偏好。用户退出浏览器时,会话cookie就被删除了。
持久cookie一般存储在硬盘上,浏览器退出,计算机重启时它们仍然存在。通常会用持久cookie维护某个用户会周期性访问的站点的配置文件或登录名。

5.1 cookie版本
  1. cookie版本0又称为Netscape cookie
  2. cookie版本1

Cookie&Session

你可能感兴趣的:(网络,http,cookie)