为什么浏览器会以这种形式编码网址?
来自:
http://www.example.com
为:
http%3A%2F%2Fwww.example.com
答案 0 :(得分:4)
网址只能通过互联网使用ASCII character-set发送。
由于URL通常包含ASCII集之外的字符,因此必须转换URL。 URL编码将URL转换为有效的ASCII格式。
URL编码用“%”替换不安全的ASCII字符,后跟两个与ISO-8859-1字符集中的字符值对应的十六进制数字。
网址不能包含空格。 URL编码通常用+号替换空格。
您可以在这里阅读更多内容:
答案 1 :(得分:0)
因为URI只能包含ASCII字符,所以其他字符必须用%加两个十六进制数字编码。例如,%本身将被编码(如果你愿意,可以转义)为%25,因为十六进制25或十进制37是%的代码点。
但是,编码不是必需的,因为:和/是允许的裸形式。关键是标准确实将其定义为完全等同于使用/或:直接。但是,许多浏览器和服务器确实没有对这些常见字符进行观察。
另一件事是使用URI作为名称空间标识符,例如XML。即使两个字符串可能对应于相同的URI,它们实际上也可以是不同的名称空间,因为字符串不同。
答案 2 :(得分:0)
因为“:”和“/”在URL中具有指定含义。 “:”将方案与方案特定部分分开。 “/”用于将路径的各个部分彼此分开。 HTTP URL中方案特定部分开头的两个“/”将URL指定为绝对URL。如果您不希望这些字符具有该含义(例如,当它们是查询字符串的一部分时),则必须对它们进行编码。