Descobri esta semana a existência dos schemeless URIs, endereços sem a definição do protocolo (HTTP ou HTTPS). Já tinha esbarrado com os dito-cujos no CDN do Google, caçando bibliotecas JS. Os mais atentos já notaram que os códigos de embed são sempre no formato
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
Na minha ignorância e pedância costumeiras, achava que era um erro do Google. Mas Google não erra.
E aí, a audiciência se pergunta: what the hell?
Bom, a grande vantagem deste esquema é que os navegadores, quando encontram um link num documento HTML sem HTTP ou HTTPS, assumem que devem usar o protocolo da página pai. Portanto, se eu acesso
http://siga.st
o navegador irá acessar
http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js
Se eu acessar
https://siga.st
o navegador irá acessar
https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js
Se eu acessar
gopher://siga.st
não vai dar em nada (Definição de Gopher aqui).
O grande interesse desta funcionalidade é que alguns navegadores, como o Chrome por exemplo, não permitem carregar arquivos externos via HTTP a partir de um endereço base HTTPS (quem já tentar verá uma mensagem no console do tipo “SITE A ran insecure content from SITE B”).
Usando o esquema sem protocolo definido, o programador web cobrirá todos os casos.