JDK-8019345, RFC3986, RFC2396 and java.net.URI
Alan Bateman
alan.bateman at oracle.com
Mon Nov 11 14:58:50 UTC 2024
On 10/11/2024 12:04, Peter Firmstone wrote:
> :
>
> Java doesn't implement RFC2396 strictly, as it has an expanded
> character set that doesn't require escaping and can result in more
> than one normalized form. My understanding is its these types of
> corner cases regarding character escaping are what prevented Java's
> URI implementation from being upgraded to RFC3986.
java.net.URI (as opposed to legacy and JDK 1.0 era java.net.URL)
rigorously specifies the deviations from RFC 2396, and the reasons for
the deviations.
A big part of the difference between RFC 2396 and 3986 is how the
authority component is treated. With RFC 2396 it gets parsed as either a
registry-based or server-based authority so very different to the newer
RFC. Relative Resolution (in the new RFC) is another significant
difference, if URI were upgraded then its resolve method would produce
very different results.
-Alan.
More information about the net-dev
mailing list