本文主要是介绍cookie、session、Token 及 WebStorage 的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
cookie 和session的区别
- cookie放在客户端的浏览器上,session放服务器上。
- Session生成的Session id是在cookie里保存的,cookie被禁止后可以通过URL重写来继续使用session
- cookie不是安全,存放在本地的COOKIE可能被获取并进行COOKIE欺骗。
- session会给服务器带来压力,考虑到服务器性能,应当使用COOKIE。
- cookie只能保存字符串类型,以文本的方式。session通过类似与Hashtable的数据结构来保存,能支持任何类型的对象(session中可含有多个对象)
- 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie, Session大小没限制。
Token 和Session区别
- Token放客户端, Session在服务端。
- Session是空间换时间, Token是时间换空间。
- Token解决了集群时候跨节点访问问题。
Cookie有限制,每次请求服务端必须带上,还有大小不能超过4kb,如果想突破这个限制怎么办?
WebStorage
为克服由cookie所带来的一些限制,当数据无需发回服务器时使用。
WebStorage两个主要目标:
- 提供一种在cookie之外存储会话数据的路径。
- 提供一种存储大量可以跨会话存在的数据的机制。
HTML5的WebStorage提供了两种API:
localStorage(本地存储)
sessionStorage(会话存储)
这两种区别在哪里?
1、生命周期:
localStorage的生命周期是永久的,关闭页面或浏览器之后localStorage中的数据也不会消失。localStorage除非主动删除数据,否则数据永远不会消失。
sessionStorage的生命周期是在仅在当前会话下有效。sessionStorage引入了一个“浏览器窗口”的概念,sessionStorage是在同源的窗口中始终存在的数据。只要这个浏览器窗口没有关闭,即使刷新页面或者进入同源另一个页面,数据依然存在。但是sessionStorage在关闭了浏览器窗口后就会被销毁。同时独立的打开同一个窗口同一个页面,sessionStorage也是不一样的。
2、存储大小:
localStorage和sessionStorage的存储数据大小一般都是:5MB
3、存储位置:
localStorage和sessionStorage都保存在客户端,不与服务器进行交互通信。
4、存储内容类型:
localStorage和sessionStorage只能存储字符串类型,对于复杂的对象可以使用ECMAScript提供的JSON对象的stringify和parse来处理。
5、应用场景:
localStoragese:常用于长期登录(+判断用户是否已登录),适合长期保存在本地的数据。sessionStorage:敏感账号一次性登录;
Web Storage 带来的好处:
1、减少网络流量:
一旦数据保存在本地之后,就可以避免再向服务器请求数据,因此减少不必要的数据请求,减少数据在浏览器和服务器间不必要的来回传递 。
2、快速显示数据:
性能好,从本地读数据比通过网络从服务器上获得数据快得多,本地数据可以及时获得,再加上网页本身也可以有缓存,因此整个页面和数据都在本地的话,可以立即显示 。
3、临时存储:
很多时候数据只需要在用户浏览一组页面期间使用,关闭窗口后数据就可以丢弃了,这种情况使用sessionStorage非常方便。
这篇关于cookie、session、Token 及 WebStorage 的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!