2.5.1 Cookie 的工作原理

Cookie 的工作原理

当用户A浏览某个使用Cookie的网站时,该网站的服务器就为A产生一个唯一的识别码,并以此作为索引在服务器的后端数据库中产生一个项目

接着在给 A 的 HTTP响应报文中添加一个叫做 Set-cookie的首部行;这里的“首部字段名”就是“Set-cookie”,而后面的“值”就是赋予该用户的“识别码”;

例如这个首部行是这样的

        set-cookie: 31d4d96e407aad42

当A收到这个响应时,其浏览器就在它管理的特定Cookie文件中添加一行,其中包括这个服务器的主机名和Set-cookie后面给出的识别码;

当A继续浏览这个网站时,每发送一个HTTP请求报文,其浏览器就会从其Cookie 文件中取出这个网站的识别码,并放到HTTP请求报文Cookie首部行中:

cookie: 31d4d96e407aad42

于是,这个网站就能够跟踪用户 31d4d96e407aad42(用户A)在该网站的活动;需要注意的是,服务器并不需要知道这个用户的真实姓名以及其他的信息;但服务器能够知道用户 31d4d96e407aad42在什么时间访问了哪些页面,以及访问这些页面的顺序;

如果A是在网上购物,那么这个服务器可以为A维护一个所购物品的列表,使A在结束这次购物时可以一起付费;

如果A在几天后再次访问这个网站,那么他的浏览器会在其HTTP请求报文中继续使用首部行 Cookie: 31d4d96e407aad42,而这个网站服务器根据A过去的访问记录可以向他推荐商品

如果A已经在该网站登记过和使用过信用卡付费,那么这个网站就已经保存了A的姓名、电子邮件地址、信用卡号码等信息;

这样,当A继续在该网站购物时,只要还使用同一个电脑上网,由于浏览器产生的 HTTP请求报文中都携带了同样的Cookie首部行当浏览器从服务器上请求 web 页面时, 属于该页面的 cookie 会被添加到该请求中,服务端通过这种方式来获取用户的信息);

服务器就可利用Cookie来验证出这是用户A,因此以后A在这个网站购物时就不必重新在键盘上输入姓名、信用卡号码等信息,这对顾客显然是很方便的;

尽管Cookie 能够简化用户网上购物的过程,但Cookie 的使用一直引起很多争议;

有人认为Cookie会把计算机病毒带到用户的计算机中,其实这是对Cookie的误解;Cookie 只是一个小小的文本文件,不是计算机的可执行程序,因此不可能传播计算机病毒,也不可能用来获取用户计算机硬盘中的信息;

cookie的优缺点

优点:

  1. 兼容性好,用于存储身份认证信息会自动发送给服务器。

缺点:

  1. 安全性:由于cookie在HTTP中是明文传递的,其中包含的数据都可以被他人访问,可能会被篡改、盗用;
  2. 大小限制:cookie的大小限制在4KB左右,若要做大量存储显然不是理想的选择;
  3. 增加流量:cookie每次请求都会被自动添加到Request Header中,无形中增加了流量;cookie信息越大,对服务器请求的时间也越长;
  4. 用户隐私的保护问题;

    例如,网站服务器知道了A的一些信息,就有可能把这些信息出卖给第三方;Cookie还可用来收集用户在万维网网站上的行为,这些都属于用户个人的隐私;

    有些网站为了使顾客放心,就公开声明他们会保护顾客的隐私,绝对不会把顾客的识别码或个人信息出售或转移给其他厂商;

    为了让用户有拒绝接受Cookie 的自由,在浏览器中用户可自行设置接受Cookie 的条件;

    例如在浏览器IE11.0中,选择工具栏中的“工具”→“Internet选项”→“隐私”命令,就可以看见菜单中的左边有一个可上下滑动的标尺,它有六个位置;

    最高的位置是阻止所有Cookie,而最低的位置是接受所有Cookie,中间的位置则是在不同条件下可以接受Cookie;用户可根据自己的情况对IE浏览器进行必要的设置;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值