客户端识别和cookie机制

客户端识别和cookie机制

  • 承载用户身份信息的HTTP首部
  • 客户端IP地址跟踪,通过用户的IP地址对其进行识别
  • 用户登录,用认证方式来识别用户
  • 胖URL, 一种URL中嵌入识别信息的技术

HTTP首部

在这里插入图片描述

from首部包含了用户的Email地址,每个用户都有不同的Email地址,可以用这个地址作为可行的元端来识别用户。
User-Agent首部可以将用户所用浏览器的相关信息告知服务器
Referer首部提供了用户来源页面的URL,Referer首部自身不能完全表示用户。

客户端IP地址

在这里插入图片描述

只要用户输入了用户名和密码(对其身份进行完整性检查),浏览器就会重复原来的请求。这次它会添加一个 Authorization 首部,说明用户名和密码。对用户名和密码进行加密,防止那些有意无意的网络观察者看到。
今后的请求要使用用户名和密码时,浏览器会自动将存储下来的值发送出去,甚至在站点没有要求发送的时候也经常会向其发送。浏览器在每次请求中都向服务器发送 Authorization 首部作为一种身份的标识,这样,只要登录一次,就可以在整个会话期间维持用户的身份了

胖URL

有些web站点会为每个用户生成特定版本的URL来追踪用户的省份。会对真正的URL进行扩展,web服务器会动态生成一些超链,维护url中的状态信息,改动的用户状态信息的URL称为胖URL。用户首次访问这个Web站点时,会生成一个唯一的ID,用服务器可以识别的方式将这个ID添加到URL中去,然后服务器就会将客户端重新导向这个胖URL。

  • 丑陋的URL
  • 无法共享URL
  • 破坏缓存: 为每个URL生成用户特有的版本就意味着不再有可供公共访问的URL需要缓存了。
  • 额外的服务器负荷: 服务器需要重写HTML页面使URL变胖
  • 逃逸口: 用户跳转到其他站点或者请求一个特定的 URL 时,就很容易在无意中“逃离”胖URL会话。只有当用户严格地追随预先修改过的链接时,胖URL才能工作。
  • 在会话间是非持久的: 除非用户收藏了特定的胖URL,否则用户退出登录时,所有的信息都会丢失。

cookie

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

cookie的类型

可以笼统的将cookie分为两类: 会话cookie和持久cookie。
会话cookie是一种临时cookie,记录了用户访问站点的设置和偏好,用户退出浏览器的时候,会话cookie就被删除了。
持久cookie的生存时间更长,存储在硬盘中,浏览器退出,计算机重启的时候,仍然会存在。

cookie工作

在这里插入图片描述

客户端的状态

cookie的基本思想就是让浏览器积累一组服务器特有的信息,每次访问服务器的时候,将这些信息提供给它。

不同站点使用不同的cookie

浏览器内部的cookie罐中可以有成百上千个cookie,但浏览器不会将每个cookie都发送给所有的站点。实际上,它们通常只向每个站点发送2~3个cookie。原因如下

  • 对于这些cookie字节进行传输会降低性能,浏览器实际传输的cookie字节数要比实际的内容字数多
  • cookie中包含的是服务器特有的名值对。
  • 将所有的cookie发送给所有的站点会引发隐藏的隐私问题。
  1. cookie的域属性
    服务器端: Set-cookie: user="mary17"; domain="airtravelbargains.com"
    客户端: Cookie: user="mary17"
  2. cookie路径属性
    服务器端: Set-cookie: pref=compact; domain="airtravelbargains.com; path=/autos/
    客户端:访问/autos/路径下 Cookie: user="mary17" Cookie: pref=compact
    别的路径: Cookie: user="mary17"

cookie成分

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值