Ответ 1
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
) или Кодирование базы 64 с безопасным алфавитом URL и именем файла (т.е. A
- Z
, A
- Z
, 0
- 9
, -
, _
).