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.