为什么需要这些认证
我们通过浏览器访问多数网站,本质上都可以理解为客户端(用户)和服务端(网站)之间的一次遵循http协议的请求和应答,比如:把a页面给我(返回a.html),删除b图片(删除b.jpg)。但是http协议本身是无状态的,也就是说我们每一次向网站发送请求,服务器都并不知道我们是谁、是否请求过、有何偏好(共享数据),所以需要一种验证机制将我们的所有请求关联起来。
session和cookie
在http协议之上,通过cookie实现了持久的会话,这个会话便称为session;
session是存储在服务端、用来验证用户身份的状态数据,具有唯一标识sessionId;
cookie是存储在客户端的用户身份数据,浏览器会自动加入服务端提供的sessionId。
验证流程:
1、客户端向服务端发送http请求;
2、服务端接受请求,建立一个session然后向客户端发送应答,其中应答的响应头Set-Cookie中包含sessionId;
3、客户端再次发送请求,如果之前有收到set-Cookie会将Cookie一起提交;
4、服务端再次接受请求,分解Cookie并验证消息,核对成功后发送应答。