我知道%20和+都解码为相同的二进制值(空格),对于大多数Web服务器,尤其是那些映射到物理文件的Web服务器,它们将指向相同的资源.
但我的问题是,必须像网址http://www.example.org/hello%20world指向相同的资源http://www.example.org/hello+world,是他们规范地一样的吗?
在HTTP/1.0 +中没有映射到空格,所以我特别询问HTTP/1.1.
仅在查询字符串中:加号是保留字符,因此必须进行编码以在路径或查询字符串中传递实际的“ +”。W3C 建议书用作空格的替代品,仅适用于查询字符串:
在查询字符串中,加号保留为空格的简写形式。因此,必须对实数加号进行编码。此方法用于使查询URI更易于在不允许使用空格的系统中传递。
URI比较(RFC 2616):
比较两个URI以确定它们是否匹配时,客户端应使用整个URI的区分大小写的八位字节与八位字节的比较,但以下情况除外:
Run Code Online (Sandbox Code Playgroud)- A port that is empty or not given is equivalent to the default port for that URI-reference; - Comparisons of host names MUST be case-insensitive; - Comparisons of scheme names MUST be case-insensitive; - An empty abs_path is equivalent to an abs_path of "/".除“保留”和“不安全”集中的字符以外的其他字符(请参阅RFC 2396 [42])等效于其““%” HEX HEX“编码。
保留字符(RFC 2396)
“;” | “ /” | “?” | “:” | “ @” | “&” | “ =” | “ +” | “ $” | “,”
因此,在第三种解决方法中:没有官方宣布它们是同一件事。从字面上使用“ +”定向http://example.org/hello+world到名为的目录hello+world是不正确的,但是没有什么可以说它应该等效于空格。
| 归档时间: |
|
| 查看次数: |
1785 次 |
| 最近记录: |