2011-01-12 20 views

Respuesta

69

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, -, _).

+0

@Joey: No en un segmento de ruta, ya que es el delimitador del segmento de ruta. – Gumbo

+1

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

22

Según RFC 3986 los caracteres válidos para el componente camino son:

a-z A-Z 0-9 . - _ ~ ! $ & ' () * + , ; = : @ 

así como caracteres de porcentaje-codificado y, por supuesto, la barra /.

Tenga en cuenta, sin embargo, que muchas aplicaciones (no necesariamente navegadores) que intentan analizar los URI para hacer que se puedan hacer clic, por ejemplo, pueden admitir un conjunto de caracteres mucho más pequeño. Esto es similar a analizar las direcciones de correo electrónico donde la mayoría de los intentos tampoco captan todas las direcciones permitidas por el estándar.

Cuestiones relacionadas