session和Authorization区别

今天开发中遇到 session 和 Authorization问题登录验证,搞得头痛,查阅相关资料 在这里总结一下,希望可以帮助大家,有不对的地方欢迎指教!!谢谢!!本人web前端开发 小白一枚!请多指教!

1.session和Authorization 都是做 web服务器之间登录验证的,因为http协议是无状态协议 ,我所理解的“无状态”,就是第一次请求跟第二次请求之间无任何联系;那么问题来了 哪么 如何保存用户状态呢???笨的办法是 每一次都携带 账号密码 这样做显然是不行的,所有cookie 诞生,默认情况下 所有浏览器是支持cookie的,首先强调一点 很重要 “每次客户端发送请求都会携带cookie信息,是以键值对的形式存在 key:value” ;当第一次 浏览器向服务器发送请求的时候**(第一次哦 并非登录的时候**)浏览器响应的头会有 “set-Cookie:JESSIONID=**
在这里插入图片描述
然后浏览器的 本地 cookie中就会有 cookie信息了 以键值对的形式存储
在这里插入图片描述 接下来你每一次调用接口 都会携带 cookie 信息 服务器端 就会用 这个cookie信息与 后台服务中心的 session 进行比对 这样就保存了用户登录; 简单总结一下就是:cookie 就是以cookie为载体,利用cookie的特性,来实现客户端的登录,保存登录信息; 2.说完了cookie 再说 Authorization 。Authorization并不像cookie一样每次请求都会自动携带,它需要你 手动去设置 ajax请求的头部,大概原理是:当登录的时候调用 服务器 提供的登录接口,传入账号和密码,服务器端会去数据库去验证 账号密码是否匹配,如果匹配返回 token 串,然后前端保存在页面(一般保存到locaStorage中)然后 客户端每次发送请求 都需要设置 Authorization 头信息
(前端一般会请求拦截器统一设置Authorization 属性)
;然后服务器端拿到 头部信息 去验证用户登录信息;