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://
?
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.
Il ajoutera automatiquement https ou http, selon la manière dont la demande a été faite.