URL片段或查询中是否允许使用斜杠?

URL片段或查询中是否允许使用斜杠?,url,Url,我对URL的一般形式的理解是,它如下所示: <scheme>://<host><path>?<query>#<fragment> :/# 查询或片段中是否有任何正斜杠?更一般地说,是否有专门为URL的任何单个部分保留的字符?当然,您可以在片段和查询中使用/ 例如: <a href='#vol/p'>hash example</a> <div style='min-height:500px;'>&

我对URL的一般形式的理解是,它如下所示:

<scheme>://<host><path>?<query>#<fragment>
:/#

查询或片段中是否有任何正斜杠?更一般地说,是否有专门为URL的任何单个部分保留的字符?

当然,您可以在
片段和
查询中使用
/

例如:

<a href='#vol/p'>hash example</a>

<div style='min-height:500px;'></div>
<div id='vol/p'>
    <a href='http://jsfiddle.net/echo/jsonp?weep/sho/sdf=help'>get example</a>
</div>

基本上,您可以使用任何可以在URL中编码的内容。
片段可以包含任何字符

查询可以包含除
#
之外的任何字符,因为它被视为标记(但您可以使用URL编码将其保留在那里)

因此,一般来说,只要没有歧义,就不存在任何保留字符

有关最新信息,请参阅。您的“一般形式”不完全正确

STD 66将以下内容定义为:

fragment=*(pchar/“/”/“?”)

因此,除了
pchar
集合中的字符(
unreserved/pct-encoded/sub-delims/“:“/”@“
)之外,
/
可以直接用于片段中(即,不需要百分比编码)

/
甚至在正文中明确提到:

字符斜杠(“/”)和问号(“?”)可以表示片段标识符中的数据。请注意,当数据用作相对引用的基本URI时,一些旧的、错误的实现可能无法正确处理这些数据(第5.1节)