一尘不染

URL是否允许包含空格?

html

URI(特别是HTTP URL)是否允许包含一个或多个空格字符?如果 必须 对URL 进行编码,+这是通常遵循的约定还是合法的选择?

特别是,有人可以指向RFC指出 必须 对带有空格的URL 进行编码吗?

提出问题的动机:
在对网站进行Beta测试时,我注意到某些URL的构造带有空格。Firefox似乎做对了,这让我感到惊讶!但是我希望能够将开发人员指向RFC,以便他们觉得有必要修复这些URL。


阅读 1314

收藏
2020-05-10

共1个答案

一尘不染

根据RFC 1738:

不安全:

出于多种原因,字符可能是不安全的。
空格字符是不安全的,因为在对URL进行转录或排版或对文字处理程序进行处理时,可能会消失大量空格并且可能会引入无关紧要的空格。
字符"<"">"不安全,因为它们被用作自由文本中URL的定界符;"""在某些系统中,引号()用于分隔URL。该字符"#"是不安全的,应始终进行编码,因为该字符在万维网和其他系统中用于从可能跟随其的片段/锚定标识符中分隔URL。性格"%"不安全,因为它用于其他字符的编码。其他字符是不安全的,因为已知网关和其他传输代理有时会修改此类字符。这些字符是"{""}""|""\""^""~"
"[""]",和"”`。

所有不安全字符必须始终在URL中编码
。例如,"#"即使在通常不处理片段或锚标识符的系统中,字符也必须在URL中进行编码,因此,如果将URL复制到另一个使用它们的系统中,则无需更改URL编码。

2020-05-10