Aus welchen Teilen besteht eine URL?

Meistens ist es in Ordnung, Dinge wie „Ich habe eine Domain gekauft“ oder „Unsere Bilder werden auf einer anderen Website gehostet“ zu sagen, auch wenn das nicht ganz stimmt. In einigen Kontexten ist es jedoch notwendig, genauer zu sein. Wenn Sie sich beispielsweise mit Cookies beschäftigen, müssen Sie den Unterschied zwischen site und origin kennen.

Namen für URL-Teile werden in einem Standard angegeben, der auch eine JavaScript API definiert:

  • Der URL-Standard definiert URLs und zugehörige Konzepte, damit Entwickler interoperable Webbrowser erstellen können.
  • Die URL API-Komponente des Standards definiert Methoden, mit denen der Zugriff auf Teile eines URL-Strings ermöglicht wird, z. B. auf das Schema oder den Ursprung.

In diesem Dokument wird eine Reihe von Begriffen erläutert, die in Verbindung mit HTTP- oder HTTPS-URL-Strings verwendet werden. Andere URL-Typen wie Datei- oder Daten-URLs werden nicht abgedeckt. Für Begriffe wie host und origin sind genaue Definitionen grundsätzlich komplex. Daher enthält dieses Dokument Beispiele und Links zum URL-Standard, anstatt eine ausführliche Erläuterung anzubieten.

Mit JavaScript können Sie die Namen von URL-Komponenten abrufen, die von der URL API definiert werden. Beispiel:

let url = new URL('https://foo.com.au:1234/bar/foo.html#bar');
console.log(url);

URL-Analyse

Bearbeiten Sie die URL unten, um zu sehen, wie Teile des URL-Strings benannt werden. Sie können sie auch unter url-parts.glitch.me in einem separaten Tab öffnen.


Die Namen der URL-Teile sind unten alphabetisch aufgeführt.

Ländercode-Top-Level-Domain (country-code top-level domain, ccTLD)

Eine Top-Level-Domain, die in der Liste der Ländercodes gemäß ISO 3166-1 definiert ist.

  • Für https://example.org.au lautet die ccTLD au.
  • Für https://example.io lautet die ccTLD io.

Domainname

Die Teile einer HTTP- oder HTTPS-URL, die durch Punkte getrennt sind: alles nach dem Schema, aber vor dem Pfad oder Port (falls angegeben). Jeder Teil des Domainnamens wird als Label bezeichnet.

URL Domainname
https://example.github.io/path example.github.io
https://support.example.org.au:443 support.example.org.au

Effektive Top-Level-Domain (eTLD)

Ein Eintrag in der Liste der öffentlichen Suffixe, einschließlich einer TLD und(bei eTLDs mit mehreren Teilen) weiteren Domains darunter: Second-Level-, Third-Level- usw.

  • Beispiele: com, com.au, github.io, sa.edu.au, schools.nsw.edu.au.

Ein „öffentliches Suffix“ wie in diesen Beispielen ist ein Name, unter dem Domains registriert werden können. Die Liste der öffentlichen Suffixe ist eine Liste aller bekannten öffentlichen Suffixe und wird regelmäßig aktualisiert. Diese Liste wird von Browsern wie Chromium und Firefox in ihren Builds verwendet.

eTLD+1

Siehe registrierbare Domain.

Eine eTLD plus die vorangestellte Subdomain.

  • Beispiele: example.com, example.org.au, example.github.io, example.sa.edu.au, example.schools.nsw.edu.au.

Dateiname

Nicht im URL-Standard definiert und nicht Teil der URL API. Wird jedoch in der Regel verwendet, um auf den finalen, nicht pfadbasierten Teil der URL zu verweisen, und zwar basierend auf der häufig falschen Annahme, dass die URL direkt einer Verzeichnisstruktur zugeordnet ist.

Mit https://example.com/dir/file.html wird beispielsweise file.html auch als Dateiname bezeichnet.

Der Wert für den Dateinamen wird auch von Browsern verwendet, um ein Asset zu benennen, wenn es heruntergeladen wird. Beispielsweise wird https://example.com/images/image.jpg normalerweise lokal in image.jpg gespeichert.

Fragment

Ein String, der auf ein #-Zeichen am Ende einer URL folgt, der eine Fragment-ID bereitstellt.

  • Die URL https://example.com/cats#tabby hat beispielsweise den Fragment-ID-Wert tabby.

Der Teil mit # wird als Hash oder Anker bezeichnet. Sie können auch ein Textfragment verlinken und es hervorheben.

Der Hash wird von der URL API zurückgegeben, nicht vom Fragment.

Voll qualifizierter Domainname (FQDN)

Eine vollständige Adresse einer Website oder eines Servers, die einer IP-Adresse zugeordnet ist.

URL FQDN
https://example.com:1234/cats example.com
https://api.example.github.io api.example.github.io

Der FQDN für eine URL enthält den port nicht, auch wenn ein nicht standardmäßiger Port verwendet wird.

Hash (oder Anker)

Ein String, der auf ein #-Zeichen am Ende einer URL folgt und eine Fragment-ID bereitstellt. In einigen Kontexten wird dies als „Anker“ bezeichnet.

Der Teil ohne # wird als Fragment bezeichnet. Sie können auch ein Textfragment verlinken und es hervorheben.

Der Hash wird von der URL API zurückgegeben, nicht vom Fragment.

Host

Wie im URL-Standard definiert, kann ein Host ein Domainname, eine IP-V4-Adresse, eine IPv6-Adresse, ein intransparenter Host oder ein leerer Host sein.

  • Die Definition des URL-Standards für host enthält nicht den Port.
  • URL.host enthält den Port, es sei denn, der Port ist der Standardport für das Schema.
  • URL.hostname enthält den Port nicht.
URL URL.host
https://www.example.com:443/cat www.example.com
// 443 is the default port for the scheme
https://www.example.com:1234/cat www.example.com:1234
https://cat.example.github.io cat.example.github.io

Hostname

Der Hostname wird von der JavaScript URL API definiert, aber nicht an anderer Stelle durch den URL-Standard. Weitere Informationen finden Sie unter Hostdarstellung.

URL.hostname gibt den host ohne den port zurück.

URL URL.hostname
https://www.example.com:443/cat www.example.com
https://www.example.com:1234/cat www.example.com
https://cat.example.github.io cat.example.github.io

Ursprung

Der URL-Standard definiert origin und enthält Links zum HTML-Standard für Hintergrundinformationen.

Bei HTTP- oder HTTPS-URLs gibt URL.origin das Schema, den Host und den Port zurück (es sei denn, der Port ist der Standardport für das Schema).

URL URL.origin
https://www.example.com:443/cat https://www.example.com
https://www.example.com:1234/cat https://www.example.com:1234
https://cat.example.github.io https://cat.example.github.io

Parameter

Siehe Suchparameter.

Passwort

Siehe Nutzername.

Pfadname

Bei einer HTTP- oder HTTPS-URL der Teil nach der Domain und dem Port (falls definiert), einschließlich eines Dateinamens (falls definiert), aber ohne Suchstring oder Hash.

URL URL.pathname
https://example.com [empty string]
https://example.com:8000/search?q=tabby /search
https://example.github.io/cat/pattern#tabby /cat/pattern
https://example.github.io/README.md /README.md

„Pfad“ wird manchmal verwendet, um auf den Pfadnamen ohne den Dateinamen zu verweisen. Bei der URL https://example.com/cat/pattern/tabby.html ist der „Pfad“ beispielsweise /cat/pattern.

Port

Die Zahl nach einem : in einer URL, die einen Netzwerkport identifiziert. Beispiel: Für die URL https://example.com:1234/tabby ist die Portnummer 1234.

Die Portnummer muss eine 16-Bit-Ganzzahl ohne Vorzeichen sein, d. h. eine Ganzzahl zwischen 0 und 65.535 (jeweils einschließlich).

Für HTTP-URLs ist der Standardport 80, für HTTPS 443. In einer URL muss die Portnummer nur angegeben werden, wenn ein nicht standardmäßiger Port verwendet wird.

Die API gibt einen leeren String zurück, wenn der Port der Standardport für das Schema ist.

URL URL.port
https://example.com // empty string
https://example.com:443/foo // empty string: port is default for scheme
https://www.example.com:1234/foo 1234

Protokoll

Das Schema gefolgt von : (z. B. http: oder https:).

protocol ist über die URL API verfügbar, scheme jedoch nicht.

Abfrage (oder „Abfragestring“)

Der Suchteil der URL ohne den führenden ?-Wert.

Registrierbare Domain

  • Bei einer URL mit einer einteiligen eTLD wie com oder org (eine eTLD, die einer TLD entspricht) die Domain und die Second-Level-Domain davor, z.B. example.com oder example.org.
  • Bei einer URL mit einer zweiteiligen eTLD, bei der nur eine Registrierung auf dritter Ebene zulässig ist (Einträge in der Public Suffix List wie com.au und github.io), ist die zweiteilige Top-Level-Domain („öffentliches Suffix“) und der Third-Level-Domainname kurz davor. Beispiel: example.org.au oder example.github.io.
  • Bei drei- oder mehrteiligen eTLDs: die eTLD und die vorherige Domain.

Schema

Der Teil der URL (vor ://), der das Netzwerkprotokoll (oder die vom User-Agent auszuführende Aktion) definiert, wenn eine Anfrage an eine URL gestellt wird. Beispielsweise sollte eine Anfrage an eine URL mit dem Schema https über das HTTPS-Protokoll erfolgen. Bei einer Anfrage an eine URL mit einem Schema wie file, mailto oder git, das keinem Netzwerkprotokoll entspricht, hängt das Verhalten vom User-Agent ab. Wenn ein Nutzer beispielsweise auf einen mailto-Link klickt, öffnen die meisten Browser ihre Standard-E-Mail-Anwendung mit den Werten in der href-URL des Links.

Ein Fragezeichen gefolgt von einer Reihe von Schlüssel/Wert-Paaren, die Parameter und ihre Werte darstellen und nach dem pathname angegeben werden.

URL URL.search
https://example.com/cats?pattern=tabby&mood=bonkers ?pattern=tabby&mood=bonkers
https://example.com/cats:443?pattern=tabby ?pattern=tabby

query oder der „Abfragestring“ bezieht sich auf die search ohne das vorangestellte ?.

Siehe auch Suchparameter.

Parameter suchen

Beziehen Sie sich auf ein Datenelement, das in einem Suchstring (oder „Abfragestring“) übergeben wird.

  • Bei https://example.com/cats?pattern=tabby&mood=bonkers hat der Suchstring beispielsweise zwei Parameter: pattern=tabby und mood=bonkers.

Second-Level-Domain

Die Domain vor einer Top-Level-Domain.

  • Für die URL https://www.example.com ist die Second-Level-Domain example.com, eine Subdomain der Top-Level-Domain com.

  • Für https://example.org.au ist die Top-Level-Domain au, die Second-Level-Domain org und die Third-Level-Domain example. In diesem Beispiel ist org.au eine Subdomain von au und example.org.au eine Subdomain von org.au.

Website

Site wird durch den HTML-Standard definiert, zusammen mit same-site, das Schemas und Schemalose Same-Site enthält.

Die Website ist nicht im URL-Standard oder in der JavaScript URL API definiert.

In diesem Zusammenhang gilt:

  • Bei einer HTTP- oder HTTPS-URL mit einer einteiligen eTLD wie https://example.com besteht die Website aus der scheme, der eTLD und dem Label davor. Beispiel: Für die URL https://www.example.com/cat lautet die Website https://example.com. Bei dieser URL ist die eTLD mit der Top-Level-Domain identisch.
  • Bei mehrteiligen eTLD wie co.uk, github.io oder sa.edu.au besteht die „Website“ aus der scheme, der eTLD und dem Label davor. Beispiel: Für die URL https://cat.example.co.uk/tabby ist die Website https://example.co.uk und für https://www.education.sa.gov.au https://education.sa.gov.au.
URL Website (mit Schema und eTLD +1)
https://cat.example.com/tabby („https“, „beispiel.de“)
https://cat.example.co.uk/tabby („https“, „beispiel.de“)

Im Gegensatz zu origin enthält die Website keinen port.

Subdomain

Eine Domain innerhalb einer übergeordneten Domain.

Bei Websites mit einteiligen Top-Level-Domains wie com oder org die Teile vor der Top-Level-Domain, die jeweils durch einen Punkt getrennt sind.

  • www.example.com ist eine Subdomain von example.com.
  • support.api.example.org ist eine Subdomain von api.example.org, die eine Subdomain von example.org ist.

Bei zweiteiligen eTLDs, bei denen nur Registrierungen auf dritter Ebene zulässig sind(d.h. Einträge in der Liste der öffentlichen Suffixe wie co.uk und github.io), sind die Subdomains die Teile des Domainnamens davor.

  • Beispiel: cat.example.co.uk ist eine Subdomain von example.co.uk.

Text fragment

Eine Art von Fragment, mit dem auf einen Textbereich auf einer Seite verwiesen und dieser hervorgehoben werden kann. Wenn ein Nutzer einem Link mit einem Textfragment folgt, versucht der Browser, den Text auf der Seite zu finden, dorthin zu scrollen und ihn zu markieren.

Ein Textfragment beginnt mit :~:text=, gefolgt vom Suchbegriff.

Wenn du beispielsweise zum ersten Vorkommen des Textes „Fragment“ auf dieser Seite verlinken möchtest, verwende die URL https://web.dev/articles/url-parts#:~:text=fragment.

Weitere Informationen

Top-Level-Domain (TLD)

Ein Domainname, der in der Root-Zonendatenbank aufgeführt ist, z. B. com oder org. Einige Top-Level-Domains sind länderspezifische Top-Level-Domains wie uk und tv.

Bei der Beschreibung der Teile einer HTTP- oder HTTPS-URL ist die TLD der Domainname, der auf den letzten Punkt folgt.

  • Für https://example.org ist org die Top-Level-Domain der URL.
  • Für https://example.org.au ist au die Top-Level-Domain der URL und org eine Second-Level-Domain, obwohl org auch eine Top-Level-Domain ist. org.au ist eine zweiteilige eTLD.

Die öffentliche Suffixliste der eTLD enthält Domains, die aus einem, zwei oder mehr Teilen bestehen, sodass eine TLD auch eine eTLD sein kann. Beispiel:

  • Für https://example.com lautet die eTLD der URL com, die ebenfalls eine TLD ist.

Nutzername

Optional können ein Nutzername und ein Passwort am Anfang der URL angegeben werden. Dies wurde jedoch aus Sicherheitsgründen nicht mehr unterstützt und wird in vielen Fällen ignoriert.

Bei https://user123:password1@example.com lautet der Nutzername beispielsweise user123. Beachte, dass der Benutzername und das Passwort im Nur-Text-Format und nicht verschlüsselt sind. Wenn der Nutzername :- oder @-Symbole enthält, müssen diese als %3A bzw. %40 als URL-codiert werden.


Weitere Informationen