tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Remy Maucherat" <r...@apache.org>
Subject Re: Why tomcat 3.x makes redirects (302) absolute ?
Date Sun, 05 Nov 2000 04:18:51 GMT
> Hola Craig:
> 
> > 
> > See servlet 2.2 specification, section 6.3, first complete paragraph.
> > Making the URL absolute is required.
> > 
> 
> It's required when it's used trought the convenience methods
> (sendRedirect & sendError) not when the container send itself a
> redirect...  and this was the reasoning behind my question when a webapp
> served by tomcat standalone it's accesed trought a router with NAT a
> simple http://host:8080/context fails because the redirect message has
> the internal IP or name of the machine in the "Location" header, thus
> the client can not found the original host of the redirect that from the
> client point it's the router not the internal name or ip, this can be
> done without making url absolute for tomcat own use, and when it's done
> trought a sendRedirect made it absolute as the spec says, i'm really
> wrong ?

It's a requirement of the HTTP spec :

14.30 Location

   The Location response-header field is used to redirect the recipient
   to a location other than the Request-URI for completion of the
   request or identification of a new resource. For 201 (Created)
   responses, the Location is that of the new resource which was created
   by the request. For 3xx responses, the location SHOULD indicate the
   server's preferred URI for automatic redirection to the resource. The
   field value consists of a single absolute URI.

       Location       = "Location" ":" absoluteURI

Remy


Mime
View raw message