为什么浏览器会以这种形式编码url?

时间:2010-12-25 11:46:34

标签: html xhtml browser

为什么浏览器会以这种形式编码网址?

来自:

http://www.example.com 

为:

http%3A%2F%2Fwww.example.com

3 个答案:

答案 0 :(得分:4)

网址只能通过互联网使用ASCII character-set发送。

由于URL通常包含ASCII集之外的字符,因此必须转换URL。 URL编码将URL转换为有效的ASCII格式。

URL编码用“%”替换不安全的ASCII字符,后跟两个与ISO-8859-1字符集中的字符值对应的十六进制数字。

网址不能包含空格。 URL编码通常用+号替换空格。

您可以在这里阅读更多内容:

INTRODUCTION TO URL ENCODING / URL ENCODED STRINGS

答案 1 :(得分:0)

因为URI只能包含ASCII字符,所以其他字符必须用%加两个十六进制数字编码。例如,%本身将被编码(如果你愿意,可以转义)为%25,因为十六进制25或十进制37是%的代码点。

但是,编码不是必需的,因为:和/是允许的裸形式。关键是标准确实将其定义为完全等同于使用/或:直接。但是,许多浏览器和服务器确实没有对这些常见字符进行观察。

另一件事是使用URI作为名称空间标识符,例如XML。即使两个字符串可能对应于相同的URI,它们实际上也可以是不同的名称空间,因为字符串不同。

答案 2 :(得分:0)

因为“:”和“/”在URL中具有指定含义。 “:”将方案与方案特定部分分开。 “/”用于将路径的各个部分彼此分开。 HTTP URL中方案特定部分开头的两个“/”将URL指定为绝对URL。如果您不希望这些字符具有该含义(例如,当它们是查询字符串的一部分时),则必须对它们进行编码。