今天我们与同事争论这是否是一个有效的网址http://domain.com?some_param=1
。定义URL结构的RFC没有明确声明这是无效的结构。根据{{3}},第3.3部分
If neither <path> nor <searchpart> is present, the "/" may also be omitted.
然而,在同一文件的第3.1部分结尾处它说
Note that the "/" between the host (or port) and the url-path is NOT part of the url-path.
卷曲检查发现了一些有趣的事情
$ curl -v -I http://stackoverflow.com?test
* Rebuilt URL to: http://stackoverflow.com/?test
...
所以,问题是
这是否是有效的网址? http://domain.com?some_param=1
答案 0 :(得分:0)
第3.3节推迟到host
和port
的第3.1节,但其余部分则在该部分中定义。因此,如果port
或path
中的任何一个出现,则需要searchpart
之后的斜杠。
尽管如此,工具可能会尝试提取有效的URL,即使省略了这个斜杠,因为各种意识形态的一个原则是输入上的自由主义和输出上的保守主义。