Domanda

Possibile duplicazione:
URI che inizia con due barre how come si comportano?
URL assoluti omettendo il protocollo (schema) al fine di preservare quello della pagina corrente
stenografia come / / per tag di script e link?qualcuno lo vede / usa prima?

Stavo guardando attraverso la fonte di Ripristino HTML5 quando ho notato il seguente linea:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>

Perché l'URL inizia con due barre in avanti?È una scorciatoia per http://?

È stato utile?

Soluzione

Le " due barre in avanti "sono una scorciatoia comune per"qualunque protocollo venga utilizzato in questo momento".

Meglio conosciuti come "URL relativi al protocollo", sono particolarmente utili quando elementi, come il file JS nell'esempio, possono essere caricati da un http o un https contesto.Utilizzando gli URL relativi al protocollo, è possibile evitare l'implementazione

if (window.location.protocol === 'http:') {
    myResourceUrl = 'http://example.com/my-resource.js';
} else {
    myResourceUrl = 'https://example.com/my-resource.js';
}

tipo di logica su tutta la base di codice (supponendo, ovviamente, che il server in example.com è in grado di servire le risorse tramite entrambi http e https).

Un importante esempio del mondo reale è il motore di e-Commerce Magento:per motivi di prestazioni, le pagine del negozio utilizzano http per impostazione predefinita, mentre il checkout è https abilitato.

Quando le risorse hard-coded (es.i banner promozionali nell'intestazione del sito) sono referenziati da URL non relativi al protocollo (es. http://example.com/banner.jpg), clienti che raggiungono il https checkout abilitato sarà accolto con un piuttosto ostile

"ci sono elementi non sicuri in questa pagina"

prompt-che, come puoi immaginare, getta via la persona media non esperta di tecnologia.

Se la risorsa di cui sopra è referenziata tramite //example.com/banner.jpg tuttavia, il browser si occupa di anteporre il protocollo corretto.

tl; dr:Con anche la minima possibilità di un ambiente http/https misto, basta usare la doppia barra/URL relativi al protocollo per caricare le risorse, supponendo che l'host che serve il contenuto sia abilitato http e https.

Altri suggerimenti

Aggiungerà automaticamente https o http, a seconda di come è stata effettuata la richiesta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top