关于Http Session的概念和原理及其应用

在Web开发中session这个概念有的时候起到很大的作用,因为HTTP协议本身是无状态的,客户端只需要简单的向服务器请求,无论是客户端还是服务器都没有纪录彼此过去的行为,每一次请求之间都是独立的,而session就好比一个服务员能够认出再次光临的老顾客并且记得上次这个顾客还欠店里一块钱

如: 在做一个类似于电商平台的购物车时候,当顾客挑选到称心的商品想要加入购物车,而没有登录,提示登录操作完毕后,将商品加入到购物车,而接下来如果再次看到称心的商品想加入购物车那么还要登录吗?设想一下如果每次加入购物车时都登录,得多么麻烦啊,那个电商平台或许也要关门大吉了,而有了需求肯定会有解决的方法!就是session可以记录第一次请求的存的账号,在session存在的时间不用重复登录账号密码!!

这个时候有了一种概念叫做session,用来解决这个问题 1.session的概念是: Session代表服务器与浏览器的一次会话过程,这个过程是连续的,也可以时断时续的。

2.Session的创建: 而最近了解到session的创建时不是在有客户端访问时就被创建,而是在服务端执行request.getSeesion().setAttribute();这种语句session对象才会捕捉创建,但是session会消耗内存资源,注意关闭session,就是在不用session的时候 JSP头文件显示<% @page session=”false”%>禁止session,而如果没有禁止禁止的话,在打开浏览器第一次请求该JSP的时候,服务器会自动为其创建一个session,并赋予其一个ID,作为标识放在请求头发送给客户端的浏览器。以后客户端再次请求本应用中其他资源的时候,会自动识别,并根据ID找到之前第一次创建的session对象使用

3.Session怎么消失: session是由服务器创建的,跟浏览器没有半毛钱关系所以解释一下当浏览器关闭session就会消失, 只是在以下情况消失 (1)Session超时:正常如果不设定Session存在的时间是30min,但不建议session设置太长的时间,session一直存在会对服务器的压力压力变大,因为Session变量同样需要自己的运行时间和存储空间 (2)在程序调用session.invalidate() (3)服务器关闭,如使用tomecat服务器,当停止它就会消失

4.对于session来说,session是一个容器,可以存放会话过程中的任何对象。同时,session是(request对象)产生的,同一个会话中多个request共享了一session对象,可以直接从请求中获取到session对象。

经验分享 程序员 微信小程序 职场和发展