为什么特殊字符“$ -_。+!*'(),”在URL编码中是特殊的?

时间:2016-11-25 03:25:24

标签: url url-encoding rfc1738

RFC1738 SEC 2.2说:

  

因此,只有字母数字,特殊字符“$ -_。+!*'(),”和      可以使用用于其保留目的的保留字符      在URL中未编码。

经过一些搜索,我总结说应该编码三种类型的字符:

  • 不安全字符:'#','',''','%','<','>','{','}',“|”,'\','^' ,'〜','[',']','`'。
  • 保留字符:';','/','?',':','@','=','&'。
  • 特殊字符:“$ -_。+!*'(),”

我知道为什么以及何时应该对不安全的字符和保留字符进行编码。 RFC1738声明可以使用未编码的特殊字符,但我发现urllib2.quote也将这些特殊字符编码为"%24-_.%2B%21%2A%27%28%29%2C%7E"。所以,我有点困惑 如果特殊字符可以在URL中以未编码的形式使用,以及为什么它们是特殊字符,则为什么会被编码。

0 个答案:

没有答案