在互联网上进行一番挖掘后,我无法找到可以用于 URL 片段的字符的良好答案。我正在编写一个 javascript 脚本,它将利用 URL 片段。
我不想让 URL 看起来太复杂,从而使 URL 看起来更友好。所以我想知道是否可以使用“:、?、&或!”等字符在 URL 片段中并且仍然有效。
我的 URL 片段应包含以下值:
tl;dr
片段标识符组件可以包含:
-
0
- 9
-
a
- z
-
A
- Z
-
?
/
:
@
-
.
_
~
!
$
&
'
(
)
*
+
,
;
=
- 百分比编码字符(a
%
后跟两个十六进制数字)
我怎样才能找到这个?
URI标准是STD 66 http://tools.ietf.org/html/std66,目前映射到RFC 3986 https://www.rfc-editor.org/rfc/rfc3986.
在本文档中,您将找到您需要了解的所有内容。
The 片段标识符组件定义见 3.5 节 https://www.rfc-editor.org/rfc/rfc3986#section-3.5:
fragment = *( pchar / "/" / "?" )
这意味着该片段可以不包含任何内容或(任意组合)
- 定义在的字符pchar
- the / https://stackoverflow.com/a/20441627/1591669
- the
?
的定义pchar
请参阅附录A。 https://www.rfc-editor.org/rfc/rfc3986#appendix-A看看如何pchar被定义为:
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
所以这增加了
- 定义在的字符毫无保留的
- 定义在的字符pct编码
- 定义在的字符子定界
- the
:
- the @ https://stackoverflow.com/a/19737890/1591669
的定义unreserved
现在检查如何毫无保留的被定义为:
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
这增加了
- 定义在的字符ALPHA
- 定义在的字符DIGIT
- the
-
- the
.
- the
_
- the
~
的定义ALPHA
and DIGIT
检查 ALPHA 和 DIGIT 是如何定义的。它们没有在附录中列出,因为它们来自ABNF 核心规则 https://www.rfc-editor.org/rfc/rfc2234#section-6.1, as is 1.3 节中解释 https://www.rfc-editor.org/rfc/rfc3986#section-1.3:
ALPHA(字母),[...] DIGIT(十进制数字)[...]
所以这增加了
的定义pct-encoded
检查如何pct编码被定义为:
pct-encoded = "%" HEXDIG HEXDIG
这允许任何百分比编码字符 https://www.rfc-editor.org/rfc/rfc3986#section-2.1.
的定义sub-delims
检查如何子定界被定义为:
sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
这增加了
- the
!
- the
$
- the
&
- the
'
- the
(
- the
)
- the
*
- the
+
- the
,
- the
;
- the
=
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)