摘要

本文档定义了在WWW浏览器的URL中执行的文本IPv6地址的格式。在包括Microsoft的IE,Mozilla和Lynx等几个已经被广泛安装使用的浏览器的IPv6版本中,这种格式已经被使用。并且这种格式也将被应用于服务定位协议的IPv6版本中。
本文档包括了一个对在RFC2396[URL]被定义的统一资源标识符中的一般性语法的更新。为了这个预定目标,本文档明确定义了IPv6地址的语法规则并允许在统一资源标识符中使用“[”和“]”符号。

1.介绍

在[ARCH]中定义的文本IPv6地址的原文表述不能直接和URL的表述方法相适应。尽管两者都使用符号“:”和“.”作为分隔符。本文档定义了在WWW浏览器的URL中执行的文本IPv6地址的格式。其目的就是为了得到一种格式,能够很容易的使用剪切和粘贴操作以使文本地址编辑操作达到最少。
在包括Microsoft的IE,Mozilla和Lynx等几个已经被广泛安装使用的浏览器的IPv6版本中,这种格式已经被使用。并且这种格式也将被应用于服务定位协议的IPv6版本中。

1.1要求

如果本文档中任何地方出现关键词MUST,MUSTNOT,REQUIRED,SHALL,SHALLNOT,SHOULD,SHOULDNOT,RECOMMENDED,MAY,以及OPTIONAL,都将和它们在[KEYWORDS]中的定义一致。
WWW浏览器‘SHOULD’(应当)在URL中使用本文档定义的IPv6文本格式。其它一些使用URL的应用和协议‘MAY’(可以)用这种格式。

2.URL语法中的IPv6地址文本格式

为了在一个URL中使用一文本IPv6地址,文本地址应该用符号“[”和“]”来封闭。例如下列文本IPv6地址:
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
就应该写做下列URL示例:
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.对RFC2396的修改

本文档包括了一个对在RFC2396[URL]被定义的统一资源标识符中的一般性语法的更新。为了这个预定目标,本文档明确定义了IPv6地址的语法规则并允许在统一资源标识符中使用“[”和“]”符号。

对RFC2396中语法的一些改变如下:
(1)在‘主机(host)’末端增加一节IPv6项:
主机=主机名|IPv4地址|IPv6参考地址
ipv6参考地址="["IPv地址"]"
这里的IPv6地址和RFC2373[ARCH]中定义的一致。
(2)由于RFC2373中“IPv4地址”的定义更清晰的说明了IPv4地址是由每节最多三个
十进制数组成的,所以用这个定义来替换RFC2396中的定义。
(3)在’设定‘符号组中增加“[”和“]”:
设定(reserved)=";"|"/"|"?"|":"|"@"|"&"|"="|"+"|
"$"|","|"["|"]"
并且把它们从’非合理‘符号组中去掉:
非合理(unwise)="{"|"}"|"|"|"\"|"^"|"`"

4.安全考虑

这种在URL中使用文本IPv6地址的表述方法的应用不会引起任何新的已知安全问题。

5.IANA的考虑

最新文章

  1. Struts学习总结-02 类型转换
  2. 学习angularjs时遇到 XX is not a function
  3. rsync服务器的配置和使用
  4. How to run a terminal inside of vim?
  5. using System.Threading.Tasks;
  6. 免费邮件服务器:MailEnable
  7. MySql状态查看方法 MySql如何查看连接数和状态?
  8. sql时间转换函数--备忘
  9. HYML / CSS和Javascript 部分
  10. 西门子 PLC SFC14/15 80B1故障
  11. Flask 应用最佳实践
  12. Enterprise Architect
  13. Django的安装和启动
  14. NodeJS中使用swig模板引擎
  15. 解决Nginx重启时提示nginx: [emerg] bind() to 0.0.0.0:80错误
  16. repo 原理
  17. 上云利器,K8S应用编排设计器之快到极致
  18. 命令卸载ie11
  19. ASP.NET MVC中设置跨域
  20. C语言——<算法>_冒泡算法的使用及理解

热门文章

  1. jest操作 Elasticsearch
  2. LeetCode--039--组合总和(java)
  3. delegate operator (C# reference) and => operator (C# reference)
  4. Page.after
  5. 【Go】Go语言的%d,%p,%v等占位符的使用
  6. Curl命令、Elinks命令、lynx命令、Wget命令、lftp命令
  7. 关于JS的面向对象的思考和总结
  8. 4.HTML 常用标签及属性
  9. linux设备驱动第四篇:从如何定位oops的代码行谈驱动调试方法
  10. Cisco Packet Tracer基本操作