会话是大家开发Web应用的常用技术,那么会话是什么,会话的用途还有工作原理又是什么?
在web应用中,作为客户端的浏览器,通过请求/响应这种模式访问同一个web网站的各种web页面,从开始访问这个服务器直到结束整个过程称为一次会话。
那么就有一个问题,同时访问这个服务器的用户请求有很多。但是无状态协议HTTP,导致服务器连鱼的记忆都没有,把一个行为属于用户A还是用户B忘得一干二净。
解决上面的问题,就需要在客户端第一次请求web服务器的时候,web服务器生成一种称为“会话标识符”的ID,然后伴随响应发送给客户端,之后的通信中客户端发来的请求只需要带着这个特定的ID,服务器就可以知道这是哪个客户端了。Cookie就是这样的一种机制,它可以弥补HTTP协议无状态的不足。在Session出现之前,基本上所有的网站都采用Cookie来跟踪会话。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。
下图中为http响应头,其中的JSESSIONID是由服务器产生的会话ID,一般以Cookie的形式发送。在随后的客户端发起的每次请求中都以Cookie的形式将会话ID发送给服务器,这样既可以维持会话状态了。