济南Java培训
达内济南山大路中心

17156168575

热门课程

java web开发—session的工作原理总结

  • 时间:2017-06-30
  • 发布:互联网
  • 来源:互联网

    session的工作原理总结

    一、什么是session

    session是一次浏览器和服务器交互的会话,在jsp中,作为一个内置对象存在.我的理解,就是当用户打开网页时,程序会在浏览器中开辟一段空间来存储作为session的存储,可以对一些用户信息进行保存.session就是一个会话级别的cokkie,外加服务器内存中的一组散列表.当关闭浏览器时,cookie会消失,session也就消失了,这个cookie不写在磁盘上,而是写在浏览器的缓存中.

    二、session和cookie的区别

    cookie数据存放在客户的浏览器中,session数据放在服务器上

    cookie不是很安全,别人可以轻易的获取本地的cookie并获取相关信息进行欺诈

    session有时间限制,会在设置的一定时间内保存到服务器上.

    cookie有限制,单个为3k,一个站点在客户端存放的cookie不能超过3k

    所以一般将登陆的用户信息保存到session上,以防被盗,如果是其他信息,可以放在cookie里面,如果考虑到服务器的性能,减轻压力,应该使用cookie

    三、session的工作原理

    服务器和浏览器采用的是http无状态的通讯,那么如果多客户对服务器进行访问的话,服务器怎么区分呢,那就是使用session.在session的机制中,有一个session_id,作为一个独一无二的标识,来对客户端进行区分.每次浏览器请求的时候,就会带上这个标识.这个标识由服务器生成.

    简述一下工作的流程:

    当浏览器访问服务器时,服务器根据需求设置session,并将会话的信息保存在服务器上,并将标志着session的session_id传递给浏览器.

    浏览器会将收到的session_id保存在内存中,这个便是无过期时间的cookie,当浏览器关闭时,cookie会被清理,同理session_id也就没有了.

    当每次浏览器访问服务器的时候,都会带上这个session_id,服务器根据这个id获取浏览器的状态返回数据.

    session有一个超时时间,当浏览器因为一些原因被关闭的时候,服务器端的session不会马上被释放,只要我们知道session_id,一样可以获取到服务器端的应用数据.一般会给服务器端的session设置一个过期时间,保证了数据的安全性.

    总结:

    正常的web中的C/S模式下,在两端都会保存session,两者通过一个唯一的session_id相关联.client端的session保存在cookie中,当关闭浏览器的时候,cookie清空,session也同样没有了.server端的session保存在内存中,在client端关闭后,还会存在一段时间,到达超时时间后,生命周期完成被回收.在被回收前的这个过程中,只要知道这个唯一的session_id,就可以获取到session中存储的信息.
济南java培训班
    如上图:红框内的就是session_id

    应用:

    大部分的web开发,session都用来保存用户的登录状态以及用户名密码等信息

济南java培训班

上一篇:济南java软件开发培训班哪家好?
下一篇:java学习常用工具介绍

谷歌在中国招募AI工程师;各主流编程语言的发展变化

看完这篇文章掌握学习java技能

Java工程师实现月薪2W需要几年?

达内“发现杯”青少年编程大赛开战,数千名编程小达人竞技

选择城市和中心
贵州省

广西省

海南省