【发布时间】:2016-03-09 23:57:45
【问题描述】:
TL;TR:查询的 URL 部分是(第一个)问号还是只是一个分隔符,后跟查询?
RFC 1738,第 3.3 节暗示“?” (问号)不是查询字符串的一部分,只是将它与路径分开:
http://<host>:<port>/<path>?<searchpart>
RFC 3986 附录 A. 中提出的语法,也表示“?”不是实际查询字符串的一部分:
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
现在,让我们考虑两个 URL:
http://server.com/api/item.jsonhttp://server.com/api/item.json?
它们是相同的还是不同的?
区分它们并用于识别两种不同的资源是否有效?
【问题讨论】:
-
“区分它们并用于识别两种不同的资源是否有效?”——即使是,我也不推荐;你永远不知道哪个客户端会倾向于对这样的 URL 执行什么“规范化”。
-
@CBroe 我赞同你的建议。
标签: url query-string rfc3986 rfc1738