【问题标题】:Are these characters valid in practice in a url in href in HTML5 document? :,;&这些字符在 HTML5 文档的 href 中的 url 中是否有效? :,;&
【发布时间】:2012-10-16 17:32:25
【问题描述】:

我们计划有像

这样的网址
http://www.nowhere.nu/path/file;key:value,key2:value2.html

这个文件说特殊字符必须被转义,这违背了拥有“好”网址的目的:

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

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

你能否提供一个流行的浏览器,它不起作用,或者反对这种方案的论据?

&(无效但有效)与 & amp; 的类似问题(有效)。

【问题讨论】:

  • stackoverflow.com/questions/1547899/…。在什么世界里,那个“好”的 URL 是什么?我认为一个不错的 URL 将是一个您可以用语言表达而不必逐个字符的 URL。该站点引用的规范已被替换,因此其他字符(如;)是有效的
  • 谢谢,我已经查看了 1547899 的答案,但实际上我对 RFC 说它无效的部分更感兴趣,但仍然建议如何处理它。另外,这不是我的主意,你知道的。

标签: html url html-entities


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2012-04-05
    • 2012-12-03
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多