【发布时间】:2014-12-20 05:31:26
【问题描述】:
示例路径:
/foo/boom%2Fpew/bar/
执行urldecode %2F 返回/,这是文件夹分隔符。
显然,这样做看起来不是一个好主意,但我对它可能导致的问题很感兴趣。
另外,同样的问题是否适用于其他字符,例如#?+?在路径中允许它们的percent-encoded 版本可以吗?
【问题讨论】:
标签: http url encoding character-encoding
示例路径:
/foo/boom%2Fpew/bar/
执行urldecode %2F 返回/,这是文件夹分隔符。
显然,这样做看起来不是一个好主意,但我对它可能导致的问题很感兴趣。
另外,同样的问题是否适用于其他字符,例如#?+?在路径中允许它们的percent-encoded 版本可以吗?
【问题讨论】:
标签: http url encoding character-encoding
/ 字符在 URL 的某些上下文中保留,百分比编码可能会改变其含义。在这种情况下,/ 是路径部分段之间的分隔符(不是“文件夹”;完全取决于服务器将段映射到文件夹名称或其他内容,或者只是将路径部分视为不可分割的),而%2F 不是;它代表/ 作为段的一部分。这实际上会导致什么取决于解释 URL 的服务器或其他软件。
参考:STD 66 又名。 RFC 3986.
【讨论】: