-->
当前位置:首页 > 实验 > 正文内容

客户端识别与COOKIE 实验

Luz4年前 (2020-12-11)实验2097

【实验目的】

  • 了解用户识别机制

  • 了解Cookie的相关知识

【实验原理】
1.WEB服务器:

  WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 WWW 是 Internet 的多媒体信息查询工具,是 Internet 上近年才发展起来的服务,也是发展最快和目前用的最广泛的服务。正是因为有了WWW工具,才使得近年来 Internet 迅速发展,且用户数量飞速增长。

  Web服务器是可以向发出请求的浏览器提供文档的程序。

  • 1、服务器是一种被动程序:只有当Internet上运行其他计算机中的浏览器发出的请求时,服务器才会响应。

  • 2 、最常用的Web服务器是Apache和Microsoft的Internet信息服务器(Internet Information Services,IIS)。

  • 3、Internet上的服务器也称为Web服务器,是一台在Internet上具有独立IP地址的计算机,可以向Internet上的客户机提供WWW、Email和FTP等各种Internet服务。

  • 4、Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)与客户机浏览器进行信息交流,这就是人们常把它们称为HTTP服务器的原因。

  Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。

  协议

  • 应用层使用HTTP协议。

  • HTML(标准通用标记语言下的一个应用)文档格式。

  • 浏览器统一资源定位器(URL)。

  • 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

2.Cookie:

  Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息。

  目前有些 Cookie 是临时的,有些则是持续的。临时的 Cookie 只在浏览器上保存一段规定的时间,一旦超过规定的时间,该 Cookie 就会被系统清除。

  持续的 Cookie 则保存在用户的 Cookie 文件中,下一次用户返回时,仍然可以对它进行调用。在 Cookie 文件中保存 Cookie,有些用户担心 Cookie 中的用户信息被一些别有用心的人窃取,而造成一定的损害。其实,网站以外的用户无法跨过网站来获得 Cookie 信息。如果因为这种担心而屏蔽 Cookie,肯定会因此拒绝访问许多站点页面。因为,当今有许多 Web 站点开发人员使用 Cookie 技术,例如 Session 对象的使用就离不开 Cookie 的支持。

###步骤1:用户识别机制
  1.1 Web 服务器可能会同时与数千个不同的客户端进行对话。这些服务器通常要记录下它们在与谁交谈,而不会认为所有的请求都来自匿名的客户端。

  HTTP 最初是一个匿名、无状态的请求 / 响应协议。服务器处理来自客户端的请求,然后向客户端回送一条响应。Web 服务器几乎没有什么信息可以用来判定是哪个用户发送的请求,也无法记录来访用户的请求序列。现代的 Web 站点希望能够提供个性化的服务。它们希望对用户有更多的了解,并且能在用户浏览页面时对其进行跟踪。Amazon.com 这样流行的在线商店网站可以通过以下几种方式实现站点的个性化:

  • 个性化问候

  • 个性化推荐

  • 管理信息存档

  • 记录会话

  早期的 Web 站点设计者们有自己的用户识别技术,本节我们讨论下列用户识别机制中的几个机制:

  • 承载用户身份信息的 HTTP 首部

  • 客户端 IP 地址跟踪,通过 IP 对其识别

  • 用户登录,通过认证识别用户

  • 胖 URL,一种在 URL 中嵌入识别信息的技术

  • Cookie ,一种功能强大且高效的持久身份识别技术

  1.2 HTTP 首部

  下表给出了几种常见的用来承载用户信息的 HTTP 请求首部:

 

图1

  From 包含了用户的 E-mail 地址。在理想情况下,每个用户都有不同的 E-mail 地址,所以这个可以作为可行的源来识别用户。由于担心恶意服务器会收集这些 E-Mail 地址,所以很少有浏览器会这样发送。

  User-Agent 首部可以将用户所使用的浏览器相关信息告知服务器,包括应用程序的名称和版本,通常还包括操作系统的相关信息。要实现定制内容和特定浏览器之间的良好互操作,这个首部非常有用。

  Reverer 首部提供了用户来源 URL,Referer 首部自身并不能完全标识用户,但它确实说明了用户之前访问过哪个页面。通过它可以更好地理解用户的浏览行为,以及用户的兴趣所在。

  客户端IP地址 如果每个用户都有不同的 IP 地址,IP 地址(如果会发生变化的话)也很少会发生变化,而且 Web 服务器可以判断出每条请求的客户端 IP 地址的话,这种方案是可行的。但存在如下缺点:

  1. 客户端IP地址描述的是所使用的机器而不是用户
  2. 很多网络服务提供商会在用户登录时为其动态分配IP
  3. 为了提高安全性以及节省地址资源,很多用户都是通过网络地址转换(NAT)来访问浏览网络内容的
  4. HTTP 代理和网关通常会打开一些新的、到原始服务器的 TCP 连接

  多数站点已经不使用客户端 IP 地址来跟踪用户行为,主要是因为 IP 地址太容易被欺骗(伪造)了。

  1.3 用户登录
  Web 服务器通过用户的用户名和密码进行认证。为了使 Web 站点的登录更加简便,HTTP 中包含了一种内建机制,可以用 WWW-Authenticate 首部和 Authorization 首部向 Web 站点传送用户的相关信息。

###步骤2:Cookie
  2.1 Cookie

  Cookie 是当前识别用户,实现持久会话的最好方式。它最初是由网景公司开发的,但现在所有主要的浏览器都支持它。cookie 非常重要,而且它们定义了一些新的 HTTP 首部,cookie 的存在也影响了缓存,大多数缓存和浏览器都不允许对任何 cookie 的内容进行缓存。

  2.2 Cookie 的类型

  可以笼统地将 cookie 分为两类: 会话 cookie 和持久 cookie。会话 cookie 是一种临时 cookie,它记录了用户访问站点时的设置和偏好。用户退出浏览器时,会话 cookie 就被删除了。持久 cookie 的生存时间更长一些;它们存储在硬盘上,浏览器退出,计算机重启时它们仍然存在。通常会用持久 cookie 维护某个用户会周期性访问的站点的配置文件或登录名。

  会话 cookie 和持久 cookie 之间唯一的区别就是它们的过期时间。

  2.3 Cookie 是如何工作的

  Cookie 就像是服务器给用户打的一个 tag。当用户访问一个 web 站点时,这个站点就可以读取该服务器给用户打上的所有 tags。

  流程如下图:

 

图2

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

  • 对所有这些 cookie 字节进行传输会严重降低性能。浏览器实际传输的 cookie 字节数要比实际的内容字节数多!

  • cookie 中包含的是服务器特有的名值对,所以对大部分站点来说,大多数 cookie 都只是无法识别的无用数据。

  • 将所有的 cookie 发送给所有站点会引发潜在的隐私问题,那些你并不信任的站点也会获得你只想发给其他站点的信息。

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。