一、Cookie是什么意思
cookie有时候也用复数形式Cookies,这种是指某些网站为了辨别用户身份、进行 Session 跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。简单来说Cookie就是它能够把你在访问网站时的产生的一些行为信息给读取保存下来,常用的是我们在访问某些网页时提示我们是否需要保存用户名和密码,下次登录的时候能够自动登录,无需重新登录。
二、Cookie的分类
Cookie保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。
内存 Cookie 由浏览器维护,保存在内存中,浏览器关闭即消失,存在时间短暂。硬盘Cookie保存在硬盘里,有过期时间,除非用户手动清理或到了过期时间,硬盘Cookie不会清除,存在时间较长。所以,按存在时间,可分为非持久Cookie和持久Cookie。
三、Cookie的工作原理
Cookie是服务器或脚本在HTTP协议下维护客户端工作站信息的一种方式。Cookie是web服务器保存在用户浏览器(客户端)上的小文件,其中可能包含用户的登录信息、访问信息等数据。每当用户连接到服务器时,网站就可以访问cookie信息。
当用户靠前次访问并登陆一个网站的时候,cookie的设置以及发送会经历以下4个步骤:客户端发送一个请求到服务器 → 服务器发送一个HttpResponse响应到客户端,其中包含Set-Cookie的头部 → 客户端保存cookie,之后向服务器发送请求时,HttpRequest请求中会包含一个Cookie的头部 → 服务器返回响应数据。
Cookie的工作原理
目前,许多网站开发人员使用cookie技术来跟踪用户的访问数据,分析用户的偏好,并调整"推荐算法"。cookie技术广泛应用于会话对象中。Cookie数据对于搜索引擎来说更为重要,因为蜘蛛程序专门抓取这个缓存的数据,从跟踪到的访问数据中分析判断这个网页的质量水平,然后对一些维度进行评分。
Cookie 文件必须由浏览器的支持,在浏览器中可以设置阻止cookie。这样服务器端就不能写入cookie 到客户端了。目前,大多数浏览器都支持cookie。如谷歌、IE、火狐等。一般来说cookie都不能阻止,因为,有时访问网站时必须使用cookie。否则网站将不能被访问。
四、Cookie设置
浏览器设置cookie功能的一般方法为:
1、在IE页面的右上角点击"工具"按钮。
2、弹出下拉菜单,选择"internet选项"。
3、打开"internet选项"后,选择"隐私"按钮,设置为中。
4、点击"高级",弹出对话框,勾选"替代自动cookie处理",勾选"总是允许会话cookie"。
5、点击确定,浏览器cookie功能已经启用。
Cookie设置
五、Cookie的作用
存储cookie是浏览器提供的功能。cookie 其实是存储在浏览器中的纯文本,浏览器的安装目录下会专门有一个 cookie 文件夹来存放各个域下设置的cookie。cookie的主要作用就是,当你访问某些网页,并且对网页的一些设置进行修改,cookie就能跟踪并记录到这些修改,当你下一次访问这个网页的时候,这网页会分析你电脑上的cookie,进而采取措施像你返回更符合返回个性化的网页。
1、会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息);
2、个性化设置(如用户自定义设置、主题等);
3、浏览器行为跟踪(如跟踪分析用户行为等)。
Cookie曾一度用于客户端数据的存储,因当时并没有其它合适的存储办法而作为较早的存储手段,但现在随着现代浏览器开始支持各种各样的存储方式,Cookie渐渐被淘汰。由于服务器指定Cookie后,浏览器的每次请求都会携带Cookie数据,会带来额外的性能开销(尤其是在移动环境下)。新的浏览器API已经允许开发者直接将数据存储到本地,如使用 Web storage API (本地存储和会话存储)或 IndexedDB 。
六、如何删除Cookie
1、在浏览器的更多设置功能选项中找到互联网选项或清除浏览记录选项。打开后会有cookie清洗选项,选择后可以删除。
2、如果只需要刷新当前页面,可以按键盘ctrl+f5,这样会强制刷新页面,相当于删除缓存,重新刷新。
七、Cookie的安全问题
自从cookie技术诞生以来,它就成为了网络用户和网络开发者争论的焦点。一些网络用户,甚至一些资深的Web专家,对它的出现和推广并不满意,不是因为Cookie技术的功能弱或者其他技术性能原因,而是因为Cookie的使用对网络用户的隐私造成了危害。因为Cookie是由网络服务器保存在用户浏览器上的小文本文件,所以它们包含关于用户的信息。
八、Cookie的缺陷
1、Cookie会被附加在每个HTTP请求中,所以无形中增加了流量。
2、由于HTTP请求中的Cookie是明文传递的,所以安全性成问题,除非使用超文本传输安全协定。
3、Cookie的大小限制在4 KB左右,对于复杂的存储需求来说是不够用的。
九、Cookie和session的区别
1、存储位置不同
cookie的数据信息存放在客户端浏览器上;session的数据信息存放在服务器上。
2、存储容量不同
单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie。对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制。
3、存储方式不同
cookie中只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据。session中能够存储任何类型的数据,包括且不限于string,integer,list,map等。
4、隐私策略不同
cookie对客户端是可见的,别有用心的人可以分析存放在本地的cookie并进行cookie欺骗,所以它是不安全的。session存储在服务器上,对客户端是透明对,不存在敏感信息泄漏的风险。
5、有效期上不同
开发可以通过设置cookie的属性,达到使cookie长期有效的效果。session依赖于名为JSESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session不能达到长期有效的效果。
6、服务器压力不同
cookie保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie是很好的选择。session是保管在服务器端的,每个用户都会产生一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存。
7、浏览器支持不同
假如客户端浏览器不支持cookie:cookie是需要客户端浏览器支持的,假如客户端禁用了cookie,或者不支持cookie,则会话跟踪会失效。关于WAP上的应用,常规的cookie就派不上用场了。运用session需要使用URL地址重写的方式。一切用到session程序的URL都要进行URL地址重写,否则session会话跟踪还会失效。
假如客户端支持cookie:cookie既能够设为本浏览器窗口以及子窗口内有效,也能够设为一切窗口内有效。
session只能在本窗口以及子窗口内有效。
8、跨域支持上不同
cookie支持跨域名访问;session不支持跨域名访问。
总结
优化猩SEO:Cookie 的应用,对用户行为进行了跟踪,便于为用户提供个性化定制服务,但Cookie 存储的信息容易被窃取,假如 cookie 中所传递的内容比较重要,那么就要求使用加密的数据传输。
TAG:cookie的概念及作用