Session

  HTTP协议是无状态的,session(会话)是客户端与服务器之间保持状态的解决方案。

  • 客户端发送用户名和密码到服务器。

  • 服务器收到请求,身份验证通过后,创建一个session,将sessionID以cookie的形式返回给客户端。

  • 客户端后续发起的请求,浏览器都会自动带上cookie中的sessionID。

  • 服务器收到请求,根据sessionID读取session数据。

Cookie 是网页浏览器用来保存用户信息的文件。

Session 数据保存在服务器。PHP session 保存到临时文件,Java session 保存在内存中。

如果浏览器禁用了cookie,可以通过URL重写的方式发送到服务器。

session 产生的问题?

(1)无法避免 CSRF (跨站请求伪造)攻击。

(2)服务器集群,session 无法共享。

可以采用 JWT 解决方案,在服务器上不存储session数据。

posted @ 2018-12-19 17:42  PIPO2  阅读(145)  评论(0编辑  收藏  举报