我们计划提供像
这样的网址http://www.nowhere.nu/path/file;key:value,key2:value2.html
这个文件说必须转义特殊字符,这样会破坏“好”网址的目的:
http://www.blooberry.com/indexdot/html/topics/urlencoding.htm
然而,测试主要的浏览器,似乎没有必要urlencode;:和,在这个位置
你能提供一个不起作用的流行浏览器,或者反对这种方案的论据吗?
类似的问题& (无效但有效)与&放大器; (有效)。
答案 0 :(得分:3)
如评论中所述,引用的信息已过时。为了安全起见,任何有问题的字符都应该被转义。
使用URL,您有2个目标受众,人和机器。大多数人无法有效处理包含除字母数字字符.
和/
之外的任何内容的URL路径。它们在您经过主机名时会进一步降低效率。所以基本上一旦你得到一个你必须编码的角色,你就已经失去了对人类的友好(许多人甚至不知道位置栏的位置,更不用说关注它了。)
另一方面,机器对转义字符没有问题。他们可能对他们无法识别的未转义字符有问题。由于HTTP非常简单,因此可以使用大量客户端,包括用于执行mashup等操作的小型自定义客户端。因此,即使你覆盖主要的浏览器能够翻阅未转义的角色,你也可能会打破一些不可预见的客户端。总的来说,你没有任何实际利益,但风险更高。