URLs absolutos omitindo o protocolo (esquema) a fim de preservar o da página atual

85

Eu vi o //somepage.com/resourceformato do url. Por exemplo:

<img src="//remotesite.com/image1.jpg" />

A questão é que, se a página atual (a página que define a imgtag) estiver usando http, a solicitação ao site remoto será feita via http. Se for https - é https. Isso elimina os avisos do navegador de páginas não totalmente criptografadas.

Minha pergunta é - este formato de URL é seguro para usar em todos os navegadores. E é um padrão?

Bozho
fonte
4
Relacionado: Posso alterar todos os meus links http: // para apenas //? responde a sua primeira URL relativa do esquema e responde à sua segunda pergunta.
Gumbo
1
Pergunta semelhante: stackoverflow.com/questions/8343942/…
TMS
Embora você não tenha usado o termo em sua pergunta, adicionei a tag relativa ao protocolo (para que esta pergunta seja mais fácil).
unor

Respostas:

61

este formato de URL é seguro para todos os navegadores.

Não posso dizer nada com certeza, mas você deve poder testá-lo em diferentes navegadores.

E é um padrão?

Tecnicamente, é chamado de "referência de caminho de rede" de acordo com RFC 3986 . Aqui está o esquema para isso:

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

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

Porém, há um problema quando usado em um <link>ou@import , o IE7 e o IE8 baixam o arquivo.

Aqui está uma postagem escrita por Paul Irish sobre o assunto:

Sarfraz
fonte
1
Observe que Paul Irish atualizou sua postagem para indicar que agora os recursos devem sempre ser fornecidos por https quando for viável. Veja a postagem com link de @Sarfraz acima.
Evan Donovan
1
O código do snippet do Google Analytics usa esse esquema, então aposto que é um navegador cruzado, embora essa ferramenta seja usada por muitos sites, eles forneceriam apenas a versão https de outra forma
Lukas Liesis
22

Sim, eu acredito que sim. Paul Irish cunhou o termo URL relativo ao protocolo .

Eu também diria que é parte do projeto HTML5Boilerplate , que promove a compatibilidade entre navegadores.

Observação: há um caso extremo no IE6 com o Google Analytics que é mencionado no artigo de Paul. Portanto, não é perfeito.

xzyfer
fonte
Isso não é mais verdade, consulte stackoverflow.com/a/37609402/2237601 ou aqui , eles agora usam https://. Também veja aqui porque ommiting o esquema de protocolo pode não ser uma boa idéia.
bg17aw