为什么需要编码URL?

Bri*_*ian 41 url

为什么需要编码网址?您是否有充分的理由将GET数据中的每个空间都更改为%20

Jim*_*Jim 39

因为有些人物有特殊的含义.

例如,在查询字符串中,ampersand(&)用作键值对之间的分隔符.如果您将&符号放入其中一个值中,它看起来就像值的结尾和下一个键的开头之间的分隔符.因此对于像这样的特殊字符,我们使用百分比编码,以便我们可以确保数据是明确编码的.

  • 不,因为`%`是具有特殊含义的字符之一,所以也必须编码(如'%25`).如果你有字符串值'%26`那么它将在URL中显示为'%2526`,因为'%`将被编码.要获取字符串值,您将'%25`解码为`%`,为您留下字符串`%26`. (7认同)

Ign*_*ams 33

RFC 2936,第2.4.3节:

空格字符被排除,因为当URI被转录或排版或受到文字处理程序的处理时,重要的空格可能会消失并且可能引入无关紧要的空格.Whitespace也用于在许多上下文中分隔URI.

  • 不能比RFC更准确 (6认同)
  • 换句话说,"不,没有固有的技术原因,但我们知道实施者和用户都是草率的." 这可能是正确的决定,主要是因为用户无法保持适当的空间. (2认同)

小智 11

  • 最初的旧浏览器可能会被空间混淆(不再是一个问题).
  • 现在,如果有人复制网址作为链接发送 - 空间可以打破超链接 - 即

嘿! 看看这个玩钢琴的小猫!

http://www.mysite.com/?video=funny cat plays piano.
Run Code Online (Sandbox Code Playgroud)

看看链接如何破裂?

现在看看这个:

http://www.mysite.com/?video=funny%20cat%20plays%20piano.
Run Code Online (Sandbox Code Playgroud)


nov*_*nja 11

让我们分解一下你的问题。
为什么需要对 URL 进行编码?
URL仅由有限数量的字符组成,这些字符是数字(0-9)、字母(AZ、az)和一些特殊字符(“-”、“.”、“_”、“~”) 。
那么这是否意味着我们不能使用任何其他字符?
这个问题的答案是“是”。但是等一下,有一个 hack,这个 hack 是URL EncodingPerchantage Encoding。因此,如果要传输不属于上述字符(数字、字母和特殊字符)的任何字符,那么我们需要对它们进行编码。这就是为什么我们需要将“空格”编码为“%20”。
好的?这对于 URL 编码来说足够了吗?不,这还不够,有很多关于 URL 编码的内容,但在这里,我不会把它变成一个相当大、无聊的技术答案。但如果你想了解更多,那么你可以从这里阅读: https: //www.urlencoder.io/learn/(感谢作者)