Cookie的工作原理
Cookie是这样工作的。当用户张三浏览某个使用Cookie的网站时,该网站的服务器就为张三产生一个唯一的识别码,并以此作为索引在服务器后端数据库中产生一个项目。接着在给张三的HTTP相应报文中添加一个叫做Set-cookie的首部行。这里的首部字段名就是Set-cookie,而后面的值就是赋予该用户的识别码,例如这个首部行是这样的:
Set-cookie:12345678
当张三收到这个响应时,浏览器就在它管理特定Cookie文件中添加一行,其中包括这个服务器的主机名和Set-cookie后面给出的识别码。当张三继续浏览这个网站的时候,每发出一个HTTP请求报文,其浏览器就会从其Cookie文件中取出这个网站的识别码,并放到HTTP请求报文的Cookie首部行中:
Cookie:12345678
于是,这个网站就能够跟踪用户12345678(张三)在该网站的活动。需要注意的是,服务器并不需要知道这个用户的姓名张三和其他信息,但服务器能够知道用户12345678在什么时间访问了哪些页面,以及访问这些页面的顺序。如果张三是上网购物,那么这个服务器可以为张三维护一个所购物品的列表,使张三在这次购物时可以一起付费。
如果张三在几天后再次访问这个网站,那么他的浏览器就会在HTTP请求报文中继续使用首部行Cookie:12345678,而这个网站服务器根据张三过去的访问记录可以向他推荐商品。如果张三已经在该网站登记过和使用过信用卡付费,那么这个网站就已经保存了张三的姓名、电子邮件、信用卡密码等信息。这样,当张三继续在该网站购物时,只要还使用一个电脑上网,由于浏览器产生的HTTP请求报文中携带了同样的Cookie首部行,服务器就可以利用Cookie来验证这是用户张三,因此以后张三在使用这个网站时就不必重新在键盘上输入姓名、信用卡号码等信息。