为什么使用特殊字符“$-”+*';(),";在URL编码中有什么特殊之处?

为什么使用特殊字符“$-”+*';(),";在URL编码中有什么特殊之处?,url,url-encoding,rfc1738,Url,Url Encoding,Rfc1738,他说: 因此,只有字母数字、特殊字符“$-+!*”()、”和 可以使用用于保留目的的保留字符 在URL中未编码 经过一些搜索,我总结出有三种类型的字符需要编码: 不安全字符:'#'、'''''、'%'、'''''.'''.'''.'''.'''.'''.'''.'''.'''.'''.'''.'''.''.'''.''.'''.''.'''.''.'''.'''.''.'''.' 保留字符:“;”、“/”、“?”、“:”、“@”、“=”、“&” 特殊字符:“$-.+!*”(),” 我知道不安

他说:

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

经过一些搜索,我总结出有三种类型的字符需要编码:

  • 不安全字符:'#'、'''''、'%'、'''''.'''.'''.'''.'''.'''.'''.'''.'''.'''.'''.'''.''.'''.''.'''.''.'''.''.'''.'''.''.'''.'
  • 保留字符:“;”、“/”、“?”、“:”、“@”、“=”、“&”
  • 特殊字符:“$-.+!*”(),”
我知道不安全字符和保留字符应该被编码的原因和时间。RFC1738声明特殊字符可以不编码使用,但我发现
urllib2.quote
也将这些特殊字符编码到
%24-\u2b%21%2A%27%28%29%2C%7E“
。因此,我对这些字符有点困惑
如果特殊字符可以在URL中非编码使用,那么为什么要对其进行编码,以及为什么它们是特殊的。

旁注:您可能希望使用(即)而不是RFC 1738。