首先,从存储位置来看,可以分为服务端存储和客户端存储两种。
服务端存储:session
浏览器端存储:cookie,localStorage,sessionStorage
cookie、session区别
存储位置:cookie 存储于浏览器端,而 session 存储于服务端
机制:cookie 是存储在浏览器里的一小段「数据」,而session是一种让服务器能识别某个用户的「机制」,session 在实现的过程中需要使用cookie。 二者不是同一维度的东西。
安全:cookie 的安全性相比于 session 较弱,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 ,考虑到安全应当使用session。
性能:session 会在一定时间内保存在服务器上。当访问增多时,会占用服务器的资源,所以考虑到服务器性能方面,可以使用cookie
存储大小区别:cookie 存储容量有限制,单个cookie 保存数据不能超过4k,且很多浏览器限制一个站点最多保存20个cookie。而对于 session ,其默认大小一般是1024k
携带:cookie 数据始终在同源的http请求中携带,session给予cookie一个session id来识别用户
cookie、sessionStorage、localStorage 异同点
html5 中 webStorage 包含 sessionStorage 和 localStorage
共同点:
都保存在浏览器端,(且是同源的)
区别:
1.存储大小区别,cookie 是4k,webStorage 可以达到5M甚至更大
2.数据有效时间区别: sessionStorage 仅仅是会话级别的存储,它只在当前浏览器关闭前有效,不能持久保持;localStorage 始终有效,即使窗口或浏览器关闭也一直有效,除非用户手动删除,其才会失效;cookie 只在设置的 cookie 过期时间之前一直有效。
3.作用域区别:sessionStorage 在不同页面无法共享; localStorage 和 cookie 在所有同源窗口是共享的。
(相同浏览器的不同页面间可以共享相同的 localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息)
4.cookie 数据始终在同源的http请求中携带,而 webStorage 不会再请求中携带,仅仅在本地存储
(5.Web Storage 支持事件通知机制,可以将数据更新的通知发送给监听者。Web Storage 的 api 接口使用更方便。)
网友评论