您的位置:首页 > 其它

Cookie的初步了解

2013-12-18 21:38 351 查看
今年年初有很多关于Cookie安全性的新闻,新闻披露了美国等国的一些机构通过Cookie监视、获取用户隐私等一些非正当的行为。然后之前在写博客《VB.net web开发中的session》时查到session和Cookie是Web开发中很基础的内容。因此,也就查了一些相关的资料来了解Cookie机制。那么这篇博客就对所查到的资料做一个总结。

无状态Http协议

首先我们需要了解一下无状态的Http协议,以便理解Cookie的由来。那么无状态是指,当浏览器发送请求给服务器的时候,服务器都会当做是一个全新的请求来响应。也就是说如果同一个浏览器再发送请求给服务器的时候,他不知道你就是刚才那个浏览器。简单地说,就是服务器不会去记得你。意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。这就是Cookie的由来了。那么到底什么是Cookie呢?

Cookie

Cookie是一种在客户端保存状态的解决方案。是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息。换句话说就是,网络服务器为了甄别用户而保存在客户端的一些用户个性化的信息。

用途

这里有个笑话说是:一个男同志惹其夫人生气了,为了哄夫人开心,登录夫人的淘宝账号把购物车里的东西一口气支付了,因此夫人是喜笑颜开。这里的购物车的实现就有Cookie的功劳。我们在网页上使用的自动登录功能也是Cookie的使用。这里需要注意的是:存储你在站点中选择的商品、你浏览过的页面、你在表单中提供的信息等使用的是数据库,所有的信息都被保存在站点的数据库中,只有你的UserIdea是存储在客户端的Cookie中用以辨识用户的身份。

内容和分类

根据Cookie存储的位置可分为内存Cookie和硬盘Cookie。其实,Cookie的存储位置和期生命周期有关系。Cookie在生成时就会被指定一个Expire值,这就是Cookie的生存周期,在这个周期内Cookie有效,超出周期Cookie就会被清除。有些页面将Cookie的生存周期设置为“0”或负值,这样在关闭浏览器时,就马上清除Cookie,不会记录用户信息,更加安全。那么,没有指定时间值的Cookie就存储在内存中,而指定了时间的Cookie则存储在硬盘里。

缺陷

1.cookie会被附加在每个HTTP请求中,所以无形中增加了流量。

2.由于在HTTP请求中的cookie是明文传递的,所以安全性成问题。

3.Cookie的大小限制在4KB左右。对于复杂的存储需求来说是不够用的。

Cookie和Session的区别

1、Cookie是存储于客户端的用户信息,Session是存储于服务器的用户信息。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

这里只是纯粹的查资料在理论上做的一些了解,对于代码实现等有关问题还是大家自己再去学习,我不会啊。因此,这里只是先了解的,等下次真正使用的时候还是需要在学习,再体会,再总结。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: