Supporto del browser per gli URL che iniziano con la doppia barra


107

Recentemente ho visto alcuni collegamenti utilizzati senza un protocollo. Non sembrava troppo difficile da capire, penso che sia un'ottima idea e piuttosto intuitiva.

Per quelli di voi inconsapevoli, l'utilizzo di un URL come //example.com/script.jsindicherà http://example.com/script.jso a https://example.com/script.jsseconda che l'URL provenga o meno da un URL http o https . Includere script o immagini http da una pagina https può essere un problema di sicurezza, ad esempio, quindi questo risolve questo problema senza la necessità di rilevare il protocollo nel codice.

La mia domanda è: che tipo di supporto browser / sistema operativo esiste per questo? È sicuro da usare in produzione? Certamente renderebbe le cose un po 'più facili.

Semplice esempio e test: http://codetester.org/916c6916

EDIT: Solo un seguito che sto usando questo per l'ad server della mia azienda in produzione per molte cose senza problemi da un paio d'anni.


9
Risposte qui: stackoverflow.com/questions/4659345/… --- In breve, è nella specifica RFC quindi dovrebbe essere supportato da tutti i principali browser.
Keith

1
@ Keith Grazie, va bene e tutto, ma guardando attraverso le specifiche RFC, in realtà non vedo nulla su questa cosa del doppio taglio iniziale. Speravo di trovare già alcuni test definitivi del browser. :)
dtbarne

Risposte:


88

Questo comportamento faceva parte dell'RFC 1808 (sezione 4) che ha circa 16 anni, quindi tutti i principali browser dovrebbero (e lo fanno) supportarlo.

Purtroppo, c'è un bug con IE7 e -8 che gli farà scaricare le risorse due volte se un URL relativo al protocollo viene utilizzato su un linkor @import- che non dovrebbe essere un grosso problema, ma è brutto e dovrebbe essere tenuto a mente.


Questo è un vecchio post, ma volevo anche dire che non è affatto una buona pratica. Recentemente ho avuto qualche problema su uno dei dashboard di amministrazione dei nostri clienti. L'URL //code.jquery.com/jquery-2.1.3.min.jsnon è stato trovato e la libreria non è stata caricata. Provo quindi a caricare http://code.jquery.com/jquery-2.1.3.min.jse visualizzare una pagina di errore. Sospetto che abbiano impostato internamente una configurazione di sicurezza proxy, VPN o firewall. Dopo aver aggiornato l'URL per utilizzare il httpsprotocollo, tutto funziona correttamente.
TwystO

3

Se stai sviluppando su una macchina locale, c'è la possibilità che fallisca src="file://host.com/filename".

In questa situazione è necessario specificare esplicitamente lo schema: http://host.com/filenameo https://host.com/filename.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.