2015-02-11 18 views
14

E 'stata una questione spesso discussa su StackOverflow ciò che questo significa:Perché utilizzare gli URL relativi ai protocolli?

<script src="//cdn.example.com/somewhere/something.js"></script> 

Questo dà il vantaggio che se si sta accedendo sopra HTTPS, si ottiene HTTPS automaticamente, al posto di quella "elementi insicuri spaventosi su questo pagina "avviso.

Ma perché utilizzare gli URL relativi ai protocolli? Perché non utilizzare semplicemente HTTPS sempre negli URL CDN? Dopotutto, una pagina HTTP non ha motivo di lamentarsi se si decide di caricarne alcune parti su HTTPS.

(Questo è più specifico per CDN; quasi tutti i CDN hanno HTTPS capacità considerando che, proprio server potrebbe non avere necessariamente HTTPS..)

risposta

22

A partire dal dicembre 2014, Paul Irish's blog on protocol-relative URLs dice:

2014/12/17: Ora che SSL è incoraggiata per tutti, e non ha problemi di prestazioni, questa tecnica è ormai un anti-modello. Se la risorsa di cui hai bisogno è disponibile su SSL, quindi sempre utilizza la risorsa https://.

Se non avete problemi di prestazioni specifiche (come la rete lenta cellulare indicato nella risposta di Zakjan) si dovrebbe usare https:// per proteggere gli utenti.

+1

Questo si applica solo alle risorse di terze parti? – user3448600

+2

@ user3448600 per risorse locali si usano solo percorsi '/', non '//'. – Kos

+1

Nel 2017, anche SO è passato dal protocollo relativo a HTTPS: https://nickcraver.com/blog/2017/05/22/https-on-stack-overflow/#mistakes-protocol-relative-urls – ruhong

6

A causa di prestazioni. L'instaurazione della connessione HTTPS richiede molto più tempo di HTTP, l'handshake TLS aggiunge un ritardo di latenza fino a 2 RTT s. Puoi notarlo sulle reti mobili. Quindi è meglio non usare gli URL degli asset HTTPS, se non ne hai bisogno.

+0

Dico che è meglio usare https cuz delle prestazioni http2 ed è più sicuro! – Endless

+3

Questa è una risposta di 2 anni, quando HTTP2 non era ancora disponibile. – zakjan

+0

Questa risposta non è più vera. Abilita HTTP2 sui tuoi siti web e HTTPS è più veloce di HTTP. – Qwertie

Problemi correlati