Wenn ich das sehe //
, folgt es normalerweise einem Protokollpräfix wie http:
oder ftp:
. Ich habe es noch nie woanders gesehen. Beispielsweise,
http://www.google.com/
ist eine typische URL.
Die folgenden beiden Syntaxen ergaben jedoch unterschiedliche Versionen derselben Site:
Ich hätte gedacht, dass //
irgendwo anders als die Protokollspezifikation ungültig wäre. Zu meiner Überraschung habe ich mich geirrt. Was ist mit dem Ende //
, das eine andere Version derselben Site erzeugt?
BEARBEITEN:
Jemand an dieser Stelle muss Wind von der anderen Seite bekommen haben, da beide Links jetzt auf derselben Seite landen.
///
oder////
am Ende der URL führte die gleiche Stelle wie ,/
wo//
tat Ergebnis in etwas anderes.\\HostName[@Port]\SharedFolder\Resource
Antworten:
Das Leading
//
ist Teil der URL-Syntax. Der Erfinder des World Wide Web hat sich für diesen Fehler entschuldigt .Was das Nachziehen angeht
//
, ist es wirklich kein doppelter Schrägstrich. Der erste Schrägstrich trennt den Hostnamen vom Pfad. Der letzte Schrägstrich ist der Pfad. Ein Webserver kann, wenn er möchte, einen/
anderen als einen leeren Pfad behandeln, und anscheinend ist dies bei weather.com der Fall. Ob dies zufällig oder absichtlich ist, müssen Sie sie danach fragen.quelle
http://example.com
kann anders behandelt werden alshttp://example.com/
? Ich hätte nicht gedacht, dass dies beim ersten Schrägstrich der Fall ist..htaccess
Regeln. Aber das solltest du wahrscheinlich nicht.http://example.com
anders behandeln alshttp://example.com/
auf einem Webserver, da beide einen leeren Pfad haben. Sie können sie in einem Browser anders behandeln.GET / HTTP/1.1
: tools.ietf.org/html/rfc2616.html#section-3.2.3In jüngerer Zeit, könnte es , dass der doppelte Schrägstrich argumentiert wird , hat eine Rolle. Google empfiehlt (um beispielsweise zu vermeiden, dass versehentlich unsicherer Inhalt von einer sicheren Seite aufgerufen wird), das Protokoll in eingebetteten Ressourcen (Stylesheets, Js usw.) wie folgt wegzulassen
So ist es jetzt offensichtlich, dass eine solche protokolllose URL eine vollqualifizierte URL ist und keine relative URL (die mit einem einzelnen Schrägstrich beginnen würde).
quelle
Um tatsächlich die Frage zu beantworten, gab die ursprüngliche Spezifikation das Protokoll
http:
(oder möglicherweiseftp:
,gopher:
,mailto:
,news:
,telnet:
,wais:
,file:
oderprospero:
) , dann ein ,//
um anzuzeigen , dass die Uniform Resource Locator (URL) Syntax verwendet wurde, dann wird die Host (optional mit dem Präfixuser:password@
) , dann Adresse richtig mit einem anderen anfangen/
. Dies wurde in RFC 1738 vorgeschlagen .Als sich das Internet weiterentwickelte,
http:
wurde es zum vorherrschenden Protokoll, sodass Browser jetzt davon ausgehen, dass ein Präfix vonhttp://
hinzugefügt werden sollte, wenn es nicht vorhanden ist.quelle
//
anzuzeigen, dass es verwendet wurde ... Ist das so?isbn:1-23-456789-12-3
. In der Praxishttp:
definiert das, dass der Rest eine URL sein wird. RFCs sind nur Vorschläge und ermöglichen häufig Erweiterungen, die nie zustande kommen. An einem Punkt sagte Tim Berners-Lee, dass das//
für ein "Subnetz" war (zBhttp:/govnet/whitehouse.gov
). Diese Idee wurde nie benutzt, aber '//' bleibt so, wie es der Code jetzt erwartet und prüft.http://www.google.com/
undhttp:%/74.125.225.97/
sowohl gültig sein und//
zeigen einen Hostnamen , während etwas anderes wie%/
eine IP - Adresse angeben?Ich möchte zu Davids akzeptierter Antwort hinzufügen:
Trotz der Entschuldigung des Erfinders des Internets hatte die Syntax mit zwei Schrägstrichen meines Erachtens einen wichtigen Zweck: sich optisch hervorzuheben. Doppelte Schrägstriche ermöglichten eine einfache visuelle Unterscheidung von URLs in einem Text ohne Hyperlinks. Wenn Sie doppelte Schrägstriche sahen, dachten Sie sofort, dass diese in ein Browserfenster eingegeben werden könnten, ähnlich wie Sie es für einen Text hielten
@
könnte verwendet werden, um eine E-Mail zu senden. Dies war besonders wichtig in der Übergangsphase zum Web, in der Protokolle dieser Zeit (ftp, telnet, gopher) ihre eigene seltsame Vorstellung hatten, Serveradressen oder Ressourcenpfade darzustellen, selten beides. Die meisten Probleme, die mit doppelten Schrägstrichen verbunden sind, würden weiterhin bestehen, da doppelte Schrägstriche der am wenigsten kryptische Teil einer URL sind. Denken Sie an Portnummern, die prozentuale Kodierung und die Berücksichtigung der Groß- und Kleinschreibung. Aber eine URL wie http: something.com könnte leicht mit meinem Beispiel hier verwechselt werden: something.com. Schauen Sie sich auf der anderen Seite http: // an, wie es wie ein Diamant glänzt. Doppelte Schrägstriche waren ein wichtiger Bestandteil der Web-Symbolik und ich glaube, dass sie auch die Akzeptanzrate beschleunigte, selbst wenn sie unbeabsichtigt war.Sie hätten AmigaOS auch die Unterscheidung zwischen Dateinamen und URLs erleichtern können, da AmigaOS die Dateipfadsyntax verwendete
volume:path/to/destination
. :)quelle