当前位置: 首页 > 面试题库 >

URL是否允许包含空格?

羊舌光赫
2023-03-14
问题内容

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

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

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


问题答案:

根据RFC 1738:

不安全:

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

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



 类似资料:
  • 问题内容: MSDN文档指出: COUNT(*)返回组中的项目数。这包括NULL值和重复项。 您如何在一个组中有一个空值?谁能解释他们要提出的观点? 问题答案: 如果你有这张桌子 表格1: 然后 输出为:

  • 问题内容: 我正在创建一个将结果作为JSON返回的API。当前值是否为null时是否存在最佳做法的当前最佳实践?例如: 要么 因为第二个较小,所以我倾向于这种样式,但是我不确定是否有首选样式。从客户的角度看,这两种样式在功能上似乎是等效的。每个都有优点或缺点吗? 问题答案: 第二个将节省少量带宽,但是如果您担心这一点,则还可以使用索引数组,而不用键填充JSON。显然,它比您现在拥有的要短得多。 在

  • 接口不promise实现是否允许元素。每个实现都应该在其文档中声明这一点。 promise返回的实现,但显式地“不保证返回的的类型、可变性、可序列化或线程安全性”。空-没有提到安全。 OpenJDK中的当前实现总是使用,它允许空元素,但这在将来可能会发生变化,其他实现可能会做不同的操作。 如果实现禁止元素,则它会在不同时间抛出,特别是在尝试期间。如果决定使用不容忍Null的实现,那么对调用将引发。

  • 问题内容: 我正在尝试调用Web服务,但是遇到了奇怪的行为。我们的服务器上正在运行一个Web服务,但是该代码未向我们开放,因此无法看到墙后发生了什么。该服务的所有者公开了基于Web的测试客户端UI,该UI在文本框中输入内容,并显示对测试目的的响应。此输入框采用以下提到的格式输入 它在此UI上工作正常,但是当我尝试通过Java代码调用此Web服务时,它也将获得连接以及被该服务授权,但是当我尝试调用上

  • 我有一个项目,关于从URL获取XML文件,将其删除,提取数据,然后进行处理。此外,我正在使用用户输入创建URL。但是我需要检查URL是否包含要刮取的XML文件。有什么办法吗?那么基本上如何检查URL是否包含XML文件呢?

  • 问题内容: 我想知道与使用if语句先检查null相比,使用try / exception处理null的成本。 提供更多信息。因为在此应用程序中,有> 50%的机会获得空值。如果未输入任何数据,则通常为null。因此,尝试使用null进行计算是很平常的事。 话虽这么说,如果我先使用if语句在计算之前先检查null并且不首先尝试计算是否会提高性能,或者仅抛出异常并对其进行处理会更便宜? 感谢您的任何建