mlo*_*kot 6 url rfc3986 query-string rfc1738
TL; TR:在查询的URL部分是(第一个)问号还是只是一个后跟查询的分隔符?
在RFC 1738,部分3.3,表明"?" (问号)不是查询字符串的一部分,只是将其与路径分开:
http://<host>:<port>/<path>?<searchpart>
Run Code Online (Sandbox Code Playgroud)
RFC 3986附录A中提出的语法也表示"?" 不是实际查询字符串的一部分:
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
Run Code Online (Sandbox Code Playgroud)
现在,让我们考虑两个网址:
http://server.com/api/item.jsonhttp://server.com/api/item.json?它们是等同的还是不同的?
区分它们并用于识别两种不同的资源是否有效?
TL;博士:
?不是查询组件的一部分.第6.2节.比较梯形图描述了如何测试URI是否可能等效的方法.
在6.2.3.基于方案的规范化它说:
除非通过方案规范许可,否则规范化不应在其关联组件为空时删除分隔符.例如,
http://example.com/?不能假设URI 等同于上面的任何示例.
"上述示例"指的是:
Run Code Online (Sandbox Code Playgroud)http://example.com http://example.com/ http://example.com:/ http://example.com:80/
(这4个URI是等价的.)
所以http://example.com/api/item.json没有查询组件,而http://example.com/api/item.json?有一个空的查询组件.
| 归档时间: |
|
| 查看次数: |
1235 次 |
| 最近记录: |