Suporte do navegador para URLs começando com barra dupla

107

Recentemente, vi alguns links usados ​​sem um protocolo. Não parecia muito difícil de entender - acho que é uma ótima ideia e bastante intuitiva.

Para quem não sabe, usar uma URL como //example.com/script.jsirá apontar para http://example.com/script.jsou https://example.com/script.jsdependendo se a URL se origina ou não de uma URL http ou https . Incluir scripts http ou imagens de uma página https pode ser uma preocupação de segurança, por exemplo, então isso resolve isso sem a necessidade de detecção de protocolo em seu código.

Minha pergunta é: que tipo de suporte a navegador / sistema operacional existe para isso? É seguro usar na produção? Certamente tornaria as coisas um pouco mais fáceis.

Exemplo e teste simples: http://codetester.org/916c6916

EDIT: Apenas um acompanhamento de que eu tenho usado isso para o servidor de anúncios da minha empresa em produção para muitas coisas sem problemas há alguns anos.

dtbarne
fonte
9
Respondido aqui: stackoverflow.com/questions/4659345/… --- Em suma, está na especificação RFC, portanto, deve ser compatível com todos os principais navegadores.
Keith
1
@Keith Obrigado, isso é bom e tudo, mas olhando pelas especificações RFC, eu realmente não vejo nada sobre essa coisa de barra dupla inicial. Esperava encontrar alguns testes de navegador definitivos já feitos. :)
dtbarne

Respostas:

88

Esse comportamento fazia parte da RFC 1808 (Seção 4), que tem cerca de 16 anos, portanto, todos os principais navegadores devem (e oferecem) suporte para isso.

Infelizmente, há um bug com o IE7 e -8 que os fará baixar os recursos duas vezes se uma URL relativa ao protocolo for usada em um linkou @import- o que não deve ser um grande problema, mas é feio e deve ser mantido em mente.

Oezi
fonte
Este é um post antigo, mas eu também queria dizer que não é uma boa prática. Recentemente, tive alguns problemas no painel de administração de um de nossos clientes. O URL //code.jquery.com/jquery-2.1.3.min.jsnão foi encontrado e a biblioteca não foi carregada. Em seguida, tento carregar http://code.jquery.com/jquery-2.1.3.min.jse vejo uma página de erro. Eu suspeito de uma configuração de segurança de proxy ou VPN ou firewall que eles definem internamente. Depois de atualizar a URL para usar o httpsprotocolo, tudo funciona bem.
TwystO de
3

Se você estiver desenvolvendo em uma máquina local, existe a possibilidade de ele falhar com src="file://host.com/filename".

Nesta situação, você precisa especificar o esquema explicitamente: http://host.com/filenameou https://host.com/filename.

Matas Vaitkevicius
fonte