html - bootstrap - URI comenzando con dos barras... ¿cómo se comportan?
meta tags generator (4)
El recurso que estás buscando es el RFC 3986 .
Ver la Sección 4.2 y la Sección 5.4. Citando de este último:
Ejemplos de resolución de referencia
Dentro de una representación con un URI base bien definido de:
http://a/b/c/d;p?q
una referencia relativa se transforma en su URI de destino de la siguiente manera:
"g:h" = "g:h" "g" = "http://a/b/c/g" "./g" = "http://a/b/c/g" "g/" = "http://a/b/c/g/" "/g" = "http://a/g" "//g" = "http://g" "?y" = "http://a/b/c/d;p?y" "g?y" = "http://a/b/c/g?y" "#s" = "http://a/b/c/d;p?q#s" "g#s" = "http://a/b/c/g#s" "g?y#s" = "http://a/b/c/g?y#s" ";x" = "http://a/b/c/;x" "g;x" = "http://a/b/c/g;x" "g;x?y#s" = "http://a/b/c/g;x?y#s" "" = "http://a/b/c/d;p?q" "." = "http://a/b/c/" "./" = "http://a/b/c/" ".." = "http://a/b/" "../" = "http://a/b/" "../g" = "http://a/b/g" "../.." = "http://a/" "../../" = "http://a/" "../../g" = "http://a/g"
Esto significa que cuando el URI base es http://a/b/c/d;p?q
y utiliza //g
, la referencia relativa se transforma en http://g
.
Últimamente vi trabajar bloques de código como este:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
Y de acuerdo con RFC 2396 (URI Syntax) y RFC 2616 (HTTP 1.1) estos URI que comienzan con dos barras diagonales son válidos, pero desafortunadamente los RFC no los explican en realidad.
¿Alguien puede indicarme un recurso que explique cómo los navegadores / deberían / procesarán estos URI?
Estas son URL relativas al protocolo. Señalan una dirección, manteniendo el protocolo actual.
Esta notación se usa a menudo para evitar el problema del "contenido mixto" (un mensaje de advertencia de IE que se queja de los recursos http
y https
en la misma página HTTPS).
Actualización: documentación oficial en RFC 3986:
Una referencia relativa que comienza con dos caracteres de barra se denomina referencia de ruta de red; 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.
Son urls independientes del protocolo. Si la página web se publica en https, la solicitud utiliza https, si es http y luego http.
Paul Irish parece haberlos popularizado al incluirlo en su código repetitivo.
Tenga en cuenta que no solo es http o https independiente, sino también file , ftp , etc.
Significa que si abre el archivo .htm directamente en su navegador en localhost, el navegador resolverá // como protocolo de archivo y su página no funcionará. Puede causar problemas en sitios web empaquetados como aplicaciones "nativas" usando herramientas como Electron, PhoneGap, etc.
Ejemplo:
<script src="//mywebsite.com/resource.js"></script>
a
<script src="file://mywebsite.com/resource.js"></script>