Por lo general, cuando veo //
, generalmente sigue un prefijo de protocolo como http:
o ftp:
. Nunca lo he visto en otro lugar. Por ejemplo,
http://www.google.com/
es una URL típica
Sin embargo, descubrí que las siguientes dos sintaxis producen diferentes versiones del mismo sitio,
Pensé que //
cualquier otra parte que no sea la especificación del protocolo sería inválida. Para mi sorpresa, estaba equivocado. ¿Qué tiene el final //
que ofrece una versión diferente del mismo sitio?
EDITAR:
Alguien en ese sitio debe haberse enterado del otro porque ambos enlaces ahora aterrizan en la misma página.
///
o////
al final de la URL dio como resultado el mismo sitio que/
cuando//
lo hicieron resultado en algo diferente.\\HostName[@Port]\SharedFolder\Resource
Respuestas:
El inicio
//
es parte de la sintaxis de URL. El inventor de la red mundial se disculpó por ese error .En cuanto al seguimiento
//
, en realidad no es un doble corte. La primera barra inclinada separa el nombre del host de la ruta. El último corte es el camino. Un servidor web puede, si lo desea, tratar una ruta/
diferente de una ruta vacía, y aparentemente lo hace weather.com. En cuanto a si esto es accidental o intencional, tendrías que preguntarles al respecto.fuente
http://example.com
se puede tratar de manera diferentehttp://example.com/
? No pensé que ese fuera el caso con el primer corte..htaccess
reglas. Pero probablemente no deberías.http://example.com
diferentehttp://example.com/
en un servidor web, ya que ambos tienen una ruta vacía. Podrías tratarlos de manera diferente en un navegador.GET / HTTP/1.1
Más recientemente, se podría argumentar que la doble barra hace tener un papel. Google recomienda (para evitar llamar accidentalmente contenido inseguro desde una página segura, por ejemplo) omitiendo el protocolo de los recursos integrados (hojas de estilo, js, etc.), como este
Por lo tanto, ahora es evidente que dicha URL sin protocolo es una URL totalmente calificada y no una URL relativa (que comenzaría con una barra oblicua).
fuente
Para realmente responder a la pregunta, la especificación original dio el protocolo
http:
(o posiblementeftp:
,gopher:
,mailto:
,news:
,telnet:
,wais:
,file:
oprospero:
) a continuación, una//
para indicar que se estaba utilizando la sintaxis Localizador Uniforme de Recursos (URL), entonces el host (opcionalmente con el prefijouser:password@
) y después dirección adecuado a partir de otro/
. Esto fue propuesto en RFC 1738 .A medida que Internet evolucionó, se
http:
convirtió en el protocolo dominante, por lo que los navegadores ahora suponen que sehttp://
debe agregar un prefijo si no está allí.fuente
//
a indicar que estaba en uso ... ¿Es así?isbn:1-23-456789-12-3
. En la práctica, elhttp:
define que el resto será una URL. Los RFC son solo propuestas y a menudo permiten extensiones que nunca se materializan. En un momento, Tim Berners-Lee dijo que//
era para una 'subred' (por ejemplohttp:/govnet/whitehouse.gov
). Esta idea nunca se usó, pero '//' permanece ya que ahora tanto código espera y lo comprueba.http://www.google.com/
yhttp:%/74.125.225.97/
para tanto ser válido, y//
indicar un nombre de host, mientras que otra cosa, como%/
indica una dirección IP?Me gustaría agregar a la respuesta aceptada de David:
A pesar de la disculpa del inventor de la web, creo que la sintaxis de doble barra sirvió para un propósito importante: destacar visualmente. Las dos barras inclinadas permiten una fácil distinción visual de las URL en un texto sin hipervínculos. Cuando vio dos barras diagonales, inmediatamente pensó que podría ingresarse en una ventana del navegador, de forma similar a cómo pensaba que un texto contenía
@
podría usarse para enviar un correo electrónico. Fue especialmente crucial durante la fase de transición a la web donde los protocolos de esa época (ftp, telnet, gopher) tenían su propia noción extraña para representar las direcciones del servidor o las rutas de recursos, rara vez ambas. La mayoría de los problemas asociados con las barras inclinadas dobles seguirían existiendo, porque las barras diagonales dobles son la parte menos críptica de una URL, piense en los números de puerto, la codificación porcentual y la distinción entre mayúsculas y minúsculas. Pero tener una URL como http: something.com podría confundirse fácilmente con mi ejemplo aquí: something.com. Mire http: // por otro lado, cómo brilla como un diamante. Las dobles barras han sido una parte importante del simbolismo web y creo que también aceleraron su tasa de adopción, incluso si no fue intencional.También podrían haber hecho que el trabajo de AmigaOS sea más fácil de diferenciar entre los nombres de archivo y las URL, ya que AmigaOS utilizó la sintaxis de la ruta del archivo
volume:path/to/destination
. :)fuente