Deux barres obliques dans un atsortingbut url / src / href

Duplication possible:
URI commençant par deux barres obliques… comment se comportent-elles?
URL absolues omettant le protocole (schéma) afin de préserver celui de la page en cours
raccourci en tant que // pour les balises script et link? Quelqu’un voit-il / utilise-t-il avant?

Je parcourais la source de HTML5 Reset lorsque j’ai remarqué la ligne suivante :

 

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

Les “deux barres obliques” sont un raccourci courant pour “quel que soit le protocole utilisé actuellement”.

Plus connus sous le nom d’URL relatives aux protocoles, ils sont particulièrement utiles lorsque des éléments, tels que le fichier JS dans votre exemple, peuvent être chargés depuis un contexte http ou https . En utilisant des URL relatives au protocole, vous pouvez éviter d’implémenter

 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 sur example.com puisse servir des ressources via http et https ).

Le moteur de commerce électronique Magento est un exemple concret: pour des raisons de performances, les pages de la boutique utilisent http par défaut, alors que la commande est activée pour https .

Lorsque des ressources codées en dur (c.-à-d. Des bannières promotionnelles dans l’en-tête du site) sont référencées par des URL non relatives au protocole ( http://example.com/banner.jpg , par exemple),

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

prompt – ce qui, comme vous pouvez l’imaginer, désactive la personne moyenne non informaticienne.

Si la ressource susmentionnée est référencée via //example.com/banner.jpg , le navigateur prend en charge le protocole approprié.

tl; dr: Même avec la moindre possibilité d’un environnement http / https mixte, utilisez simplement les URL relatives à double slash / protocol pour charger vos ressources – en supposant que l’hôte qui dessert le contenu soit à la fois http et https activé.

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