由于HTTP协议本身不具有会话状态,所以,要想在Web应用程序中维持会话状态信息
和实现有状态的会话管理,必须采用一些专门的技术来进行解决。
要实现有状态的会话,就需要在Web服务器程序和客户端浏览器之间来回传递会话ID,
以关联同一客户端浏览器向服务器发出的连续请求。实现在Web服务器程序和
客户端浏览器之间来回传递会话ID的技术被称为会话跟踪技术。
什么是会话ID呢?
HTTP协议是一种无状态的协议,WEB服务器本身不能识别出哪些请求是同一个浏览器发出的 ,
浏览器的每一次请求都是完全孤立的。 WEB服务器端程序要能从大量的请求消息中区分出哪些
请求消息属于同一个会话,即能识别出来自同一个浏览器的访问请求,这需要浏览器对其发出的
每个请求消息都进行标识,属于同一个会话中的请求消息都附带同样的标识号,而属于不同会话
的请求消息总是附带不同的标识号,这个标识号就称之为会话ID(SessionID)。
会话ID可以通过一种称之为Cookie的技术在请求消息中进行传递,也可以作为请求URL的
附加参数进行传递。会话ID是WEB服务器为每客户端浏览器分配的一个唯一代号,它通常
是在WEB服务器接收到某个浏览器的第一次访问时产生,并且随同响应消息一道发送给浏览器。
会话过程由WEB服务器端的程序开启,一旦开启了一个会话,服务器端程序就要为这个会话
创建一个独立的存储结构来保存该会话的状态信息,同一个会话中的访问请求都可以且只能访问
属于该会话的存储结构中的状态信息。
什么是session?
使用Cookie和附加URL参数都可以将上一次请求的状态信息传递到下一次请求中,但是如果
传递的状态信息较多,将极大降低网络传输效率和增大服务器端程序处理的难度。
Session技术是一种将会话状态保存在服务器端的技术 。
客户端需要接收、记忆和回送 Session的会话标识号,Session可以且通常是借助Cookie来传递会话标识号。
如何建立和使用session?
Servlet API规范中定义了一个HttpSession接口,HttpSession接口定义了各种管理和操作会话状态的方法。
HttpSession对象是保持会话状态信息的存储结构,一个客户端在WEB服务器端对应一个各自的HttpSession对象。