A path segment (las partes en un camino separado por /
) en una ruta absoluta URI pueden contener cero o más de pchar que se define como sigue:
pchar = unreserved/pct-encoded/sub-delims/":"/"@"
pct-encoded = "%" HEXDIG HEXDIG
unreserved = ALPHA/DIGIT/"-"/"."/"_"/"~"
sub-delims = "!"/"$"/"&"/"'"/"("/")"
/"*"/"+"/","/";"/"="
Así que es básicamente A
- Z
, a
- z
, 0
- 9
, -
, .
, _
, ~
, !
, $
, &
, '
, (
, )
, *
, +
, ,
, ;
, =
, :
, @
, así como %
que debe ser seguido por dos dígitos hexadecimales. Cualquier otro carácter/byte debe codificarse usando percent-encoding.
Aunque estos son 79 caracteres en total que pueden usarse literalmente en un segmento de ruta, algunos agentes de usuario también codifican algunos de estos caracteres (por ejemplo, %7E
en lugar de ~
). Es por eso que muchos de uso de sólo los 62 caracteres alfanuméricos (es decir A
- Z
, a
- z
, 0
- 9
) o la Base 64 Encoding with URL and Filename Safe Alphabet (es decir A
- Z
, a
- z
, 0
- 9
, -
, _
).
@Joey: No en un segmento de ruta, ya que es el delimitador del segmento de ruta. – Gumbo
Ok, estaba asumiendo que el OP estaba hablando de la ruta completa de un URI, no solo de un solo segmento. Al menos, los acortadores de URI generalmente funcionan en el sentido de 'http://domain.foo/' donde no es necesario que se restrinja a un solo elemento. –
Joey