标签:
Web服务器可能会同时与数千个不同的客户端进行对话,这些服务器通常要记录下他们在与谁交谈,而不会认为所有的请求都来自匿名用户的客户端。
下面我们将讨论下列用户识别机制:
1 承载用户身份信息的HTTP首部
2 客户端ip地址跟踪,通过用户的IP地址对其进行识别
3 用户登陆,用认证方式来识别用户
4 胖URL,一种在Url 中嵌入识别信息的技术。
5 cookie 一种功能强大且高效的持久身份识别技术
Http首部
客户端ip地址
用户登陆
胖URL
COOKIE
Cookie 是当前识别用户,实现持久化会话的最好方式,
Cookie 的类型:可以笼统的将cookie分为两类,会话cookie和持久cookie,会话cookie是一种临时cookie,他记录了用户访问站点时的设置和偏好,用户退出浏览器的时候,cookie就会被删除了,持久cookie的生存时间更长一些,他们存储在硬盘上,浏览器退出,计算机重启时他们仍然存在,通常会用持久化cookie维护某个用户会周期性访问的站点的配置文件或登录名。
cookie是如何工作的:
cookie就像服务器给用户贴的贴纸一样,用户访问一个web站点时,这个web站点就可以读取那个服务器贴在用户身上的所有贴纸。用户首次访问web站点时,web服务器对用户一无所知,web服务器希望这个用户再次回来的时候,所以想给这个用户“贴上”一个独有的cookie,着样以后就可以识别这个用户了,cookie中包含一个由名字=值这样的信息构成的任意列表,并通过set-CookieHTTP响应首部将其贴到用户身上。
cookie中可以包含任意信息,但他们通常都只包含一个服务器为了进行跟踪而产生的独特的识别码。
cookie罐
cookie的基本思想就是让浏览器积累一组服务器特有的信息,每次访问服务器时都将这些信息提供给他,因为浏览器要负责存储cookie信息,所以此系统被成为客户端侧状态,这个cookie规范的正式名称为HTTP状态管理机制。
不同站点使用不同的cookie
浏览器内部的cookie罐中可以有成百上千个cookie,但浏览器不会将每个cookie都发送给所有的站点,实际上,通常只向每个站点发送2-3个cookie,原因如下:
1 对所有这些cookie字节进行传输会严重降低性能。
2 cookie中包含的服务器特有的名值对,所以对大部分站点来说,大多数cookie都只是无法识别的误用数据
3 将所有的cookie发送给所有站点会引发潜在的隐私问题。
总之,浏览器只向服务器发送服务器产生的那些cookie。
cookie的域属性
产生cookie的服务器可以向set-cookie响应首部添加一个Domain属性来控制哪些站点可以看到那些cookie,
cookie路径属性
cookie规范甚至允许用户将cookie与部分web站点关联起来,可以通过Path属性来实现这一功能,在这个属性列出的URL路径前缀下所有的cookie都是有效的。因此cookie就是由服务器贴到客户端上,由客户端维护的状态片段,只会回送给那些合适的站点,下面我们来更仔细地看看cookie的技术和标准。
cookie成分:
现在使用的cookie规范有两个不同的版本,cookies版本0和cookies版本1,版本1是对版本0的扩展,应用不如后者广泛。
版本0:
cookie定义了set-cookie响应首部,cookie请求首部以及用于控制cookie的字段
set-cookie:name=value [; expires=date] [;path=path] [;domain=domain] [;secure]
详细解释:
Name=value 强制的,name和value都是字符序列,除非包含在哦双引号内,否则不能使用分号,逗号等,
expires 可选的,这个属性指定一个日期字符串,用来定义cookie的实际生存期,一旦到了过期日期,就不能在存储或发布这个cookie了,
Domain 可选的,浏览器只向指定的域中的服务器发送cookie,这样服务器就将cookie限制在特定的域中,只有指定域中的主机才能为一个域设置cookie,这些域中至少要有两个或三个句号。
path 可选的 通过这个属性可以为服务器上特定的文档分配cookie,如果path属性是一个url路径前缀,就可以附加一个cookie,
secure 可选的如果包含这一属性,就只有在http使用ssl安全链接时才会发送cookie.
cookie与会话跟踪
可以用cookie在用户与某个web站点进行多项事物处理时对用户进行跟踪,电子商务web站点用会话cookie在用户浏览时记录下用户购物车信息。
标签:
原文地址:http://www.cnblogs.com/aizhiyuan/p/5449999.html