http是无状态的,每次http请求都自动带数据给服务器的技术—就是cookie;
cookie的基本流程:
浏览器发起http请求,服务器会进行cookie设置,也就是set-cookie,cookie有名和值两个重要属性,服务器会把名和值属性里的内容给填充完整,cookie发给浏览器以后,浏览器会保存起来,这样浏览器以后发送的每一个请求都会自动附上这个cookie,实际cookie就是保存在浏览器的数据而已。
如果把用户名保存在cookie,是非常的不安全,在浏览器可以看到这些信息,所以有了session ID。
同样发送http后,服务器会生成session ID和最大保存时间,sessionID通常是一串没有规律的字符串,服务器需要把sessionID和会话结束时间发给浏览器,这就需要cookie了,设置cookie,把sessionID加入到cookie,把会话结束时间对应设置为这个cookie的有效期,浏览器拿到cookie后进行保存,这是浏览器保存的就是sessionID而不是用户名及密码。
后来,又… …原因,产生了token。token是使用JWT技术生成的。
三者的区别与联系
session是诞生并保存在服务器那边,由服务器主导一切,而cookie则是一种数据载体,把session放入cookie中送到客户端那边,cookie跟随http的每个请求发送出去。token是诞生在服务器,但保存在浏览器这边的,由客户端主导一切,可以放在cookie或者storage里。
以上内容是观看视频学习笔记,如有错误,希望指出,共同学习,共同进步。