web-dev-qa-db-fra.com

URL sans "http | https"

Je viens d'apprendre d'un collègue qu'omettre la partie "http | https" d'une URL dans un lien obligerait cette URL à utiliser le schéma de la page utilisé.

Ainsi, par exemple, si ma page est accessible à partir de http://www.example.com et que j'ai un lien (remarquez le "//" à l'avant):

<a href="//www.google.com">Google</a>

Ce lien ira à http://www.google.com .

Mais si j'accède à la page à l'adresse https://www.example.com avec le même lien, il ira à https://www.google.com

Je voulais regarder en ligne pour plus d'informations à ce sujet, mais j'ai du mal à trouver une bonne phrase de recherche. Si je recherche "URL sans HTTP", les pages renvoyées concernent les URL de ce type: "www.exemple.com", ce que je ne recherche pas.

Souhaitez-vous appeler cela une URL sans schéma? Une URL sans protocole?

Est-ce que cela fonctionne dans tous les navigateurs? Je l'ai testé en FF et IE 8 et il a fonctionné dans les deux cas. Cela fait-il partie d'un standard ou dois-je tester plus de navigateurs?

76
topher-j

URL relative du protocole.

Vous pouvez recevoir des avertissements de sécurité inhabituels dans certains navigateurs.

Voir aussi, RL relatives au protocole Wikipedia pour une brève définition.

À un moment donné, il était recommandé ; mais à l'avenir, il devrait être évité . Voir aussi, question StackOverflow, Pourquoi utiliser des URL relatives au protocole?

67
Mark Maruska

Cela s'appelle la référence du chemin réseau (la partie manquante est appelée scheme ou protocol) défini dans la RFC3986, section 4.2

4.2 Référence relative

Une référence relative tire parti de la syntaxe hiérarchique (Section 1.2.3) pour exprimer une référence d'URI relative à l'espace de nom d'un autre URI hiérarchique.

  relative-ref  = relative-part [ "?" query ] [ "#" fragment ]

  relative-part = "//" authority path-abempty
                / path-absolute
                / path-noscheme
                / path-empty

L'URI référencé par une référence relative, également connu sous le nom d'URI cible, est obtenu en appliquant l'algorithme de résolution de référence de la section 5.

Une référence relative commençant par deux barres obliques est appelée une référence de chemin réseau (l'emphase mine); de telles références sont rarement utilisées. Une référence relative qui commence par un seul caractère de barre oblique est appelée une référence de chemin absolu. Une référence relative qui ne commence pas par une barre oblique est appelée une référence de chemin relatif.

Un segment de chemin qui contient un caractère deux points (par exemple, "this: that") ne peut pas être utilisé comme premier segment d'une référence de chemin relatif, car il serait confondu avec un nom de schéma. Un tel segment doit être précédé d'un segment de points (par exemple, "./this:that") pour créer une référence de chemin relatif.

13
Matas Vaitkevicius