要了解cookie、session和localStorage之间的区别,首先要知道他们的作用。
- cookie、session和localStorage他们都是用来在浏览器上存储数据的,只是各自有各自的特色,优缺点。
cookie
cookie是web服务器通过浏览器在用户硬盘上存储的一部分信息。
cookie允许一些web站点在用户的电脑上存储信息,并随后取回他。
cookies是一种web服务器通过浏览器在访问者硬盘上存放信息的一种手段。
cookie对网站、用户的有利之处
- cookie能使站点跟踪特定访问者的访问次数、最后一次的访问时间以及访问者进入站点的路径。
- cookie能告诉在线广告商广告被点击的次数,以便可以更好地投放广告。
- cookie有限期限未到时,cookie能使用户不需要键入密码和用户名就可以进入曾经浏览过的一些站点。
- cookie能帮站点统计用户的个人资料以实现各种各样的个性化服务。
session
session机制采用的是在服务器端保持状态的方案。他本身比较特殊,他引入了一个 浏览器窗口 的概念。
sessionStorage是在同源的同窗口(或tab)中,始终存在的数据。也就是说只要这个浏览器窗口没有关闭,即使刷新页面或进入同源另一页面,数据仍然存在。关闭窗口后,sessionStorage即被销毁。同时“独立”打开的不同窗口,即使是同一页面,sessionStorage对象也是不同的。
localStorage
- localStorage HTML5本地存储web storage特性的API之一,用于将大量数据(最大5M)保存在浏览器中,保存后数据永远存在不会失效过期,除非用 js手动清除。
- 不参与网络传输。
- 一般用于性能优化,可以保存图片、js、css、html 模板、大量数据。
cookie和session的区别
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5、所以建议:将登陆信息等重要信息存放为SESSION;其他信息如果需要保留,可以放在COOKIE中
6、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。
7、session中保存的是对象,cookie中保存的是字符串。
8、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。
cookie、session和localStorage的区别
- cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。
- 存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。
- 数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。
- 作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。
网友评论