计算机网络面试题(十五):HTTP无状态协议是什么?怎么解决的?

计算机网络面试题(十五):HTTP无状态协议是什么?怎么解决的?_第1张图片计算机网络面试题(十五):HTTP无状态协议是什么?怎么解决的?_第2张图片

文章目录

  • HTTP无状态协议
  • Cookie&Session机制
  • JWT机制


HTTP无状态协议

无状态协议(Stateless Protocol)是指浏览器对于事物的处理没有记忆功能

例如:通过账户密码登录进了一个网站,当再次进入时则需要重新输入账户密码……

HTTP就是一种无状态协议,它对用户的操作没有记忆功能。为了解决这种情况,引出了Cookie&Session机制,让浏览器具备了记忆功能
计算机网络面试题(十五):HTTP无状态协议是什么?怎么解决的?_第3张图片


Cookie&Session机制

  1. 当服务器第一次收到请求时,会主动开辟一块session空间(即创建了session对象),同时生成一个sessionid
  2. 服务器在给浏览器回复响应时,会在响应头添加set-cookie: JSESSIONID=XXXXX,将sessionid回复给浏览器
  3. 客户端收到响应后,在本地设置一个对应JSESSIONID=XXXXX的cookie信息

cookie(饼干)是有过期时间的,过期时间就是浏览器会话结束——关闭网站

计算机网络面试题(十五):HTTP无状态协议是什么?怎么解决的?_第4张图片

在此之后,客户端每次再向同一个网站发送请求时,请求头部都会带上cookie信息(包含了sessionid)

服务端在收到请求后,读取cookie信息,获取sessionid,在session空间中找到对应的信息进行比对

浏览器获得了记忆功能

计算机网络面试题(十五):HTTP无状态协议是什么?怎么解决的?_第5张图片


JWT机制

JWT(JSON Web Token)

token:令牌

JWT的功能也是让浏览器具有了记忆功能

JWT是保存在客户端的,广泛应用于单点登录


JWT特点

  • JWT的cookie信息是保存在客户端的

JWT直接进行本地校验即可,验证完毕后,这个token就会在session中随请求一起发送给服务端。这样节省了服务端资源,并且token可以进行多次验证

  • JWT可以实现跨域认证

cookies只能用于单个节点的域/子域。如果需要通过第三个节点访问,就会被禁止。JWT可以通过多个节点进行用户认证

你可能感兴趣的:(#,计算机网络面试题)