RFC 2732

Format for Literal IPv6 Addresses in URL's

πŸ“… published December 1999, from ietf

Format for Literal IPv6 Addresses in URL's ✨

Network Working Group πŸŽ€ RFC 2732, Standards Track, December 1999 πŸ“… Authors: R. Hinden (Nokia), B. Carpenter (IBM), and L. Masinter (AT&T) πŸ‘― This one updates RFC 2396 πŸ”„


Status of This Memo

okay so this doc is a Standards Track protocol for the Internet community, and it's basically asking everyone to talk about it and suggest fixes πŸ’¬ If you want to know where it sits in the official standardization process, check the current "Internet Official Protocol Standards" (STD 1) πŸ“‹ Distribution is unlimited, so share it wherever 🌸

Β© The Internet Society (1999). All Rights Reserved. πŸ”’

Abstract

this doc defines how literal IPv6 addresses should look inside URLs so web browsers can use them 🌐 The format is already in the IPv6 versions of some seriously popular browsers, including Microsoft Internet Explorer, Mozilla, and Lynx πŸ’… It's also meant to be used in the IPv6 version of the service location protocol ✨

It also includes an update to the generic URI syntax from RFC 2396 [URL]. It defines a syntax for IPv6 addresses and lets you use "[" and "]" inside a URI, but only for this reserved purpose πŸ¦‹

1. Introduction 🧚

the textual form of literal IPv6 addresses in [ARCH] doesn't play nicely with URLs 😭 Both use ":" and "." as delimiters, so things get messy. This doc sets the URL format for literal IPv6 addresses for web browsers. The big goal is easy "cut" and "paste", with as little editing of the literal address as possible πŸ’–

Like the abstract says, the format is already in the IPv6 versions of Microsoft Internet Explorer, Mozilla, and Lynx, and it's also meant for the IPv6 version of the service location protocol 🫢

1.1 Requirements

ok the key words are MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, wherever they show up in this doc. They're interpreted as described in [KEYWORDS] πŸ“

World Wide Web browsers SHOULD implement the IPv6 literal format in URLs defined here 🌈 Other apps and protocols that use URLs MAY use this format too πŸ“

2. Literal IPv6 Address Format in URL's Syntax πŸ’œ

to put a literal IPv6 address in a URL, you should wrap it in "[" and "]" characters πŸŽ€ Here are some example literal IPv6 addresses:

FEDC:BA98:7654:3210:FEDC:BA98:7654:3210
1080:0:0:0:8:800:200C:4171
3ffe:2a00:100:7031::1
1080::8:800:200C:417A
::192.9.5.5
::FFFF:129.144.52.38
2010:836B:4179::836B:4179

and here's how they'd look as URLs πŸ¦‹

http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html
http://[1080:0:0:0:8:800:200C:417A]/index.html
http://[3ffe:2a00:100:7031::1]
http://[1080::8:800:200C:417A]/foo
http://[::192.9.5.5]/ipng
http://[::FFFF:129.144.52.38]:80/index.html
http://[2010:836B:4179::836B:4179]

3. Changes to RFC 2396 πŸ”§

this doc updates the generic URI syntax from RFC 2396 [URL] πŸ”„ It defines a syntax for IPv6 addresses and lets "[" and "]" show up in a URI, but only for this reserved purpose πŸ’…

Here are the changes to the RFC 2396 syntax:

(1) The 'host' non-terminal gets an IPv6 option added 🌸

host          = hostname | IPv4address | IPv6reference
ipv6reference = "[" IPv6address "]"

where IPv6address is defined as in RFC2373 [ARCH] ✨

(2) The definition of 'IPv4address' gets replaced with the one from RFC 2373, because it correctly says an IPv4address is at most three decimal digits per segment πŸ”’

(3) "[" and "]" get added to the 'reserved' set πŸ”’

reserved    = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
              "$" | "," | "[" | "]"

and they get removed from the 'unwise' set πŸ™ˆ

unwise      = "{" | "}" | "|" | "\" | "^" | "`"

4. Security Considerations πŸ’€

⚠️ Using this approach to represent literal IPv6 addresses in URLs does not introduce any known new security concerns. ⚠️

5. IANA Considerations πŸ“‹

None.

6. Authors' Addresses πŸ‘‘

Robert M. Hinden
Nokia
313 Fairchild Drive
Mountain View, CA 94043
USA

Phone: +1 650 625 2004
EMail: hinden@iprg.nokia.com
Web: http://www.iprg.nokia.com/~hinden


Brian E. Carpenter
IBM
iCAIR, Suite 150
1890 Maple Avenue
Evanston IL 60201
USA

EMail: brian@icair.org


Larry Masinter
AT&T Labs
75 Willow Road
Menlo Park, CA 94025

EMail: LMM@acm.org
Web: http://larry.masinter.net

7. References πŸ“š

[ARCH]     Hinden, R. and  S. Deering, "IP Version 6 Addressing
           Architecture", RFC 2373, July 1998.

[STD-PROC] Bradner, S., The Internet Standards Process -- Revision 3,
           BCP 9, RFC 2026, October 1996.

[URL]      Fielding, R., Masinter, L. and T. Berners-Lee, "Uniform
           Resource Identifiers: Generic Syntax", RFC 2396, August
           1998.

Β© The Internet Society (1999). All Rights Reserved.

this doc and its translations can be copied and shared, and derivative works that comment on or explain it, or help implement it, can be made, copied, published, and distributed, in whole or in part, with no restrictions, as long as the copyright notice and this paragraph are included on every copy and derivative 🫢 But the doc itself can't be modified in any way, such as by removing the copyright notice or the references to the Internet Society or other Internet orgs. The exceptions are developing Internet standards (in which case the Internet Standards process copyright procedures must be followed) or translating it into languages other than English 🌍

The permissions above are perpetual and won't be revoked by the Internet Society or its successors or assigns πŸ’œ

This doc and the info in it are provided on an "AS IS" basis, and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE πŸ’€

Acknowledgement 🌷

Funding for the RFC Editor function is currently provided by the Internet Society 🫢

πŸ“¦ where this page comes from