程序员大数据

【转载】URL中的文本IPv6地址的格式RFC2732

2019-01-08  本文已影响2人  木木与呆呆

RFC2732规范中URL中的文本IPv6地址的格式,
截取其中重要部分原文如下:

RFC 2732 Format for Literal IPv6 Addresses in URL's

December 1999

Abstract

This document defines the format for literal IPv6 Addresses in URL's
for implementation in World Wide Web browsers. This format has been
implemented in the IPv6 versions of several widely deployed browsers
including Microsoft Internet Explorer, Mozilla, and Lynx. It is also
intended to be used in the IPv6 version of the service location
protocol.

This document incudes an update to the generic syntax for Uniform
Resource Identifiers defined in RFC 2396 [URL]. It defines a syntax
for IPv6 addresses and allows the use of "[" and "]" within a URI
explicitly for this reserved purpose.

1.Introduction

The textual representation defined for literal IPv6 addresses in
[ARCH] is not directly compatible with URL's. Both use ":" and "."
characters as delimiters. This document defines the format for
literal IPv6 Addresses in URL's for implementation in World Wide Web
browsers. The goal is to have a format that allows easy "cut" and
"paste" operations with a minimum of editing of the literal address.

The format defined in this document has been implemented in the IPv6
versions of several widely deployed browsers including Microsoft
Internet Explorer, Mozilla, and Lynx. It is also intended to be used
in the IPv6 version of the service location protocol.

1.1.Requirements

The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD,
SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, if and where they appear
in this document, are to be interpreted as described in [KEYWORDS].

World Wide Web browsers SHOULD implement the format of IPv6 literals
in URL's defined in this document. Other types of applications and
protocols that use URL's MAY use this format.

2.Literal IPv6 Address Format in URL's Syntax

To use a literal IPv6 address in a URL, the literal address should be
enclosed in "[" and "]" characters. For example the following
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

would be represented as in the following example 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 document updates the generic syntax for Uniform Resource
Identifiers defined in RFC 2396 [URL]. It defines a syntax for IPv6
addresses and allows the use of "[" and "]" within a URI explicitly
for this reserved purpose.

The following changes to the syntax in RFC 2396 are made:
(1) change the 'host' non-terminal to add an IPv6 option:

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

where IPv6address is defined as in RFC2373 [ARCH].

(2) Replace the definition of 'IPv4address' with that of RFC 2373, as
it correctly defines an IPv4address as consisting of at most three
decimal digits per segment.

(3) Add "[" and "]" to the set of 'reserved' characters:

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

and remove them from the 'unwise' set:

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

4.Security Considerations

The use of this approach to represent literal IPv6 addresses in URL's
does not introduce any known new security concerns.

顺便说下,里面的英文还是比较简单的,别怕还有在线翻译工具呢~

原文链接

RFC 2732 Format for Literal IPv6 Addresses in URL's

上一篇下一篇

猜你喜欢

热点阅读