cookie session
2020-08-26 本文已影响0人
马甲要掉了
cookie
是服务器发送给用户浏览器并保存在本地的一小块数据,会在浏览器下一次访问同一服务器再发起请求时被携带并发送到服务器上。
每个浏览器有自己的cookie储存形式,是无法跨浏览器使用的,但是在当前浏览器新开一个TAB分页是可以共享cookie的
Cookie 主要用于以下三个方面:
- 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)
- 个性化设置(如用户自定义设置、主题等)
- 浏览器行为跟踪(如跟踪分析用户行为等)
session
代表着服务器和客户端一次会话的过程。
Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当客户端关闭会话,或者 Session 超时失效时会话结束。
cookie和session的不同
- cookie存储在客户端,不安全;session保存在服务端,相对安全。
- cookie只能存储ascii码,session可以存储任何数据类型
- cookie可以长时间保存,比如我们经常使用的默认登录功能。
session一般失效时间较短,客户端关闭或者 Session 超时都会失效。 - 存储大小:cookie只要4k,session大于4k
cookie和session的关联
SessionID 是连接 Cookie 和 Session 的桥梁
cookie和session的关联
如果浏览器中禁止了 Cookie,怎么办
- 每次请求中都携带一个 SessionID 的参数,get,post请求都可以
- Token
是服务端生成的一串字符串,作为客户端进行请求的一个标识。Token 机制和 Cookie 和 Session 的使用机制比较类似。
当用户第一次登录后,服务器根据提交的用户信息生成一个 Token,响应时将 Token 返回给客户端,以后客户端只需带上这个 Token 前来请求数据即可,无需再次登录验证。
分布式session
在互联网公司为了可以支撑更大的流量,后端往往需要多台服务器共同来支撑前端用户请求,那如果用户在 A 服务器登录了,第二次请求跑到服务 B 就会出现登录失效问题。
image.png