web-dev-qa-db-fra.com

Quel est le problème avec les URL pour Yandex.Metrica non précédées de "http"?

La description de Yandex.Metrica indique explicitement que des URL telles que //mc.yandex.ru/metrika/watch.js (pas de http: à l'avant) que le propriétaire du site Web doit insérer dans ses pages ne sont pas erronées. Donc par exemple ce code:

<img src="//mc.yandex.ru/watch/00000"
     style="position:absolute; left:-9999px;" alt="" />

est prétendu être bien.

Cependant, le validateur de code pense que de telles URL ne sont pas correctes et je préférerais que le validateur soit heureux afin que personne ne rompt le code plus tard en essayant de le "réparer".

Pourquoi ces URL ne sont-elles pas précédées de http:? Que se passe-t-il si je les ajoute avec http:?

4
sharptooth

Je pense que le validateur de code est faux. Si une partie d'une URL est manquante, les autres parties sont renseignées à partir de la page parent. Ainsi, par exemple, si une image est appelée à partir de http://example.org/page1.html avec src="pic.jpg ", le navigateur ajoute http://example.org/ avant le src.jpg avant de récupérer le fichier. Si le http: Une partie de l'URL (le protocole) est manquante, le protocole de la page parent sera utilisé.

Pourquoi ne sont-ils pas précédés de http:? J'imagine que c'est parce que si vous avez une page https: //, les images seront automatiquement transmises via https.

Si vous les préfixez avec http: et que vous avez une page https, l'utilisateur peut recevoir, en fonction du navigateur, un message d'erreur indiquant qu'une partie du contenu de la page n'est pas sécurisée.

9
paulmorriss