2 votos

¿Por qué no hay error cuando entro en muchas barras en un archivo de URL en un navegador?

En mi Windows 10 máquina puedo introducir una dirección URL de archivo de un directorio local (por ejemplo, file:///D:/temp), o un archivo local (por ejemplo, file:///D:/temp/homepage.html) y todo funciona bien.

Sin embargo, donde hay una barra diagonal en esas direcciones Url válidas, puedo insertar muchos más, y todo lo que todavía funciona muy bien. Por ejemplo:

file:///D://///////////////////temp///////////////MiscTests///////

También ver la captura de pantalla de Chrome:



Al principio pensé que esto era un error en Chrome, pero la Ópera, el Borde y Firefox también hacer lo mismo, así que supongo que la URL es perfectamente válido.

Como relacionados con el tema, vale la pena señalar que los navegadores también permiten múltiples barras en la URL de una web (por ejemplo, https:///////////////////www.amazon.com), aunque en ese escenario, la dirección URL en la barra de direcciones se pone corregido a https://www.amazon.com. Así que no sólo las direcciones Url de archivos que permiten a muchas barras.

Hay una buena razón para que los navegadores que permite a todos aquellos barras, o es un descuido en algunas especificaciones que no puede ser corregido?

3voto

mtak Puntos 5023

RFC3986, sección 3.3 , dice varias barras son válidos en las URLs.

El / en una dirección URL determina donde los segmentos de la dirección URL se dividen. Una doble barra (fuera de la autoridad delimitador, que es el primer //) produciría un vacío segmento, que de acuerdo a la RFC 2396 puede ser ignorada. Técnicamente un servidor web podría lanzar una excepción en esto, pero los usuarios esperan que los servidores web para manejar este tipo de cosas, así que simplemente lo ignora.

Por cierto, esto también ocurre en los sistemas unix (que la web podría decirse que fue modelado después):

El Single Unix specification sección 3.266 define que varias barras puede ser considerado como uno:

Una cadena de caracteres que se utiliza para identificar un archivo. En el contexto de IEEE Std 1003.1-2001, un nombre de ruta que consta de, en la mayoría, {PATH_MAX} bytes, incluyendo el byte nulo de terminación. Se dispone de una opción de principio de slash, seguido por cero o más nombres de archivos separados por barras. Un nombre de ruta de acceso puede contener opcionalmente uno o más rastrero barras. Múltiples sucesivas barras se considera el mismo como una barra.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: