Prise en charge du navigateur pour les URL commençant par une double barre oblique

107

J'ai récemment vu quelques liens utilisés sans protocole. Cela n'a pas semblé trop difficile à comprendre - je pense que c'est une excellente idée et assez intuitive.

Pour ceux d'entre vous qui ne le savent pas, l'utilisation d'une URL comme //example.com/script.jspointera vers l'un http://example.com/script.jsou l' autre ou https://example.com/script.jsselon que l'URL provient ou non d'une URL http ou https . L'inclusion de scripts http ou d'images à partir d'une page https peut être un problème de sécurité, par exemple, cela résout cela sans avoir besoin de détection de protocole dans votre code.

Ma question est la suivante: quel type de support de navigateur / système d'exploitation existe-t-il? Est-il sûr à utiliser en production? Cela rendrait certainement les choses un peu plus faciles.

Exemple simple et test: http://codetester.org/916c6916

EDIT: Juste un suivi que j'utilise cela pour le serveur publicitaire de mon entreprise en production pour beaucoup de choses sans problème depuis quelques années maintenant.

dtbarne
la source
9
Réponse ici: stackoverflow.com/questions/4659345/… --- En bref, c'est dans la spécification RFC, donc il devrait être pris en charge par tous les principaux navigateurs.
Keith
1
@Keith Merci, c'est bien et tout, mais en regardant à travers les spécifications RFC, je ne vois rien à propos de ce truc de double barre oblique. J'espérais trouver des tests de navigateur définitifs déjà effectués. :)
dtbarne

Réponses:

88

Ce comportement faisait partie de la RFC 1808 (section 4) qui a environ 16 ans, donc tous les principaux navigateurs devraient (et le font) prendre en charge cela.

Malheureusement, il y a un bogue avec IE7 et -8 qui les obligera à télécharger les ressources deux fois si une URL relative au protocole est utilisée sur un linkou @import- ce qui ne devrait pas être un gros problème, mais est moche et doit être gardé à l'esprit.

oezi
la source
C'est un ancien article, mais je voulais aussi dire que ce n'est pas du tout une bonne pratique. Récemment, j'ai eu des problèmes sur le tableau de bord d'administration de l'un de nos clients. L'URL //code.jquery.com/jquery-2.1.3.min.jsn'a pas été trouvée et la bibliothèque n'a pas été chargée. J'essaye ensuite de charger http://code.jquery.com/jquery-2.1.3.min.jset de voir une page d'erreur. Je soupçonne une configuration de sécurité proxy ou VPN ou pare-feu qu'ils ont définie en interne. Après avoir mis à jour l'URL pour utiliser le httpsprotocole, tout fonctionne correctement.
TwystO
3

Si vous développez sur une machine locale, il est possible que cela échoue avec src="file://host.com/filename".

Dans cette situation, vous devez spécifier explicitement le schéma: http://host.com/filenameou https://host.com/filename.

Matas Vaitkevicius
la source