二、Cookie/Session/Token

一、鉴权、授权

鉴权:相当于给一个通行证

授权:鉴定是否有权限访问(判断有没有通行证)

Q:浏览器登录了某些网站,下次访问为什么不用登录?

http协议是典型的无状态协议(就是说这一次的请求和上一次的请求是没有任何关系的,无法共享信息。好处就是速度快),即上次登录后,下次再去登录时,依然不认

识‘你',cookiesession机制就是解决这个问题,让后一次访问无需再次登录,可以直接访问成功

二、cookie 和session流程

客户端发送登录请求,服务器会把登录的账号信息存起来,这个东西就是session,然后服务器返回响应的时候会设置个字段:set-cookie, 这个字段值比如为sessionid或者是jsessionid,这个东西返回给客户端告诉客户端他是谁,然后客户端就将这个信息存到了他的 cookie当中,存的东西就是服务端传过来的sessionid或者是jsessionid,这个sessionid或者是jsessionid会和域名或者是IP 绑定到一起的,表示这个sessionid或者是jsessionid是属于这个域名的,第二次请求的时候,cookie会自动带上,服务器就会检查 有没有sessionid或者是jsessionid,有的话就核对跟之前是不是一致,同时也会有过期时间或者是sessionid或者是jsessionid不对的 情况,也是不能登录成功的

三、token

token: 令牌,凭证 访问其他的接口,必须有这个令牌才能访问 token不需要存到服务器 有了token为啥还要session,因为有的浏览器是不会存你的session的

 token和session的区别:

流程上的区别:
        第一次访问:
            session:存到服务器
            token:不需要存到服务器
        第二次访问:
            session:不需要手动的添加,请求的时候自动的就带上了
            token:需要手动的添加到请求上才能访问
 
token不存到本地,直接解密:
        因为是一堆加密的数据,虽然他可以保存到本地,意味着服务器不需要消耗存储资源和查询资源消耗的是计算资源,用于解密,所以速度会快一点和域名没关系,不绑定
 
session存到服务器:
        服务器需要消耗存储资源和查询资源,所以会慢一些
        和域名绑定关系
 

总结:cookie/session/token

cookie:
1、cookie是在HTTP协议下,服务器或脚本可以维护用户信息的一种方式,cookie是由Web服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息,无论何时用户访问到服务器,都会带上该服务器的cookie信息

2、一般cookie都是有效期的,cookie只在浏览器上保存一段规定的时间,一旦超过规定的时间,该cookie就会被系统清除

session:
1、session将数据存储在服务器中,服务器会为每一个用户创建一条session,用户访问服务器的时候需要拿着sessionid去表明自己的身份

2、session的实现是基于cookie,session需要借助于cookie来存储sessionid

注意:cookie和session都是开发设置的,不要去想怎么设置

token:
1、token是需要手动传到参数当中的。session派发的sessionid自动存储在浏览器的cookie api.keyou.site/ 当中,在下次访问这个网站的时候,会自动带上

2、sessionid会存到服务器,需要消耗资源,在浏览器传输过来,要查询,也消耗资源

3、token不需要存储到服务器,服务器会解密,消耗CPU

4、 token可以跨平台,跨域

 

扩展:三次握手四次挥手

    第一次握手:建立连接时,客户端向服务端发送请求报文(SYN),'我想建立连接'
    第二次握手:服务器收到请求报文后,如同意连接,则向客户端发送确认报文(SYN/ACK),'同意建立'
    第三次握手:客户端收到服务器的确认后,再次向服务器发送确认报文,完成连接(ACK)
 
    三次握手主要是为了防止已经能失效的请求报文字段发送给服务器,浪费资源
 
    第一次挥手:客户端想分手,发送消息(FIN)给服务器
    第二次挥手:服务器通知客户端已经接受的挥手请求,返回确认消息(ACK),但还没做好分手准备
    第三次挥手:服务器已经做好分手准备,通知客户端(FIN)
    第四次挥手:客户端发送消息给服务器(ACK),确认分手,服务器关闭连接 
原文地址:https://www.cnblogs.com/zhangjx2457/p/13724804.html