是否允许URI(特别是HTTP URL)包含一个或多个空格字符?如果对URLmust进行编码,那么+是通常遵循的约定,还是合法的替代方案?

具体地说,有人能指出指示带有空格must的URL被编码的RFC吗?

Motivation for question:在对网站进行beta测试时,我注意到一些URL是用空格构建的. firefox 似乎做了正确的事情,这让我很惊讶!但我希望能够将开发人员指向RFC,这样他们就会觉得有必要修复这些URL.

推荐答案

根据RFC 1738:

不安全:

由于多种原因,字符可能是不安全的.The space character is unsafe because significant spaces may disappear and insignificant spaces may be introduced when URLs are transcribed or typeset or subjected to the treatment of word-processing programs. 字符"<"">"是不安全的,因为它们被用作 自由文本形式的URL两边的分隔符;引号(""")用于 在某些系统中分隔URL.角色"#"是不安全的,应该 始终进行编码,因为它用于万维网和其他 从片段/锚标识符分隔URL的系统,该片段/锚标识符可以 跟着它走.字符"%"是不安全的,因为它用于 其他字符的编码.其他角色是不安全的,因为 已知网关和其他传输代理有时会修改 这样的人物.这些字符是"{""}""|""\""^""~""[""]""`".

All unsafe characters must always be encoded within a URL.为 例如,字符"#"必须编码在URL内,即使在 通常不处理片段或锚点的系统 标识符,以便在将URL复制到 不使用它们,则不需要更改URL编码.

Html相关问答推荐

电话号码验证器(Angular )

在将DevExtreme升级到版本23.2之后,到处都会生成一个Pesudo类,我在其中使用了<;DXi-Item Title=&Quot;&Quot;>;

带下划线的文本应该有延长的下划线,以使其图像悬停

与窗高匹配的响应式正方形网格

为什么可滚动弹性项目需要 flex-basis: 0 ?

无法在 CSS 中将 h1 标签居中

在Angular中,类型"HTMLDivElement"不能分配给类型"Node"

屏幕缩小时背景图像裁剪高度

a with