Remy Maucherat wrote:
[...]
Now the big question is actually what the new getLocalPort call should return. If you need an extra localPort (and its friend getLocalName - did you notice the getLocalName() call was always returning whatever hostname was in the host header) field in the request because it doesn't correspond to vhosting (I consider it would be yet another major blunder of the Servlet spec, but what can I do ...), then so be it.

The getLocalXXX() methods are intended to provide information about where the request was _recieved_ by the container, rather than where it was _sent_ by the client, which is useful information for some types of applications, for instance to detect if there's any vhosting involved.

So you have three sets of methods for getting address/port info.
* Where the request was received (server socket):
    getLocalName()
    getLocalPort()
    getLocalAddr()

* Where the request was sent (Host header info):
    getServerName()
    getServerPort()

* Where the request comes from (client socket):
    getRemoteName()
    getRemotePort()
    getRemoteAddr()

With an HTTP/1.1 request with a Host header "foo.com" value, proxied
through Apache to Tomcat listening on port 8005, from a client (or a
proxy) at 4.62.132.17 (bar.com) port 1766, the methods should return
these values:

    getLocalName() -> localhost (or some other local interface)
    getLocalPort() -> 8005
    getLocalAddr() -> 127.0.0.1 (or some other local interface)

    getServerName() -> foo.com
    getServerPort() -> 80

    getRemoteName() -> bar.com
    getRemotePort() -> 1766
    getRemoteAddr() -> 4.62.132.17

Without proxying through Apache, a Host header "localhost:8080"
value and Tomcat listening on port 8080, it would look like this
instead:

    getLocalName() -> localhost
    getLocalPort() -> 8080
    getLocalAddr() -> 127.0.0.1

    getServerName() -> localhost
    getServerPort() -> 8080

    getRemoteName() -> bar.com
    getRemotePort() -> 1766
    getRemoteAddr() -> 4.62.132.17

HTH,
Hans
--
Hans Bergsten                                <[EMAIL PROTECTED]>
Gefion Software                       <http://www.gefionsoftware.com/>
Author of O'Reilly's "JavaServer Pages", covering JSP 2.0 and JSTL 1.1
Details at                                    <http://TheJSPBook.com/>


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to