170 votes

Deux barres obliques dans une url/src/attribut href

Double Possible:
URI commençant par deux barres obliques ... comment se comportent-ils?
Les Url absolues en omettant le protocole (schéma) afin de préserver la une de la page en cours
abréviation // pour le script et les balises link? personne voir / utiliser ce avant?

J'étais à la recherche par le biais de la source de HTML5 Reset quand j'ai remarqué la ligne suivante:

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

Pourquoi ne l'URL commence avec deux barres obliques? Est-ce un raccourci pour http://?

249voto

vzwick Points 4324

Les "deux barres obliques" sont un raccourci pour "quel que soit le protocole utilisé est le protocole droit maintenant".

Mieux connu comme le "protocole relatif Url", ils sont particulièrement utiles lorsque des éléments tels que le fichier JS dans votre exemple - peut être chargé à partir d'un http ou https contexte. En utilisant le protocole relatif Url, vous pouvez éviter la mise en œuvre de

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

type de logique dans votre base de code (en supposant, bien sûr, que le serveur à l' example.com est en mesure de servir de ressources à la fois par http et https).

Un éminent dans le monde réel, en est l'exemple Magento E-Commerce moteur: pour des raisons de performances, les pages de la boutique utiliser simplement de l' http par défaut, alors que la caisse est - https activé.

Lorsque codée en dur ressources (c'est à dire les bannières promotionnelles sur le site de l'en-tête) sont référencés par des non protocole relatif de l'Url (c'est à dire http://example.com/banner.jpg), les clients d'atteindre l' https permis à la caisse sera accueillie par un plutôt hostile

"il y a de l'insécurité des éléments sur cette page"

invite - qui, comme vous pouvez l'imaginer, jette à la moyenne non-tech-savvy personne.

Si celle-ci ressource est référencé par //example.com/banner.jpg si le navigateur prend soin de faire précéder le bon protocole.

tl;dr: Avec la moindre possibilité d'un mélange de http/https de l'environnement, il suffit d'utiliser la double barre oblique/protocole d'Url relatives pour le chargement de vos ressources - en supposant que l'hôte de servir le contenu est à la fois le http et le https est activé.

15voto

Radu Cugut Points 855

Il va automatiquement ajouter https ou http, selon la façon dont la demande a été faite.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X