sessionID是如何产生的?它是如何在客户端和服务器端传递的?

解决方案 »

  1.   

    sessionID具体的产生方式因服务器不同而不同。
    传递通过cookie,也可以通过以;jsessionid=*********的方式加在url后面。
      

  2.   

    cookie让写就写在cookie里,cookie禁用就重写url
      

  3.   

    客户端首次访问时,服务器端创建一个新的session对象.并同时生成一个sessionid,并在此响应中将sessionId以响应报文的方式返回客户端浏览器内存或以重写url方式送回以保持整个会话,只要服务器端的该session对象未销毁,以后每次调用request.getSession()时就直接根据客户端的sessionid来检索服务器端生成的session对象并返回,不会再次新建对象。此情况除外:该sessionid没有检索到对应session对象。
      

  4.   

    服务器产生,服务器维护。客户端通过cookies或者url重写方式保持会话!
      

  5.   

        客户端(浏览器)首次向服务器发生请求时,服务器端产生一个Session对象,该对象可在服务器中以唯一的ID识别,响应后,将sessionID以相应报文的形式返回给浏览器(sessionID默认保存在内存中),之后在第二次请求服务器时,就会将该sessionID一同传送给服务器,以识别相应的session对象。简单的说,就是通过sessionID来维持客户端和服务器端的会话。
    这其中要注意两点:
    1、如果长时间没有再次发生请求,session对象就会销毁,因为session有一定的生命时间;
    2、重新打开浏览器,此时没有起初服务器返回的sessionID,这样请求时找不到对应的session。