客户端与服务端的sessionId的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014621467/article/details/72730730
  1. 客户端的sessionid为 String sessionID = request.getRequestedSessionId();
  2. 服务器端的sessionid为 String ID = request.getSession().getId();
  3. 当客户端第一次请求的时候,sessionID是null,而ID是随机生成的一串字符串,也就是sessionID不存在,故服务器自动生成一个session来处理请求,即生成ID;
  4. 浏览器中:
    1. 当请求一个地址的时候,浏览器会自动在地址后面添加jsessionid的值,如:wapbrowse.jsp;jsessionid=5AC6268DD8D4D5D1FDF5D41E9F2FD960?curAlbumID=9;
    2. 服务器自动根据jsessionid的值,找到对应的服务器端的ID,如果没找到,则重新生成ID,而此时,sessionID=jsessionid;
    3. 如果找到了当然sessionID=jsessionid=ID。
    4. 若jsessionid为伪造的一个字符串,服务器端自然是没有对应的session的,此时,若浏览器中没有jsessionid的缓存,则sessionID=jsessionid!=ID,而如果浏览器中已有缓存jsessionid,则sessionID=ID
    5. 在ajax请求中,需要程序员手动拼接jsessionid,否则每次得到的sessionID=null,从而自动生成ID,此时,直接调用session.getAttribute(“xxx”);是始终为null的,达不到session实现一个会话内参数共享的目的。(ajax请求中不会自动拼接jsessionid字段,服务器也就每次都当做新的请求,每次创建新的session)

猜你喜欢

转载自blog.csdn.net/u014621467/article/details/72730730