码迷,mamicode.com
首页 > 其他好文 > 详细

浅谈 session 会话的原理

时间:2019-01-17 23:49:21      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:依赖   ati   客户   返回   改善   状态   会话   span   提取   

先谈 cookie

  网络传输基于的Http协议,是无状态的协议,即每次连接断开后再去连接,服务器是无法判断此次连接的客户端是谁。

  如果每次数据传输都需要进行连接和断开,那造成的开销是很巨大的。

  为了解决这个问题,cookie就应运而生,当用户登陆成功,服务器会在返回响应数据的同时也携带着cookie给到客户端,

  之后客户端每次发起请求只要携带着这个cookie,那就免去登录的步骤。cookie是保存在客户端的数据。

  这确实极大改善了网络传输的效率。当时由于cookie是保存在浏览器客户端的,所以也很容易被提取,这在安全方面存在隐患。

再谈session

session的实现需要依赖于cookie,其本质也是通过以cookie的方式向客户端发送随机字符串,每次客户端发起请求时只要携带

该随机字符串便可很容易进行验证。下面大概写下整个session过程的原理。

  1. 用户发出登录请求
  2. 判断账户密码是否正确
  3. 如正确,则返回数据并在cookie中写随机字符串(sessionID),并且在服务端以{随机字符串:{‘k‘:‘v‘}}的形式存储用户相关数据
  4. 下次同个客户发送请求,携带cookie(包含sessionID)
  5. 服务端会判断cookie是否包含sessionID,如有再去服务器内存中查询该sessionID 是否有对应的数据,如果有,则说明是登录过的用户,返回数据。

   session是保存在服务端的数据。

  由此可见,session是不会向客户端发送敏感信息的,随机字符串即使被人窃取,也无法简单在客户端被恶意行为伪造请求。

 

浅谈 session 会话的原理

标签:依赖   ati   客户   返回   改善   状态   会话   span   提取   

原文地址:https://www.cnblogs.com/xiaohuyi/p/10284867.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!