Browserunterstützung für URLs, die mit einem doppelten Schrägstrich beginnen

107

Ich habe kürzlich einige Links gesehen, die ohne Protokoll verwendet wurden. Es schien nicht allzu schwer zu verstehen - ich denke, es ist eine großartige Idee und ziemlich intuitiv.

Für diejenigen unter Ihnen, die es nicht wissen, zeigt die Verwendung einer URL wie //example.com/script.jsentweder http://example.com/script.jsoder https://example.com/script.jsabhängig davon, ob die URL von einer http- oder einer https- URL stammt oder nicht . Das Einfügen von http-Skripten oder Bildern von einer https-Seite kann beispielsweise ein Sicherheitsrisiko darstellen, sodass dies behoben wird, ohne dass in Ihrem Code eine Protokollerkennung erforderlich ist.

Meine Frage ist, welche Art von Browser- / Betriebssystemunterstützung gibt es dafür? Ist es sicher in der Produktion zu verwenden? Es würde die Dinge sicherlich ein bisschen einfacher machen.

Einfaches Beispiel und Test: http://codetester.org/916c6916

BEARBEITEN: Nur eine Folge davon, dass ich dies für den Ad-Server meines Unternehmens in der Produktion seit vielen Jahren für viele Dinge ohne Probleme verwende.

dtbarne
quelle
9
Hier beantwortet: stackoverflow.com/questions/4659345/… --- Kurz gesagt, es befindet sich in der RFC-Spezifikation und sollte daher von allen gängigen Browsern unterstützt werden.
Keith
1
@Keith Danke, das ist gut und alles, aber wenn ich mir die RFC-Spezifikationen ansehe, sehe ich eigentlich nichts über diese anfängliche Double-Slash-Sache. Ich hatte gehofft, einige endgültige Browsertests zu finden, die bereits durchgeführt wurden. :)
dtbarne

Antworten:

88

Dieses Verhalten war Teil von RFC 1808 (Abschnitt 4), der ungefähr 16 Jahre alt ist, daher sollte (und tut) jeder große Browser dies unterstützen.

Leider gibt es einen Fehler in IE7 und -8 , der dazu führt, dass sie die Ressourcen zweimal herunterladen, wenn eine protokollbezogene URL für ein linkoder verwendet wird @import- was kein großes Problem sein sollte, aber hässlich ist und im Auge behalten werden sollte.

oezi
quelle
Dies ist ein alter Beitrag, aber ich wollte auch sagen, dass es überhaupt keine gute Praxis ist. Vor kurzem hatte ich einige Probleme mit einem der Admin-Dashboards unserer Kunden. Die URL //code.jquery.com/jquery-2.1.3.min.jswurde nicht gefunden und die Bibliothek nicht geladen. Ich versuche dann zu laden http://code.jquery.com/jquery-2.1.3.min.jsund sehe eine Fehlerseite. Ich vermute eine Proxy- oder VPN- oder Firewall-Sicherheitskonfiguration, die sie intern festgelegt haben. Nach dem Aktualisieren der URL zur Verwendung des httpsProtokolls funktioniert alles einwandfrei.
TwystO
3

Wenn Sie auf einem lokalen Computer entwickeln, besteht die Möglichkeit, dass dies fehlschlägt src="file://host.com/filename".

In dieser Situation müssen Sie das Schema explizit angeben: http://host.com/filenameoder https://host.com/filename.

Matas Vaitkevicius
quelle