tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Konstantin Kolinko <knst.koli...@gmail.com>
Subject Re: response.encodeURL("http://localhost:8080") produces an invalid URL?
Date Wed, 29 Jun 2011 11:55:07 GMT
2011/6/29 Rainer Jung <rainer.jung@kippdata.de>:
> Motivated by
>
> https://issues.apache.org/jira/browse/WICKET-3841
>
> I tested response.encodeURL("http://localhost:8080") and I get
> http://localhost:8080;jsessionid=... (cookies off).
>
> Note that there is no slash between the port and the sessionid path info.
>
> According to my reading of RFC3986 (URIs), the input URI is a correct
> URI, the resulting URI is not: because it has an authority, the rest
> must be zero or more path-abempty, which always start with a slash.
>
> Did anyone stumble over this yet? If there's no objections, I'll write a
> patch and check, what the TCK has to say.
>
> The spec does not see to contain any specification of encodeURL apart
> from the JavaDoc.
>

>From RFC3986 alone I agree that
1) http://localhost:8080
looks like a valid URL by RFC3986.
(like any other URL without a trailing slash, e.g. mailto:)

>From HTTP standpoint it should be http://localhost:8080/ and in my
experience browsers add the trailing slash automatically. I have not
looked whether the actual HTTP spec is more strict regarding such
URLs.

2) http://localhost:8080;jsessionid=...
is an invalid URL.

I am +1 to use "/" as the path if it is an absolute URL, scheme is
http or https and the path is empty. (I guess that there is a check
for the scheme name already?).

So that it becomes
http://localhost:8080/;jsessionid=...

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message