3

RFC1738 SEC 2.2说:

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

经过一番搜索,我总结出应该编码的字符有以下三种:

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

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

4

0 回答 0