一、何为cookie
由于http协议是无状态的,所以没法知道当前访问的客户端是谁,所以有了cookie这个东西,通过cookie来让服务端知道当前是谁访问我,可以看做是一个身份牌
二、cookie的工作流程
(1) 第一次用户登录的时候,输入用户名和密码信息,服务端接收后进行用户认证。
(2)服务端通过验证后,生成一个token以cookie的形式放在http的response header中一起返回给客户端。
(3)浏览器根据是否设置cookie的过期时间判断该cookie是会话cookie还是永久cookie,并将cookie存储在不同的位置。
(4)下次进行http请求时,请求头中会自动携带存储的cookie。
(5)服务端根据请求头中的cookie里面的token确认该用户的身份信息。
三. cookie设置
cookie 通常由后端配置(当然前端也可配置),通过在http响应头部设置cookie来添加cookie
前端设置cookie
使用document.cookie即可
后端设置cookie,不同语言略有差别
四、单点登录
前提:cookie在不同的域之间是不可以访问,修改的。但是在同一个一级域里面,cookie是可以共享的。
举个例子:
(不同域之间不能相互访问)跨域不能访问: 比如在qq.com和baidu.com之间是不可以访问到对方的cookie的但是在同一个一级域里面,其子域是可以共享一个cookie的,比如在y.qq.com(QQ音乐的首页), v.qq.com(腾讯视频首页),他们两个都在qq.com这个一级域里面,所以,cookie在同一一级域里面可以共享,基于这个可以实现单点登录(也就是在qq音乐登录后,再访问腾讯视频后会自动登录你的qq号)
网友评论