1

我们计划有像这样的网址

http://www.nowhere.nu/path/file;key:value,key2:value2.html

该文档说必须对特殊字符进行转义,这违背了拥有“好”网址的目的:

http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

但是,在测试主流浏览器时,似乎没有必要在这个位置对 ;: 和 进行 urlencode

您能否提供一个无法使用的流行浏览器,或反对这种方案的论据?

& (invalid but works) 与 & amp; 的类似问题 (有效的)。

4

1 回答 1

3

如评论中所述,所引用的信息已过时。为了安全起见,任何有问题的字符都应该被转义。

使用 URL,您有 2 个目标受众,人类和机器。大多数人无法有效地处理包含字母数字字符、.s 和/s 之外的任何内容的 URL 路径。随着您越过主机名,它们的效率也会降低。所以本质上,一旦你得到一个你必须编码的字符,你就已经失去了对人类友好的感觉(很多人甚至不知道位置栏在哪里,更不用说注意它了)。

另一方面,机器没有转义字符的问题。他们可能会遇到无法识别的未转义字符的问题。由于 HTTP 非常简单,因此有大量可用的客户端,包括用于执行 mashup 之类的少量自定义客户端。因此,即使您覆盖了能够浏览未转义字符的主要浏览器,您也可能会破坏一些无法预料的客户端。总体而言,您没有任何实际好处,但风险更高。

于 2012-10-26T12:47:22.357 回答