ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-10-28 14:34:26  阅读:177  来源: 互联网

标签:web storage 用户 session cookie 服务器 localStorage 数据


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在同源页面是共享的。

标签:web,storage,用户,session,cookie,服务器,localStorage,数据
来源: https://blog.csdn.net/m0_46149348/article/details/121013300

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有