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.
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-Werttabby
.
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
oderorg
(eine eTLD, die einer TLD entspricht) die Domain und die Second-Level-Domain davor, z.B.example.com
oderexample.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
undgithub.io
), ist die zweiteilige Top-Level-Domain („öffentliches Suffix“) und der Third-Level-Domainname kurz davor. Beispiel:example.org.au
oderexample.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.
Suche
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
undmood=bonkers
.
Second-Level-Domain
Die Domain vor einer Top-Level-Domain.
Für die URL
https://www.example.com
ist die Second-Level-Domainexample.com
, eine Subdomain der Top-Level-Domaincom
.Für
https://example.org.au
ist die Top-Level-Domainau
, die Second-Level-Domainorg
und die Third-Level-Domainexample
. In diesem Beispiel istorg.au
eine Subdomain vonau
undexample.org.au
eine Subdomain vonorg.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 derscheme
, der eTLD und dem Label davor. Beispiel: Für die URLhttps://www.example.com/cat
lautet die Websitehttps://example.com
. Bei dieser URL ist die eTLD mit der Top-Level-Domain identisch. - Bei mehrteiligen eTLD wie
co.uk
,github.io
odersa.edu.au
besteht die „Website“ aus derscheme
, der eTLD und dem Label davor. Beispiel: Für die URLhttps://cat.example.co.uk/tabby
ist die Websitehttps://example.co.uk
und fürhttps://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 vonexample.com
.support.api.example.org
ist eine Subdomain vonapi.example.org
, die eine Subdomain vonexample.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 vonexample.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
.
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
istorg
die Top-Level-Domain der URL. - Für
https://example.org.au
istau
die Top-Level-Domain der URL undorg
eine Second-Level-Domain, obwohlorg
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 URLcom
, 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
- WASWG: URL Living Standard
- WASWG: HTML Living Standard
- URL API
- „same-site“ und „same-origin“ verstehen
- RFC: Uniform Resource Locators (URL)
- RFC: URIs, URLs und URNs
- Root-Zonendatenbank (Verzeichnis mit TLDs)
- Public Suffix List (Liste der öffentlichen Suffixe) (Verzeichnis mit eTLDs: „Ein öffentliches Suffix besteht aus einer Reihe von DNS-Namen oder Platzhaltern, die mit Punkten verkettet sind. Es steht für den Teil eines Domainnamens, der nicht vom jeweiligen Domaininhaber kontrolliert wird.)
- ICANN-Glossar
- Was ist ein voll qualifizierter Domainname?
- Wie viele Möglichkeiten gibt es, eine URL zu segmentieren und die einzelnen Teile zu benennen?
- Glossar für MDN Web Docs
- Was ist eine URL?
- Verlauf der URL