URI的任何路径段都可以有查询组件吗?

sma*_*man 7 url syntax uri rfc rfc2396

按照3.3节,路径组件RFC2396 -统一资源标识符,

该路径可以由一系列由单个斜杠"/"字符分隔的路径段组成.在路径段中,字符"/",";","="和"?" 保留.每个路径段可以包括一系列参数,由分号";"表示.字符.这些参数对于解析相对引用并不重要.

但是,除了最后一个段之外,我从未在任何段中看到带有查询参数的URL.所以,我不确定我是否正确阅读.

http://www.url.com/segment1?seg1param1=val1/page.html?pageparam1=val2有效的URL吗?

Ano*_*mie 10

RFC所指的是这样的:

http://www.example.com/foo/bar;param=value/baz.html
Run Code Online (Sandbox Code Playgroud)

这可以解释为路径/foo/bar/baz.html与参数param=valuebar部分.没有使用问号.

请注意,RFC 2396已被废弃的RFC 3986,其省略了的段特定的参数规格在通用记下实现可以(做)做不同的事情嵌入段特定的参数:

除了分层路径中的点段之外,通用语法将路径段视为不透明.URI生成应用程序通常使用段中允许的保留字符来分隔特定于方案或解除引用处理程序的子组件.例如,分号(";")和等于("=")保留字符通常用于分隔适用于该段的参数和参数值.逗号(",")保留字符通常用于类似目的.例如,一个URI生成器可能使用诸如"name; v = 1.1"之类的段来表示对"name"的版本1.1的引用,而另一个URI生成器可能使用诸如"name,1.1"之类的段来表示相同.参数类型可以由特定于方案的语义定义,但在大多数情况下,参数的语法特定于URI的解除引用算法的实现.