cookie webstroge session token 理解区别与联系

http是一个无状态协议
什么是无状态呢?就是说这一次请求和上一次请求是没有任何关系的,互不认识的,没有关联的。


浏览器本地存储与服务器端存储的区别
一、浏览器能够保存一些数据,须要的时候直接从本地存取,sessionStorage、localStorage和cookie都是由浏览器存储在本地的数据
一、服务器端能够保存用户的持久数据,如数据库和云存储将用户的大量数据保存在服务器端
二、服务器端也能够保存用户的临时会话数据,服务器端的session机制,如jsp的session对象,数据保存在服务器上,


session机制:服务器端的机制(服务器端建立session id)
 Session 是一种HTTP存储机制,目的是为无状态的HTTP提供的持久机制。所谓Session 认证只是简单的把User 信息存储到Session 里
当程序须要为某个客户端的请求建立一个session时,(服务器端插入数据)服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id),
若是已包含则说明之前已经为此客户端建立过session,服务器就按照session id把这个session检索出来使用(检索不到,会新建一个),
若是客户端请求不包含session id,则为此客户端建立一个session而且生成一个与此session相关联的session id,
session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。
保存这个session id的方式能够采用cookie,这样在交互过程当中浏览器能够自动的按照规则把这个标识发送给服务器。


cookie被称为会话cookie。
cookie的内容主要包括:名字,值,过时时间,路径和域。路径与域一块儿构成cookie的做用范围。
若不设置时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就会消失。
这种生命期为浏览器会话期的cookie被称为会话cookie。
保存这个session id的方式能够采用cookie,这样在交互过程当中浏览器能够自动的按照规则把这个标识发送给服务器。


cookie 和session 的区别:
一、cookie数据存放在客户的浏览器上,session数据放在服务器上。
二、cookie不是很安全,别人能够分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
三、session会在必定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
四、单个cookie保存的数据不能超过4K,不少浏览器都限制一个站点最多保存20个cookie。


token 机制(令牌)用户身份的验证方式
token(令牌) 由 uid+time+sign签名[+固定参数] 组成字符串
客户端使用用户名和密码请求登陆。服务端收到请求,验证用户名和密码。验证成功后,
服务端会生成一个token,而后把这个token发送给客户端。
客户端收到token后把它存储起来,能够放在cookie或者Local Storage(本地存储)里。
客户端每次向服务端发送请求的时候都须要带上服务端发给的token。
服务端收到请求,而后去验证客户端请求里面带着token,若是验证成功,就向客户端返回请求的数据。


web Storage
Web Storage的概念和cookie类似,区别是它是为了更大容量存储设计的,
sessionStorage、localStorage、cookie都是在浏览器端存储的数据,
其中sessionStorage的概念很特别,引入了一个“浏览器窗口”的概念,sessionStorage是在同源的同学口中,始终存在的数据,
也就是说只要这个浏览器窗口没有关闭,即便刷新页面或进入同源另外一个页面,数据仍然存在,关闭窗口后,sessionStorage就会被销毁,
同时“独立”打开的不一样窗口,即便是同一页面,sessionStorage对象也是不一样的
sessionStorage仅在当前浏览器窗口关闭前有效,天然也就不可能持久保持
localStorage始终有效,窗口或浏览器关闭也一直保存,所以用做持久数据;cookie只在设置的cookie过时时间以前一直有效,即便窗口或浏览器关闭
web storage拥有setItem,getItem,removeItem,clear等方法,不像cookie须要前端开发者本身封装setCookie,getCookie。
一旦数据保存在本地以后,就能够避免再向服务器请求数据,所以减小没必要要的数据请求,
 
 
联系
token就是令牌,好比你受权(登陆)一个程序时,他就是个依据,判断你是否已经受权该软件;
cookie就是写在客户端的一个txt文件,里面包括你登陆信息之类的,这样你下次在登陆某个网站,就会自动调用cookie自动登陆用户名;
session和cookie差很少,只是session是写在服务器端的文件,也须要在客户端写入cookie文件,可是文件里是你的浏览器编号.
Session的状态是存储在服务器端,客户端只有session id;而Token的状态是存储在客户端。
相关文章
相关标签/搜索