Soporte del navegador para URL que comienzan con doble barra


107

Recientemente he visto algunos enlaces utilizados sin un protocolo. No parecía demasiado difícil de entender; creo que es una gran idea y bastante intuitiva.

Para aquellos de ustedes que no lo saben, el uso de una URL como //example.com/script.jsapuntará a cualquiera http://example.com/script.jso https://example.com/script.jsdependiendo de si la URL se origina o no en una URL http o https . Incluir secuencias de comandos http o imágenes de una página https puede ser un problema de seguridad, por ejemplo, por lo que esto lo resuelve sin la necesidad de detección de protocolo en su código.

Mi pregunta es, ¿qué tipo de soporte de navegador / sistema operativo hay? ¿Es seguro usarlo en producción? Ciertamente facilitaría un poco las cosas.

Ejemplo simple y prueba: http://codetester.org/916c6916

EDITAR: Solo un seguimiento de que he estado usando esto para el servidor de anuncios de mi empresa en producción para muchas cosas sin problemas durante un par de años.


9
Respondido aquí: stackoverflow.com/questions/4659345/… --- En resumen, está en la especificación RFC, por lo que debería ser compatible con todos los navegadores principales.
Keith

1
@Keith Gracias, eso es bueno y todo, pero mirando a través de las especificaciones de RFC, en realidad no veo nada sobre este principio de doble barra. Esperaba encontrar algunas pruebas definitivas del navegador ya realizadas. :)
dtbarne

Respuestas:


88

Este comportamiento fue parte de RFC 1808 (Sección 4), que tiene aproximadamente 16 años, por lo que todos los navegadores principales deberían (y lo hacen) admitirlo.

Lamentablemente, hay un error con IE7 y -8 que hará que descarguen los recursos dos veces si se usa una URL relativa al protocolo en un linko @import, lo cual no debería ser un gran problema, pero es feo y debe tenerse en cuenta.


Esta es una publicación antigua, pero también quería decir que no es una buena práctica en absoluto. Recientemente tuve algunos problemas en el panel de administración de uno de nuestros clientes. No //code.jquery.com/jquery-2.1.3.min.jsse encontró la URL y no se cargó la biblioteca. Luego trato de cargar http://code.jquery.com/jquery-2.1.3.min.jsy veo una página de error. Sospecho que hay una configuración de seguridad de proxy, VPN o firewall que establecen internamente. Después de actualizar la URL para usar el httpsprotocolo, todo funciona bien.
TwystO

3

Si está desarrollando en una máquina local, existe la posibilidad de que falle con src="file://host.com/filename".

En esta situación, debe especificar el esquema explícitamente: http://host.com/filenameo https://host.com/filename.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.