web-dev-qa-db-fra.com

Deux barres obliques dans un attribut url / src / href

Duplicate possible:
RI commençant par deux barres obliques ... comment se comportent-ils?
RL absolues omettant le protocole (schéma) afin de préserver celui de la page actuelle
en abrégé // pour les balises de script et de lien? quelqu'un voit/utilise-t-il avant?

Je regardais à travers la source de Rétablissement HTML5 quand j'ai remarqué le ligne suivante :

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

Pourquoi l'URL commence-t-il par deux barres obliques? Est-ce un raccourci pour http://?

122
Michael Parkin

Les "deux barres obliques" constituent un raccourci commun pour "quel que soit le protocole utilisé actuellement".

Mieux connues sous le nom "URL relatives de protocole", elles sont particulièrement utiles lorsque des éléments, tels que le fichier JS dans votre exemple, peuvent être chargés à partir d'un contexte http ou d'un contexte https. En utilisant des URL relatives au protocole, vous pouvez éviter de mettre en œuvre

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

type de logique sur votre base de code (en supposant, bien sûr, que le serveur de example.com est capable de servir des ressources via http et https).

Le moteur de commerce électronique Magento est un bon exemple du monde réel: pour des raisons de performances, les pages de la boutique utilisent plain http par défaut, alors que la commande est compatible avec https.

Lorsque les ressources codées en dur (c'est-à-dire les bannières promotionnelles dans l'en-tête du site) sont référencées par des URL relatives non protocolaires (c'est-à-dire http://example.com/banner.jpg), les clients qui atteignent la commande activée par https seront accueillis avec un accueil plutôt hostile.

"il y a des éléments non sécurisés sur cette page"

Invite - qui, comme vous pouvez l’imaginer, éloigne la personne moyenne non avertie en technologie.

Si la ressource susmentionnée est référencée via //example.com/banner.jpg cependant, le navigateur prend soin d’ajouter le bon protocole.

tl; dr: Même avec la moindre possibilité d'un environnement mixte http/https, utilisez simplement les URL relatives double barre oblique/protocole pour charger vos ressources, en supposant que l'hôte qui fournit le contenu est à la fois activé pour http et https.

196
vzwick

Il ajoutera automatiquement https ou http, selon la manière dont la demande a été faite.

10
Radu Cugut