Dernièrement, j'ai vu des blocs de code fonctionnels comme celui-ci:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
Et selon RFC 2396 (syntaxe URI) et RFC 2616 (HTTP 1.1), ces URI commençant par deux barres obliques sont valides, mais malheureusement les RFC ne les expliquent pas vraiment.
Quelqu'un peut-il me diriger vers une ressource qui explique comment les navigateurs traiteront / devraient / traiteront ces URI?
la source
../g
- il utilisera le protocole actuel et mènera àhttp://a/b/c/g
.xml:base
pour le définir explicitement sur n'importe quel élément . Par défaut en HTML, l'URI de base est le même URI de la page (mais à l'intérieur d'un fichier CSS, l'URI de base est relatif à l' URI CSS, pas au HTML contenant , mais plus ancien IE le rendait par rapport au HTML). Dans d'autres protocoles et langages, cela peut être différent (en XSLT, cela dépend de l'élément courant, par exemple). Voir aussi<html:base>
.http
! Cela dépend du protocole du contexte de la page. Si le contexte a été chargé soushttp://a/b/c/d;p?q
, alors se//g
résout effectivement àhttp://g
. Mais si la page a été chargée commehttp://a/b/c/d;p?q
alors le résultat serahttps://g
. Et n'oubliez pas non plus les autres protocoles commefile://
(la page est chargée à partir du disque) - qui vous donneront certainement beaucoup de maux de tête.Ce sont des URL relatives au protocole. Ils pointent vers une adresse, en gardant le protocole actuel.
Cette notation est souvent utilisée pour éviter le problème de «contenu mixte» (un message d'avertissement IE se plaignant de ressources
http
ethttps
sur la même page HTTPS).Mise à jour: documentation officielle dans la RFC 3986:
la source
Ce sont des URL indépendantes du protocole. Si la page Web est servie sur https, la demande utilise https, si http puis http.
Paul Irish semble les avoir popularisés en l'incluant dans son code standard.
la source
Sachez que ce n'est pas seulement indépendant de http ou https , mais aussi de fichier , ftp , etc.
Cela signifie que si vous ouvrez le fichier .htm directement dans votre navigateur sur localhost, le navigateur résoudra // en tant que protocole de fichier et votre page ne fonctionnera pas. Cela peut causer des problèmes dans les sites Web emballés en tant qu'application «native» utilisant des outils tels que Electron, PhoneGap, etc.
Exemple:
à
la source