用户与服务器的交互:cookie

1 相关介绍

  HTTP是一个无状态协议,即HTTP服务器并不保存关于客户的任何信息,假如某个特定的客户在短短的几秒钟内两次请求同一个对象,服务器并不会因为刚刚为该客户提供了该对象就不再做出反应,而是重新发送该对象。 HTTP的无状态性简化了服务器的设计,并且允许工程师们去开发可以同时处理数以千计的TCP连接的高性能Web服务器。  然而一个Web站点通常希望能够识别用户,可能是因为服务器希望限制用户的访问,或者它希望把内容与用户身份联系起来。为此,HTTP使用了cookie。

2 cookie组件

  cookie技术有4个组件:在HTTP响应报文中有一个cookie首部行;在HTTP请求报文中有一个cookie首部行;在用户端系统中保留有一个cookie文件,并由用户的浏览器进行管理;位于Web站点的一个后端数据库。

3 cookie的工作过程

用户Susan从家中PC通过Internet Explorer访问Amazon.com(假设其首次与该网站联系)
当请求报文到达Amazon Web服务器时,该Web站点将产生一个唯一识别码,并以此作为索引在它的后端数据库中产生一个表项,Amazon Web服务器用一个包含Set-cookie首部的HTTP响应报文进行响应,且该首部包含上述识别码。(假设Set-cookie:1678)
当Susan的浏览器接收到该HTTP响应报文时,会看到Set-cookie首部,并将在它管理的特定cookie文件夹中添加一行,该行包含服务器的主机名和在Set-cookie首部中的识别码。
当Susan继续浏览Amazon网站时,每请求一个Web页面,其浏览器就会从该cookie文件中获取她对这个网站的识别码,并放到HTTP请求报文中包括识别码的cookie首部行中。
在这种方式下,Amazon服务器可以追踪Susan在Amazon站点的活动,尽管Amazon Web站点不必知道Susan的名字,但它确切地知道用户1678按照什么顺序、在什么时间、访问了哪些页面!
用户与服务器的交互:cookie_第1张图片

4 深入解析cookie

 cookie可以看作是对用户的一种标识,网站将cookie作为索引,来存取该cookie所对应用户访问网站的信息(包括访问时间、访问页面等)以及该用户的一些隐私信息(包括全名、电子邮件、邮政地址和信用卡账号等,如果用户曾在该网站上注册过)。结合cookie和用户提供的账户信息,Web站点可以知道许多有关用户的信息,并可能将这些信息卖给第三方,所以cookie也可看成是对用户隐私的一种侵害。

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