Hello,

I was wondering if anything special is done with cookie based session
management in order for it to deal with HTTP pipelining.
https://en.wikipedia.org/wiki/HTTP_pipelining

Take the following scenario:

   Client                     Request 1
                        Server

 --------------------------------------------------------------->
 Invoke's servlet

                            servlet calls request.getSession()

                            a session is created with SID1

                                  Request 2

 ---------------------------------------------------------------->
Invoke's servlet

                             servlet calls request.getSession()

                             a session is created with SID2
                             Reply 1 (including SESSIONID : SID1)


<--------------------------------------------------------------
Client stores
SID1 in a cookie

                             Request 3 (including SESSIONID : SID1)

 ---------------------------------------------------------------->
Invoke's servlet

                             servlet calls request.getSession()

                             the first session is used.
                              Reply 2 (including SESSIONID : SID2)

 <-----------------------------------------------------------------

                             Request 4 (including SESSIONID : SID2)

 ---------------------------------------------------------------->
Invoke's servlet

                             servlet calls request.getSession()

                             the second session is used.
There are of course different scenario's that can be drawn but is there a
way tomcat deals with this problem? According to wikipedia, servers can
easily deal with the issue of pipelining but I believe that is not the case
when sessions are involved.

Is this scenario realistic? Is it possible that two sessions exist where
the information in the first session will be lost?

I know by default most browsers turn pipelining off because of a lot of
proxies and servers not supporting it. Is this one of the reasons?


Rgds,

Roel Storms

Reply via email to