URL parsing and IPv6 addresses

Greetings,

  In the course of adding some experimental IPv6 support to my system,
include the WWW software on my system, I ran across an issue in parsing
IPv6 addresses and URLs, and am looking for documents, if existing, to
resolve the issue.

  The issue being in short that in a reference to a HTTP server running
on port 8080, one might use "http://www.solluna.org:8080/" or 
"http://131.247.108.14:8080/"  The colon being used to separate the port
number from the address.  However, from RFC 1884 describing IPv6 addresses,
IPv6 addresses such as, quote: 

>            1080:0:0:0:8:800:200C:417A  a unicast address
>            FF01:0:0:0:0:0:0:43         a multicast address
>            0:0:0:0:0:0:0:1             the loopback address
>            0:0:0:0:0:0:0:0             the unspecified addresses
>
>       may be represented as:
>
>            1080::8:800:200C:417A       a unicast address
>            FF01::43                    a multicast address
>            ::1                         the loopback address
>            ::                          the unspecified addresses

This brings about the ambiguity that a reference to 
"http://::83F7:6C0E:8080/" does not seem to be immediately clear as to if
it refers to port 8080 on the server reachable at IPv6 address ::83F7:6C0E,
or if it refers to a default port at ::83F7:6C0E:8080.  

Technically, for ::83F7:6C0E:8080 at least, I believe it falls into a
reserved address range and might be deduced from that.  Addresses such as
1000:5::AB:1234:8080 become much more ambiguous, I think.

If there is a document addressing this issue, I would be most grateful
for a reference to it, but I have been unable to find references so far.

My initial inclination is to use a second '::' to indicate the port, as
in "http://::83F7:6C0E::8080/"  This appears to be unambiguous except
a case where there is only one '::' sequence, and it appears at the end,
as in "83F7:6C0E::8080" - my inclination is to represent this as 
"83F7:6C0E:::8080" or "83F7:6C0E::::8080".  However, if this problem has
already been addressed, then I just wish pointers to the approved 
representation that I might write code to it.

Thank you,
Kim

Received on Monday, 5 August 1996 23:22:26 UTC