Markus Reis wrote:
[...]
> There are however three new observation results:
> (1) This also happens with GET requests (Previously I tested GET requests only with an empty query string - sorry for that)

Well, if you keep on changing the conditions, we'll never get out of this ;-)

> I have now installed an equivalent Tomcat (actually it is a JBoss that uses Tomcat 5.5 as it's ServletEngine) instance on my own PC - so there's nothing between the client (a web browser on my PC) and the server (a Tomcat instance running on my PC). The observed results are the same.

Ultimately, there must be something very wrong in the configuration or one of the modules that you are using, because I cannot quite imagine why Tomcat would generate umpteen session-id's and corresponding cookies for a single request. But I am not at all familiar with JBoss, and have no idea what kind of "layer" there may still be between your browser and Tomcat.

Since you mention JBoss (which I don't know), is that still some kind of HTTP server front-end to Tomcat ?
I see that you are using port 48080 to access it.
In your Tomcat "server.xml", is there a Connector with that same port number ?

It seems that this is a problem only you are having, some there must be something quite unique somewhere. To narrow it down, you really need to be systematic, see below about GET/POST.

To my knowledge, Tomcat will only generate a new session and new session-id if :
- it receives a request without a JSESSIONID cookie
- and there is also no session-id encoded in the request URL
and it will only generate one session, and one JSESSIONID cookie per request.

That you do not see this strange behaviour from the second request on, is normal, because your browser is then sending a JSESSIONID Cookie header back to Tomcat, so it finds it and does not need to generate a new session.

But, your arithmetic observations would tend to indicate that there is one session-id generated per first request, plus one per GET/POST parameter, which really does not make sense at all..., specially since all these corresponding Set-Cookie headers end up being sent back in a single response.

It is a bit far-fetched to make guesses at this point, but it almost looks as if there is still something between your browser and Tomcat, that intercepts the request, splits it into n requests for Tomcat, gets n responses from Tomcat, and puts them back together into one single response. I cannot quite imagine what that could be.

Does your Tomcat AccessDumperValve show one single request, or n ?

After this, and if you can really pin down what happens using a precise set of conditions with GET/POST below, I am afraid I am out of my depth,
and cannot help you further.




And, how do you do this exactly, to switch between a GET request and a POST request ?

In the case of a GET request I add the parameters I want to send in the query string 
(http://localhost:48080/webAntWeb/NewSession?BEA_KURZ=sj&BEARBEITER=Josef+Schweiger&BERATERNR=&BANK=47150&FILIALE=VB+N%D6-Mitte&VORVERTRAG=&VER_BEGINN=&VER_ABLAUF=&KUNDENNR=77777&AKAD=&VORNAME=Hilde&ZUNAME=Musterfrau&GESCHL=W&GEBDAT=05.05.1965&SVNR=4085050565&STRASSE=Stra%DFe+21&PLZ=1090&ORT=Wien&TELNR=01+%2F+31380+%2F+999&EMAIL=&AUSART=02&AUSNR=666666&AUSBEHOERDE=Pol.Dion.+Wien&KTONR=999999999&BLZ=43000&NAME_VV=&NAME2_VV=&STRASSE_VV=&PLZ_VV=&ORT_VV=&SEL_VTR=&testfall=1&aktion=)
In the case of a POST request I use a html form with the above input fields and 
submit the form.

I am not sure that the following is the reason of your problems, but since you are testing and trying to narrow-down the problem conditions, it helps to be precise.

The difference between a POST and a GET is not whether the parameters are transmitted or not in the URL's query string. POST and GET are two different HTTP "verbs" sent to the server, and the way in which the parameters are sent depends of the "enctype" attribute of your <form> tag. (I use the word "parameter" a bit loosely below, but explaining that would make it even longer, so I'll skip it)

a) <form action="..." method="GET" enctype="application/x-www-form-urlencoded"> will make a "GET" request, with the parameters in the query string (the part after the ? ) of the target URL (In other words, you can simulate your "URL" example above this way, even using a form)

b) <form action="..." method="GET" enctype=""multipart/form-data"">
will make a "GET" request, with the parameters sent in the body of the request, not as a query string (In other words, the same form, just by changing the "enctype", will now send the same parameters in the request body, not in the URL, but the call will still be a GET)

c) <form action="..." method="POST" enctype="application/x-www-form-urlencoded"> will make a POST request, with the parameters sent in the URL's query string, despite the fact that this is a "POST"

d) <form action="..." method="POST" enctype="multipart/form-data">
will make a POST request, with the parameters sent in the body


If you do not specify the above "method" and "enctype" attributes, then you fall into various kinds of browser default behaviours, which may hit you where you do not expect, and confuse things.

By default, if you just type a URL in the browser, with a query string, your browser will make a GET request like case (a). By default also, if you have a <form> containing input fields, your browser *may* automatically use method (d) above, but that is a bit less certain.

In other words, force it, by specifying "method" and "enctype" explicitly, and you will not have problems or confusion.





---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to