刚刚用wireshark抓取一个HTTP请求报文,发现它包头中有一个叫Cookie的小东西,Cookie是什么呢?于是百度了一下,原来Cookie指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。
Cookie是由
服务器端
生成,发送给User-Agent(一般是
浏览器
),浏览器会将Cookie的key/value保存到某个目录下的
文本文件
内,下次请求同一网站时就发送该Cookie给
服务器
(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己
定义
,对于
JSP
而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等,服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器
会话
中的状态。
服务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookies的功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。
但Cookie的使用一直存在争议,有人认为Cookie的存在是人们在网上毫无密秘密可以,客户在浏览器中的一切行为都会服务器搜集并加以利用。一些公司的高层人员为了某种目的(譬如市场调研)而访问了从未去过的网站(通过
搜索引擎
查到的),而这些网站包含了一种叫做网页臭虫的
图片
,该图片透明,且只有一个
像素
大小(以便隐藏),它们的作用是将所有访问过此页面的计算机写入cookie。而后,电子商务网站将读取这些cookie信息,并寻找写入这些cookie的网站,随即发送包含了针对这个网站的相关产品广告的
垃圾邮件
给这些高级人员。