因为http协议是无状态的,因此无法知道当前访问的客户端是谁,因此有了cookie这个东西,经过cookie来让服务端知道当前是谁访问我,能够看作是一个身份牌前端
(1) 第一次用户登陆的时候,输入用户名和密码信息,服务端接收后进行用户认证。node
(2)服务端经过验证后,生成一个token以cookie的形式放在http的response header中一块儿返回给客户端。后端
(3)浏览器根据是否设置cookie的过时时间判断该cookie是会话cookie仍是永久cookie,并将cookie存储在不一样的位置。跨域
(4)下次进行http请求时,请求头中会自动携带存储的cookie。浏览器
(5)服务端根据请求头中的cookie里面的token确认该用户的身份信息。服务器
cookie 一般由后端配置(固然前端也可配置),经过在http响应头部设置cookie来添加cookiecookie
使用document.cookie便可dom
好比:ui
document.cookie = 'name=ry;max-age=2000;domian=ryuan.me;path=/;secure'
cookie有如下的属性:this
经过设置响应头部信息,添加cookie,经过http响应返回给浏览器便可,浏览器收到cookie会自动保存下来。
var http = require('http'); http.createServer(function(req,res){ res.setHeader('status','200 ok'); res.setHeader('Set-Cookie','name=yyyy;max-age=10000;path=/;'); res.write('hello this is cookie test!!'); res.end(); }).listen(8800,()=>{ console.log('sever start at 8800'); });
后端能够设置cookie的属性,除了上述前端能够设置的以外,还有两个:
前提:cookie在不一样的域之间是不能够访问,修改的。可是在同一个一级域里面,cookie是能够共享的。
在设置cookie时对domain赋值成同一一级域名便可
好比node中:
res.setHeader('Set-Cookie','name=yyyy;max-age=10000;path=/;domain=qq.com';)
我的笔记总结,仅供参考,大步走多回头
等什么望穿秋水 任来世枯朽成灰