2012-02-06 25 views
58

simplemente he aprendido de un colega que la omisión de la "http | https" parte de una URL en un enlace hará que el uso de URL cualquier esquema de la página que está en uso.URL sin "http | https"

Así, por ejemplo, si se accede a la página en mi http://www.example.com y tengo un enlace (nótese la '//' en la parte delantera):

<a href="//www.google.com">Google</a> 

Ese vínculo irá a http://www.google.com.

Pero si puedo acceder a la página en https://www.example.com con el mismo enlace, irá a https://www.google.com

quería buscar en línea para obtener más información sobre esto, pero estoy teniendo problemas para pensar en una buena frase de búsqueda. Si busco "URL sin HTTP", las páginas devueltas son acerca de las URL con este formulario: "www.example.com", que no es lo que estoy buscando.

¿Quieres que llame a una URL que schemeless? ¿Una URL sin protocolo?

¿Funciona en todos los navegadores? Lo probé en FF e IE 8 y funcionó en ambos. ¿Es esto parte de un estándar, o debería probar más navegadores?

+5

posible duplicado de [URLs absolutas omitiendo el protocolo (esquema) para preservar el de la página actual] (http://stackoverflow.com/questions/4978235/absolute-urls-omitting-the-protocol -scheme-in-order-to-preserve-the-one-of-the) – David

+1

Como referencia (ya que preguntaste qué términos buscar), la búsqueda de Google que me llevó a la pregunta original de StackOverflow fue: "url absoluta sin protocolo" " – David

+0

no especifica si es un http o https, por lo que el navegador decide por usted tomando la última página suponiendo que el enlace proviene de la misma página. – raym0nd

Respuesta

11

Se llama de referencia de red-path (la parte que falta se llama scheme o) defined in RFC3986 Section 4.2

4,2 Referencia relativa

una referencia relativa toma ventaja de la sintaxis jerárquica (Sección 1.2.3) para expresar una referencia de URI relativa al espacio de nombre de otro URI jerárquico.

relative-ref = relative-part [ "?" query ] [ "#" fragment ] 

    relative-part = "//" authority path-abempty 
       /path-absolute 
       /path-noscheme 
       /path-empty 

El URI referido por una referencia relativa, también conocido como el URI de destino, se obtiene mediante la aplicación de la resolución de referencia algoritmo de la Sección 5.

una referencia relativa que comienza con dos caracteres de barra es denominado referencia de ruta de red (énfasis mío); tales referencias son raramente usadas. Una referencia relativa que comienza con un solo carácter de barra diagonal se denomina referencia de ruta absoluta. Una referencia relativa que no comienza con un carácter de barra diagonal se denomina referencia de ruta relativa.

Un segmento de ruta que contiene un carácter de dos puntos (por ejemplo, "this: that") no se puede utilizar como el primer segmento de una referencia de ruta relativa, ya que se confundiría con un nombre de esquema. Dicho segmento debe estar precedido por un segmento de punto (por ejemplo, "./this:that") para hacer una referencia de ruta relativa.

+0

// no se puede usar en la etiqueta base en html. Configuro