Flask框架之session

…衆ロ難τιáo~ 提交于 2020-01-25 10:47:28

session基本概念

session技术也叫会话技术。

sessioncookie的作用有点类似,都是为了存储用户相关的信息,都是为了解决http协议无状态的这个特点。
不同的是,cookie信息是存储在客户端,而session信息是存储在服务器端。

需要注意的是,不同的语言,不同的框架,有不同的实现。
虽然底层的实现不完全一样,但目的都是让服务器端能方便的存储数据而产生的。

session的出现,是为了解决cookie存储数据不安全的问题的。


session的跟踪机制与cookie有关

Flask框架中,session的跟踪机制跟Cookie有关,这也就意味着脱离了Cookiesession就不好使了。

session工作过程:
服务器端可以采用类似于mysqlredis等技术来存储session信息。

原理是,客户端发送验证信息过来(比如用户名和密码),服务器验证成功后,把用户的相关信息存储到服务器端的session中(可想象为一个容器),再通过的机制,起到混淆原数据的作用(类似于加密),然后随机生成一个唯一的session_id,用来标识(用户名和密码)并存储到session中,之后再把这个session_id存储到cookie中返回给浏览器。

浏览器以后再请求我们服务器的时候,就会把这个session_id通过Cookie技术自动的发送给服务器,服务器端再从cookie中提取session_id,然后从服务器的session容器中找到这个用户的相关信息。
这样就可以达到安全识别用户的需求了。

存储在服务器的数据会更加的安全,不容易被窃取。

但存储在服务器也有一定的弊端,就是会占用服务器的资源,但现在服务器已经发展至今,一些session信息还是绰绰有余的。

服务器端功能:

  1. 把用户的相关信息存储到服务器端的session中。
  2. 通过的机制加密随机生成一个唯一的session_id,用来标识用户相关信息并将session_id也存入session中。
  3. session作为cookiekeysession_id作为cookievalue创建cookie信息并返回给客户端。
  4. 客户端发送第二次以后的请求时,获取cookie信息,与服务器端session容器中session_id对比,得出指定用户信息。

客户端功能:

  1. 通过cookie存储session加密后的session_id信息。
  2. 以后浏览器再请求服务器的时候,就会自动的把cookie信息(包含session_id)发送给服务器。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!