A 路径段(路径中的部分由/
) 绝对 URI 路径中可以包含零个或多个pchar定义如下:
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
pct-encoded = "%" HEXDIG HEXDIG
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
/ "*" / "+" / "," / ";" / "="
所以基本上就是A
–Z
, a
–z
, 0
–9
, -
, .
, _
, ~
, !
, $
, &
, '
, (
, )
, *
, +
, ,
, ;
, =
, :
, @
, 也%
后面必须跟两个十六进制数字。任何其他字符/字节都需要使用百分比编码.
尽管总共有 79 个字符可以在路径段中使用,但某些用户代理也会对其中一些字符进行编码(例如%7E
代替~
)。这就是为什么许多人只使用 62 个字母数字字符(即A
–Z
, a
–z
, 0
–9
) 或者使用 URL 和文件名安全字母进行 Base 64 编码 (i.e. A
–Z
, a
–z
, 0
–9
, -
, _
).