André Warnier wrote:
Shanti Suresh wrote:
André

Please kindly share the half-page that you have written up so far.
Actually, would you please finish it up and then post?


Well, here you go. Luckily, it was still in my drafts folder.
Remember that it was a draft, and that a more accurate explanation is available in the Servlet Spec.



A HTTP request looks like this :

GET /the_url.. HTTP/1.1<CR/LF>
Host: somehost.company.com<CR/LF>
..

The "Host:" header is examined first, to find out to which configured Tomcat <Host> this request is addressed. If a matching Host is found, then this will be the one which processes this request further. If none is found, then the request will be processed by Tomcat's default <Host> (the one named in the <Engine> tag).

Then comes the evaluation of the URL ("/the_url..").
Within the selected <Host>, Tomcat will first attempt to match the first part of the URL with (the path of) one of the (non-ROOT) defined contexts. If a match is found, the request will be passed to that context for processing (*). If no match is found, and there is no default context defined, then Tomcat will return an error to the client. If there is a default context defined, then Tomcat will pass this request to the default context (the one under (appBase)/ROOT) for processing. Within that default context, a match will then be attempted with any of the <url-mapping> elements of that default context. If a mapping is found, the request will be passed to the corresponding servlet for processing. If no mapping is found, the request will be passed to the default servlet of the default context for processing. That one attempts to find a file on disk within the default context, which matches the path indicated by the URL. If it finds one, the file will be returned as the response. If no such file is found, a 404 error will be returned.

(*) within a matching context, there will be further matching of the second part of the URL, with one the defined servlet's <url-mapping> elements.

addendum : and (as this was an unfunished draft)
I should have added that each non-ROOT context also has a default servlet, inherited from the default (catalina_base)/conf/web.xml. So if within a context no appropriate <url-mapping> can be found for this request to this context, the request will be processed by the default servlet of that context, which will look for a file on disk to satisfy the request. And if it doesn't find one, it will return a 404 error.

I should also have added that the URL-mapping as described above is a bit rough, and that the Servlet Spec explains more accurately how this is done.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to