在许多网站(特别是gmail、yahoo或hotmail),你会注意到
下面是:yahoo.com/abc/bcd.html;x=12323;y=2322;
这些x和y参数是什么?如何在服务器端代码中访问它们?

最佳答案

它们是url中的参数(与查询字符串不同),this article有一个很好的讨论,包括这个有用的图表:

<scheme>://<username>:<password>@<host>:<port>/<path>;<parameters>?<query>#<fragment>

注意,它们不是java eeServletRequest#getParameter中使用的“参数”之类的(在这里,当它们说“参数”时,它们是指查询字符串或post参数,它们是不同的)。
这在§3.3 of RFC 2396中定义:
路径可以由一系列由
单斜线“/”字符。在路径段中,字符
“/”、“;”、“=”和“?”是保留的。每个路径段可以包括
参数序列,由分号“;”字符表示。
这些参数对相对
参考文献。
(为免生疑问:上面的术语“path”不包括查询字符串,请参见beginning of §3
rfc 2396被RFC 3986淘汰,但amends the above明显:
除了层次路径中的点段之外,路径段是
一般语法认为不透明。uri生成应用程序
通常使用段中允许的保留字符来分隔
特定于方案或取消引用特定于处理程序的子组件。为了
例如,分号(“;”)和等于(“=”)的保留字符是
通常用于限定适用于
那部分。逗号(“,”)保留字符通常用于
类似的目的。例如,一个uri生产者可能使用一个段
例如“name;v=1.1”,表示对版本1.1的引用
“name”,而另一个可能使用“name,1.1”这样的段来
表示相同。参数类型可以由特定方案定义
语义,但在大多数情况下,参数的语法特定于
uri的解引用算法的实现。

10-07 19:27
查看更多