Servlet Session

86 阅读2分钟

Session是什么

web诞生之初,资源提供商将一些资源放在网上,用户知道地址以后向其发送一个请求,服务器就会将资源响应给客户,那个时候,服务器并不需要区别这个请求是哪个用户发送过来的,而无状态的http请求十分契合这样的模式。

随着,服务的不断发展,我们迫切需要一种方案,解决用户区分问题,我们要给不同的用户提供针对性的资源内容。那么,是什么样的方案呢?

没错,就是这个session技术,session翻译成中文叫做会话,也就是一组完整的请求和响应,但是我认为,session是一种服务端的认证技术,用于确定你是你的一种技术。

既然,我们知道了这个技术的本质就是确定你是你,那下一步我们就是来了解一下这个技术的技术细节部分。

Servlet Session技术细节

看这个标题——Servlet Session技术细节,我们这里有servlet这个前置定语,session毕竟是一种思想,一种标识你是你的思想,那么技术厂商要做的是将思想变成现实,而这里是servlet对session技术的一种实现

我们首先说一下servlet的大致思想:服务器通过session和cookie配合的方式来验证,session是用户在服务器端的备份,而cookie是用户在本地的备份,用户向服务器发送请求时会在http请求中携带cookie,服务器端拿到cookie以后去比对服务器中的session,从而标识用户。这个标识的值其实就是JSESSIONID,我们如果使用servlet很多时候可以看到这个JSESSIONID的cookie。如果cookie被禁用了,那么可以通过在url上绑定一个JSESSIONID的方式完成认证过程。

注意:session表示的就是一次会话,如果关闭浏览器或者长时间没有请求了,那么这次会话就结束了,那么JSESSIONID就重新更新了,因此,session的生命周期并不长(tomcat默认30分钟)

文章参考:如何区分不同用户——Cookie/Session机制详解