Was ist eine URL?
Dieser Artikel behandelt Uniform Resource Locators (URLs) und erklärt, was sie sind und wie sie aufgebaut sind.
Voraussetzungen: | Sie sollten zunächst wissen, wie das Internet funktioniert, was ein Webserver ist und die Konzepte hinter Links im Web. |
---|---|
Ziel: | Sie werden lernen, was eine URL ist und wie sie im Web funktioniert. |
Zusammenfassung
Eine URL (Uniform Resource Locator) ist die Adresse einer einzigartigen Ressource im Internet. Sie ist einer der Hauptmechanismen, den Browser verwenden, um veröffentlichte Ressourcen wie HTML-Seiten, CSS-Dokumente, Bilder usw. abzurufen.
Theoretisch zeigt jede gültige URL auf eine einzigartige Ressource. In der Praxis gibt es einige Ausnahmen, wobei die häufigste eine URL ist, die auf eine Ressource zeigt, die nicht mehr existiert oder verschoben wurde. Da die Ressource, die durch die URL repräsentiert wird, und die URL selbst vom Webserver verwaltet werden, liegt es in der Verantwortung des Besitzers des Webservers, diese Ressource und ihre zugeordnete URL sorgfältig zu verwalten.
Grundlagen: Aufbau einer URL
Hier sind einige Beispiele für URLs:
https://developer.mozilla.org https://developer.mozilla.org/en-US/docs/Learn_web_development/ https://developer.mozilla.org/en-US/search?q=URL
Jede dieser URLs kann in die Adressleiste Ihres Browsers eingegeben werden, um den zugehörigen Inhalt zu laden, der in allen drei Fällen eine Webseite ist.
Eine URL besteht aus verschiedenen Teilen, von denen einige zwingend erforderlich, andere optional sind. Die wichtigsten Teile sind in der URL unten hervorgehoben (Details werden in den folgenden Abschnitten angegeben):
Hinweis: Sie können sich eine URL wie eine normale Postadresse vorstellen: das Schema repräsentiert den Postdienst, den Sie verwenden möchten, der Domain-Name ist die Stadt oder der Ort, und der Port ist wie die Postleitzahl; der Pfad repräsentiert das Gebäude, in das Ihre Post geliefert werden soll; die Parameter stellen zusätzliche Informationen wie die Wohnungsnummer im Gebäude dar; und schließlich repräsentiert der Anker die eigentliche Person, an die Sie Ihre Post adressiert haben.
Hinweis: Es gibt einige zusätzliche Teile und Regeln bezüglich URLs, aber diese sind für normale Benutzer oder Webentwickler nicht relevant. Machen Sie sich keine Sorgen, Sie müssen sie nicht kennen, um voll funktionsfähige URLs zu erstellen und zu verwenden.
Schema
Der erste Teil der URL ist das Schema, das angibt, welches Protokoll der Browser verwenden muss, um die Ressource anzufordern (ein Protokoll ist eine festgelegte Methode für den Austausch oder die Übertragung von Daten über ein Computernetzwerk). Üblicherweise ist das Protokoll für Webseiten HTTPS oder HTTP (seine ungesicherte Version). Beim Aufrufen von Webseiten wird eines dieser beiden Protokolle benötigt, aber Browser können auch andere Schemen, wie mailto:
(zum Öffnen eines Mail-Clients), verarbeiten, also wundern Sie sich nicht, wenn Sie andere Protokolle sehen.
Autorität
Als nächstes folgt die Autorität, die durch das Zeichenmuster ://
vom Schema getrennt wird. Wenn vorhanden, umfasst die Autorität sowohl die Domain (z.B. www.example.com
) als auch den Port (80
), getrennt durch einen Doppelpunkt:
- Die Domain gibt an, welcher Webserver angefordert wird. Üblicherweise ist dies ein Domain-Name, es kann aber auch eine IP-Adresse verwendet werden (was allerdings selten vorkommt, da es viel weniger bequem ist).
- Der Port gibt das technische "Tor" an, das für den Zugriff auf die Ressourcen des Webservers verwendet wird. Er wird normalerweise weggelassen, wenn der Webserver die Standardports des HTTP-Protokolls (80 für HTTP und 443 für HTTPS) zum Gewähren des Zugriffs auf seine Ressourcen verwendet. Andernfalls ist er zwingend erforderlich.
Hinweis:
Der Trenner zwischen Schema und Autorität ist ://
. Der Doppelpunkt trennt das Schema vom nächsten Teil der URL, während //
anzeigt, dass der nächste Teil der URL die Autorität ist.
Ein Beispiel für eine URL, die keine Autorität verwendet, ist der Mail-Client (mailto:foobar
). Er enthält ein Schema, verwendet aber keine Autoritätskomponente. Daher folgt dem Doppelpunkt nicht zwei Schrägstriche und er fungiert nur als Trennzeichen zwischen Schema und Mailadresse.
Pfad zur Ressource
/path/to/myfile.html
ist der Pfad zur Ressource auf dem Webserver. In den frühen Tagen des Web stellte ein solcher Pfad einen physischen Dateispeicherort auf dem Webserver dar. Heutzutage ist es meist eine Abstraktion, die von Webservern ohne physische Realität gehandhabt wird.
Parameter
?key1=value1&key2=value2
sind zusätzliche Parameter, die dem Webserver bereitgestellt werden. Diese Parameter sind eine Liste von Schlüssel-Wert-Paaren, die durch das &
-Symbol getrennt sind. Der Webserver kann diese Parameter verwenden, um zusätzliche Aufgaben zu erledigen, bevor er die Ressource zurückgibt. Jeder Webserver hat seine eigenen Regeln bezüglich Parameter, und der einzige zuverlässige Weg, um zu wissen, ob ein bestimmter Webserver Parameter verarbeitet, besteht darin, den Besitzer des Webservers zu fragen.
Anker
#SomewhereInTheDocument
ist ein Anker zu einem anderen Teil der Ressource selbst. Ein Anker repräsentiert eine Art "Lesezeichen" innerhalb der Ressource und gibt dem Browser die Anweisungen, um den Inhalt an der Stelle anzuzeigen, die das "Lesezeichen" markiert. In einem HTML-Dokument beispielsweise scrollt der Browser zu der Stelle, an der der Anker definiert ist; in einem Video- oder Audiodokument versucht der Browser, zu der Zeit zu gehen, die der Anker repräsentiert. Es ist wichtig zu beachten, dass der Teil nach dem #, auch als Fragmentbezeichner bekannt, niemals mit der Anfrage an den Server gesendet wird.
Wie man URLs verwendet
Jede URL kann direkt in die Adressleiste des Browsers eingegeben werden, um zur dahinterliegenden Ressource zu gelangen. Aber das ist nur die Spitze des Eisbergs!
Die HTML-Sprache (siehe Inhalte strukturieren mit HTML) macht umfangreichen Gebrauch von URLs:
- um Links zu anderen Dokumenten mit dem
<a>
-Element zu erstellen; - um ein Dokument mit seinen zugehörigen Ressourcen über verschiedene Elemente wie
<link>
oder<script>
zu verknüpfen; - um Medien wie Bilder (mit dem
<img>
-Element), Videos (mit dem<video>
-Element), Geräusche und Musik (mit dem<audio>
-Element) usw. anzuzeigen; - um andere HTML-Dokumente mit dem
<iframe>
-Element anzuzeigen.
Hinweis:
Beim Spezifizieren von URLs zum Laden von Ressourcen als Teil einer Seite (wie beim Verwenden von <script>
, <audio>
, <img>
, <video>
und Ähnlichem) sollten Sie im Allgemeinen nur HTTP- und HTTPS-URLs verwenden, mit wenigen Ausnahmen (eine bemerkenswerte ist data:
; siehe Data URLs). Die Verwendung von FTP ist zum Beispiel nicht sicher und wird von modernen Browsern nicht mehr unterstützt.
Andere Technologien, wie CSS oder JavaScript, verwenden URLs umfangreich, und sie sind wirklich das Herz des Webs.
Absolute URLs vs. relative URLs
Was wir oben gesehen haben, wird als absolute URL bezeichnet, aber es gibt auch etwas, das relative URL genannt wird. Der URL-Standard definiert beide — obwohl er die Begriffe absolute URL string und relative URL string verwendet, um sie von URL-Objekten zu unterscheiden (die speicherinterne Darstellungen von URLs sind).
Lassen Sie uns untersuchen, was der Unterschied zwischen absolut und relativ im Kontext von URLs bedeutet.
Die erforderlichen Teile einer URL hängen stark vom Kontext ab, in dem die URL verwendet wird. In der Adressleiste Ihres Browsers hat eine URL keinen Kontext, also müssen Sie eine vollständige (oder absolute) URL angeben, wie die, die wir oben gesehen haben. Sie müssen das Protokoll nicht einschließen (der Browser verwendet standardmäßig HTTP) oder den Port (der nur erforderlich ist, wenn der angezielte Webserver einen ungewöhnlichen Port verwendet), aber alle anderen Teile der URL sind notwendig.
Wenn eine URL in einem Dokument verwendet wird, wie beispielsweise auf einer HTML-Seite, sieht die Sache etwas anders aus. Da der Browser bereits die eigene URL des Dokuments hat, kann er diese Informationen nutzen, um die fehlenden Teile jeder URL innerhalb dieses Dokuments zu ergänzen. Wir können zwischen einer absoluten URL und einer relativen URL unterscheiden, indem wir nur den Pfad der URL betrachten. Wenn der Pfad der URL mit dem Zeichen /
beginnt, ruft der Browser diese Ressource vom obersten Stamm des Servers ab, ohne Bezug auf den vom aktuellen Dokument gegebenen Kontext.
Lassen Sie uns einige Beispiele betrachten, um dies zu verdeutlichen. Nehmen wir an, die URLs werden innerhalb des Dokuments an der folgenden URL definiert: https://developer.mozilla.org/de/docs/Learn_web_development
.
https://developer.mozilla.org/de/docs/Learn_web_development
selbst ist eine absolute URL. Sie hat alle notwendigen Teile, die benötigt werden, um die Ressource zu lokalisieren, auf die sie zeigt.
Alle folgenden URLs sind relative URLs:
- Schema-relative URL:
//developer.mozilla.org/de/docs/Learn_web_development
— nur das Protokoll fehlt. Der Browser verwendet dasselbe Protokoll wie das, welches verwendet wurde, um das Dokument zu laden, das diese URL hostet. - Domain-relative URL:
/de/docs/Learn_web_development
— Protokoll und Domain-Name fehlen beide. Der Browser verwendet dasselbe Protokoll und denselben Domain-Namen wie das, welches verwendet wurde, um das Dokument zu laden, das diese URL hostet. - Teilressourcen:
Howto/Web_mechanics/What_is_a_URL
— das Protokoll und der Domain-Name fehlen, und der Pfad beginnt nicht mit/
. Der Browser versucht, das Dokument in einem Unterverzeichnis des Verzeichnisses zu finden, das die aktuelle Ressource enthält. In diesem Fall wollen wir wirklich diese URL erreichen:https://developer.mozilla.org/de/docs/Learn_web_development/Howto/Web_mechanics/What_is_a_URL
. - Zurückgehender Pfad im Verzeichnisbaum:
../CSS/display
— das Protokoll und der Domain-Name fehlen, und der Pfad beginnt mit..
. Dies ist aus der UNIX-Dateisystemwelt übernommen worden — um dem Browser mitzuteilen, dass wir eine Ebene nach oben gehen möchten. Hier möchten wir diese URL erreichen:https://developer.mozilla.org/de/docs/Learn_web_development/../Web/CSS/display
, die vereinfacht werden kann zu:https://developer.mozilla.org/de/docs/Web/CSS/display
. - Nur Anker:
#semantic_urls
- alle Teile fehlen außer dem Anker. Der Browser verwendet die URL des aktuellen Dokuments und ersetzt oder ergänzt den Ankerteil daran. Dies ist nützlich, wenn Sie auf einen bestimmten Teil des aktuellen Dokuments verlinken möchten.
URL-Benutzernamen und Passwörter
Weniger häufig als die oben besprochenen URL-Teile können Sie möglicherweise einen Benutzernamen und ein Passwort in URLs sehen.
Zum Beispiel:
https://username:password@www.example.com:80/
Wenn enthalten, werden Benutzername und Passwort zwischen den ://
-Zeichen und der Autorität platziert, mit einem Doppelpunkt zwischen den beiden und einem @
-Zeichen am Ende.
Ein Benutzername und ein Passwort können in die URL aufgenommen werden, wenn auf Websites zugegriffen wird, die den HTTP-Authentifizierungsmechanismus verwenden, um sich sofort bei einer Website anzumelden und das Dialogfeld für Benutzername/Passwort zu umgehen, das andernfalls erscheinen würde, um Ihre Zugangsdaten einzugeben.
Obwohl Sie diesen Mechanismus möglicherweise noch in freier Wildbahn sehen, ist er wegen Sicherheitsbedenken veraltet, und moderne Websites neigen dazu, andere Mechanismen zur Authentifizierung zu verwenden. Siehe Zugang über Anmeldedaten in der URL für weitere Details.
Semantische URLs
Trotz ihres sehr technischen Charakters stellen URLs einen für Menschen lesbaren Einstiegspunkt für eine Website dar. Sie können auswendig gelernt werden, und jeder kann sie in die Adressleiste eines Browsers eingeben. Menschen stehen im Mittelpunkt des Web, und es wird daher als Best Practice angesehen, sogenannte semantische URLs zu erstellen. Semantische URLs verwenden Wörter mit inhärenter Bedeutung, die von jedem verstanden werden können, unabhängig von seinem technischen Wissen.
Linguistische Semantik ist natürlich für Computer irrelevant. Sie haben wahrscheinlich oft URLs gesehen, die wie ein Durcheinander von zufälligen Zeichen erscheinen. Aber es gibt viele Vorteile, menschenlesbare URLs zu erstellen:
- Es ist einfacher für Sie, sie zu manipulieren.
- Es klärt die Dinge für Benutzer in Bezug darauf, wo sie sich befinden, was sie tun, was sie lesen oder mit dem Web interagieren.
- Einige Suchmaschinen können diese Semantik verwenden, um die Klassifizierung der zugehörigen Seiten zu verbessern.
Siehe auch
Data URLs: URLs, die mit dem data:
-Schema beginnen und es Inhaltserstellern ermöglichen, kleine Dateien direkt in Dokumente einzubetten.