cookie的应用场景以及同session、web storage的区别

cookie

cookie


  • 在程序中,会话跟踪是很重要的事情。理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。
  • 而Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。
  • 于是出现了cookie和session用于记录客户端信息用于服务器区分不同的客户,只是Cookie保存在客户端浏览器中,而Session保存在服务器上。

cookie的应用场景


  • 保存用户登录状态。例如将用户id存储于一个cookie内,这样当用户下次访问该页面时就不需要重新登录了,现在很多论坛和社区都提供这样的功能。
    cookie还可以设置过期时间,当超过时间期限后,cookie就会自动消失。因此,系统往往可以提示用户保持登录状态的时间:常见选项有一个月、三个
    月、一年等。
  • 跟踪用户行为。例如一个天气预报网站,能够根据用户选择的地区显示当地的天气情况。如果每次都需要选择所在地是烦琐的,当利用了cookie后就会显得很人性化了,系统能够记住上一次访问的地区,当下次再打开该页面时,它就会自动显示上次用户所在地区的天气情况。因为一切都是在后台完成,所以这样的页面就像为某个用户所定制的一样,使用起来非常方便定制页面。如果网站提供了换肤或更换布局的功能,那么可以使用cookie来记录用户的选项,例如:背景色、分辨率等。当用户下次访问时,仍然可以保存上一次访问的界面风格。

cookie与session的区别


1.cookie数据存放在客户的浏览器上,session数据放在服务器上;
2.cookie不安全,他人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应该使用session
3.session会在一定时间内保存在服务器上。当访问增多,会占用服务器资源,考虑到服务器性能应使用cookie
4.单个cookie保存的数据量不能超过4k,同一站点最多保存20个cookie

cookie与web storage的区别


Web Storage的目的是为了克服由cookie带来的一些限制,当数据需要被严格控制在客户端上时,无须持续地将数据发回服务器。Web Storage的两个主要目标是:

  • 提供一种在cookie之外存储会话数据的途径。
  • 提供一种存储大量可以跨会话存在的数据的机制。

Web Storage又分为两种: sessionStorage 和localStorage ,即这两个是Storage的一个实例。从字面意思就可以很清楚的看出来,sessionStorage将数据保存在session中,浏览器关闭也就没了;而localStorage则一直将数据保存在客户端本地; 不管是sessionStorage,还是localStorage,可使用的API都相同,常用的有如下几个(以localStorage为例):

  • 保存数据:localStorage.setItem(key,value);
  • 读取数据:localStorage.getItem(key);
  • 删除单个数据:localStorage.removeItem(key);
  • 删除所有数据:localStorage.clear();
  • 得到某个索引的key:localStorage.key(index);

1.cookie的作用是与服务器交互,作为http规范的一部分,而web storage是为了本地存储数据而诞生的;
2.cookie会将数据发给服务器,web storage仅在本地保存;
3.cookie的数据大小限制为4k,同一域名下的cookie数量限制为20个,web storage数据大小限制为5M;
4.localStorage存储持久数据,浏览器关闭后数据不丢失除非主动删除,sessionStorage数据在当前窗口关闭后自动删除,cookie设置的过期时间之前一直有效,即使窗口或浏览器关闭;
5.sessionStorage在打开不同的浏览器窗口不共享,即使是同一页面,localStorage在同源页面是共享的,cookie在同源页面是共享的。

上一篇:最简单的轮播广告(原生JS)


下一篇:11.本地存储数据