1)第一次访问服务器的时候,会在响应头里面看到Set-Cookie信息(只有在首次访问服务器的时候才会在响应头中出现该信息)
上图中JSESSIONID=ghco9xdnaco31gmafukxchph;Path=/acr,首次访问服务器时服务端创建session,HttpSession session = request.getSession(); 当这句代码需要创建session的时候,服务器每创建一个session都会有一个相对应的session_id,并且服务器会把这个session_id以Cookie的形式回写给客户端(浏览器),下次同一个用户访问的时候会带这个session_id号过来
2)当再次请求的时候(非首次请求),浏览器会在请求头里将cookie发送给服务器(每次请求都是这样)
3)为什么除了首次请求之外每次请求都会发送这个cookie呢?(在这里确切地说是发送这个jsessionid)
事实上当用户访问服务器的时候会为每一个用户开启一个session,浏览器是怎么判断这个session到底是属于哪个用户呢?jsessionid的作用就体现出来了:jsessionid就是用来判断当前用户对应于哪个session。换句话说服务器识别session的方法是通过jsessionid来告诉服务器该客户端的session在内存的什么地方。服务端获取 jsessionid = request.getSession().getId()
4)总结,jsessionid的工作流程可以简单用下面的图表示:
转自:https://blog.youkuaiyun.com/chunqiuwei/article/details/23461995