Das Parsen von URIs ist eine interessante Sache. Mir war vorher nicht klar, dass es so kompliziert sein kann.
URI
Die Erklärung von URI in Wikipedia lautet wie folgt:
In der Computersprache ist ein Uniform Resource Identifier (URI) eine Zeichenfolge, die zur Identifizierung des Namens einer Internetressource verwendet wird. Diese Art der Identifizierung ermöglicht es Benutzern, über bestimmte Protokolle mit Ressourcen im Netzwerk (allgemein als World Wide Web bezeichnet) zu interagieren. Ein URI wird durch ein Schema definiert, das die Syntax und die zugehörigen Protokolle bestimmt.
Zitiert aus der Erklärung der URI-Zusammensetzung im Internet, die später in der URI-Analyse eingesehen werden kann.
URI besteht im Allgemeinen aus drei Teilen:
1. Benennungsmechanismus für den Zugriff auf Ressourcen.
2. Der Hostname, auf dem die Ressourcen gespeichert sind.
3. Der Name der Ressource selbst, dargestellt durch den Pfad.
Oder man kann sagen, dass die beiden konsistent zu sein scheinen.
Das Format der URL besteht aus den folgenden drei Teilen:
1. Vereinbarung (oder Servicemethode)
2. Die IP-Adresse des Hosts, auf dem die Ressource gespeichert ist (manchmal einschließlich der Portnummer)
3. Die spezifische Adresse der Hostressource. , wie Verzeichnis- und Dateinamen usw.
URI-Analyse
Das „Auflösen“ eines URI bedeutet, einen relativen URI-Verweis in seine absolute Form umzuwandeln oder den URI zu dereferenzieren, indem versucht wird, einen dereferenzierbaren URI oder die durch einen URI-Verweis dargestellte Ressource zu erhalten. Der „Parsing“-Teil von Dokumentenverarbeitungssoftware bietet häufig beide Funktionen.
Javascript-URI-Analyse
Nehmen Sie einfach die Such-JS im Blog als Beispiel. Im Folgenden finden Sie die URL:
http://www.jb51.net/search/?q=js&type=
Dann war da noch
var parser = document.createElement('a');
parser.href = "http://www.jb51.net/search/?q=js&type="
Wir können dann sein Protokoll, die Portnummer, den Host, die spezifische Adresse usw. kennen.
parser.protocol;
parser.host;
parser.pathname;
parser.search;
Das zurückgegebene Ergebnis ist
Protokoll:http
Host:www.jb51.net
Pfadname:/search/
Suche:?q=js&type=
Die obigen Ergebnisse werden zu einem vollständigen URI addiert. Ich verstehe diesen Teil von parser.search einfach nicht sehr gut. Für die ?-Nummer sollte es ein Parameter sein, ein Parameter, der für die Suche verwendet wird.
Wenn es sich um einen URI für eine E-Mail handelt, wird davon ausgegangen, dass der URI
ist
mailto:h@jb51.net?subject=hello
Dann
var parser = document.createElement('a');
parser.href = "mailto:h@jb51.net?subject=hello";
> parser.protocol
"mailto:"
> parser.pathname
„h@jb51.net“
> parser.search
„?subject=hello“