Was ist eine URL?
Dieser Artikel befasst sich mit Uniform Resource Locators (URLs), erklärt, was sie sind und wie sie strukturiert sind.
Voraussetzungen: | Sie müssen zuerst wissen, wie das Internet funktioniert, was ein Webserver ist und das Konzept 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, die von Browsern verwendet werden, um veröffentlichte Ressourcen abzurufen, wie HTML-Seiten, CSS-Dokumente, Bilder und so weiter.
Theoretisch verweist jede gültige URL auf eine einzigartige Ressource. Praktisch gibt es einige Ausnahmen, die häufigste ist eine URL, die auf eine Ressource verweist, die nicht mehr existiert oder umgezogen ist. Da die durch die URL repräsentierte Ressource und die URL selbst vom Webserver verwaltet werden, liegt es in der Verantwortung des Besitzers des Webservers, diese Ressource und die zugehörige 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/ https://developer.mozilla.org/en-US/search?q=URL
Jede dieser URLs kann in die Adressleiste Ihres Browsers eingegeben werden, um ihn anzuweisen, die zugehörige Ressource zu laden, die in allen drei Fällen eine Webseite ist.
Eine URL besteht aus verschiedenen Teilen, einige obligatorisch, andere optional. Die wichtigsten Teile sind in der unten stehenden URL hervorgehoben (Details werden in den folgenden Abschnitten bereitgestellt):
Hinweis: Sie könnten sich eine URL wie eine reguläre 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, zu dem Ihre Post geliefert werden soll; die Parameter stellen zusätzliche Informationen wie die Nummer der Wohnung 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, die für normale Benutzer oder Webentwickler jedoch nicht von Bedeutung sind. Machen Sie sich darüber keine Sorgen, Sie müssen diese nicht kennen, um vollständig funktionale URLs zu erstellen und zu verwenden.
Schema
Der erste Teil der URL ist das Schema, das das Protokoll angibt, das der Browser verwenden muss, um die Ressource anzufordern (ein Protokoll ist eine festgelegte Methode zum Austausch oder zur Übertragung von Daten in einem Computernetzwerk). Normalerweise ist das Protokoll für Websites HTTPS oder HTTP (die ungesicherte Version davon). Das Adressieren von Webseiten erfordert eines dieser beiden, aber Browser können auch andere Schemata wie mailto:
(um einen E-Mail-Client zu öffnen) behandeln, daher sollten Sie sich nicht wundern, wenn Sie andere Protokolle sehen.
Authority
Es folgt die Authority, die durch das Zeichenmuster ://
vom Schema getrennt ist. Wenn vorhanden, enthält die Authority sowohl die Domain (z.B. www.example.com
) als auch den Port (80
), getrennt durch ein Doppelpunkt:
- Die Domain gibt an, welcher Webserver angefordert wird. Normalerweise ist dies ein Domain-Name, aber auch eine IP-Adresse kann verwendet werden (was jedoch selten der Fall ist, da es viel weniger praktisch ist).
- Der Port gibt das technische „Tor“ an, das verwendet wird, um auf die Ressourcen des Webservers zuzugreifen. Er wird normalerweise weggelassen, wenn der Webserver die Standardports des HTTP-Protokolls (80 für HTTP und 443 für HTTPS) verwendet, um den Zugriff auf seine Ressourcen zu gewähren. Andernfalls ist er obligatorisch.
Hinweis:
Der Trenner zwischen Schema und Authority ist ://
. Der Doppelpunkt trennt das Schema vom nächsten Teil der URL, während //
anzeigt, dass der nächste Teil der URL die Authority ist.
Ein Beispiel für eine URL, die keine Authority verwendet, ist der Mailclient (mailto:foobar
). Sie enthält ein Schema, verwendet jedoch keine Authority-Komponente. Daher folgen dem Doppelpunkt keine zwei Schrägstriche und er fungiert nur als Trennzeichen zwischen dem Schema und der E-Mail-Adresse.
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 größtenteils 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 mit dem &
-Symbol getrennt sind. Der Webserver kann diese Parameter verwenden, um zusätzliche Aufgaben zu erledigen, bevor die Ressource zurückgegeben wird. Jeder Webserver hat seine eigenen Regeln bezüglich der Parameter, und der einzige verlässliche Weg, um zu wissen, ob ein bestimmter Webserver mit Parametern arbeitet, 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, den Inhalt anzuzeigen, der sich an dieser "markierten" Stelle befindet. In einem HTML-Dokument scrollt der Browser beispielsweise zu dem Punkt, an dem der Anker definiert ist; in einem Video- oder Audiodokument versucht der Browser zu der Zeit zu gehen, die der Anker repräsentiert. Es ist bemerkenswert, dass der Teil nach dem #, auch bekannt als Fragmentkennung, niemals mit der Anfrage an den Server gesendet wird.
Anleitung zur Verwendung von URLs
Jede URL kann direkt in die Adressleiste des Browsers eingetippt werden, um zur dahinterliegenden Ressource zu gelangen. Aber das ist nur die Spitze des Eisbergs!
Die HTML-Sprache — die später besprochen wird — macht extensiven Gebrauch von URLs:
- um Links zu anderen Dokumenten mit dem
<a>
-Element zu erstellen; - um ein Dokument mit seinen verbundenen Ressourcen durch verschiedene Elemente wie
<link>
oder<script>
zu verknüpfen; - um Medien wie Bilder (mit dem
<img>
-Element), Videos (mit dem<video>
-Element), Sounds und Musik (mit dem<audio>
-Element) anzuzeigen; - um andere HTML-Dokumente mit dem
<iframe>
-Element darzustellen.
Hinweis:
Wenn Sie URLs angeben, um Ressourcen als Teil einer Seite zu laden (z.B. bei Verwendung von <script>
, <audio>
, <img>
, <video>
usw.), 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 beispielsweise nicht sicher und wird von modernen Browsern nicht mehr unterstützt.
Andere Technologien wie CSS oder JavaScript nutzen URLs umfangreich, und diese 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 in Speicherrepräsentationen von URLs sind).
Lassen Sie uns untersuchen, was die Unterscheidung zwischen absolut und relativ im Kontext von URLs bedeutet.
Die erforderlichen Teile einer URL hängen in hohem Maße vom Kontext ab, in dem die URL verwendet wird. In der Adressleiste Ihres Browsers hat eine URL keinen Kontext, daher 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 Zielwebserver einen ungewöhnlichen Port verwendet), aber alle anderen Teile der URL sind notwendig.
Wenn eine URL innerhalb eines Dokuments verwendet wird, wie in einer HTML-Seite, ist es etwas anders. Da der Browser bereits die URL des Dokuments hat, kann er diese Informationen verwenden, um die fehlenden Teile jeder URL innerhalb dieses Dokuments zu ergänzen. Wir können zwischen einer absoluten URL und einer relativen URL nur durch den Blick auf den Pfad der URL unterscheiden. Wenn der Pfad der URL mit dem /
-Zeichen beginnt, wird der Browser diese Ressource vom obersten Root des Servers abrufen, ohne auf den Kontext des aktuellen Dokuments Bezug zu nehmen.
Sehen wir uns einige Beispiele an, um dies zu verdeutlichen. Nehmen wir an, dass die URLs innerhalb des Dokuments definiert sind, das sich unter folgender URL befindet: https://developer.mozilla.org/de/docs/Learn
.
https://developer.mozilla.org/de/docs/Learn
selbst ist eine absolute URL. Sie enthält 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
— nur das Protokoll fehlt. Der Browser verwendet dasselbe Protokoll wie das, das verwendet wurde, um das Dokument zu laden, das diese URL hostet. - Domain-relative URL:
/de/docs/Learn
— das Protokoll und der Domainname fehlen beide. Der Browser verwendet dasselbe Protokoll und denselben Domainnamen wie das, das verwendet wurde, um das Dokument zu laden, das diese URL hostet. - Unterressourcen:
Common_questions/Web_mechanics/What_is_a_URL
— das Protokoll und der Domainname fehlen, und der Pfad beginnt nicht mit/
. Der Browser wird versuchen, das Dokument in einem Unterverzeichnis des Verzeichnisses zu finden, das die aktuelle Ressource enthält. In diesem Fall möchten wir wirklich diese URL erreichen:https://developer.mozilla.org/de/docs/Learn/Common_questions/Web_mechanics/What_is_a_URL
. - Zurück im Verzeichnisbaum:
../CSS/display
— das Protokoll und der Domainname fehlen, und der Pfad beginnt mit..
. Dies ist aus der UNIX-Dateisystemwelt geerbt — um dem Browser mitzuteilen, dass wir um eine Ebene nach oben gehen wollen. Hier wollen wir diese URL erreichen:https://developer.mozilla.org/de/docs/Learn/../CSS/display
, die auf folgende Weise vereinfacht werden kann:https://developer.mozilla.org/de/docs/CSS/display
. - Nur Anker:
#semantic_urls
- alle Teile fehlen außer dem Anker. Der Browser wird die URL des aktuellen Dokuments verwenden und den Ankerteil ersetzen oder hinzufügen. Dies ist nützlich, wenn Sie auf einen bestimmten Teil des aktuellen Dokuments verlinken möchten.
Semantische URLs
Trotz ihrer sehr technischen Ausprägung stellen URLs einen menschenlesbaren Einstiegspunkt für eine Website dar. Sie können sich diese merken, und jeder kann sie in die Adressleiste eines Browsers eingeben. Menschen stehen im Mittelpunkt des Webs, und daher wird es 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 deren technischem Wissen.
Linguistische Semantik ist für Computer natürlich irrelevant. Sie haben wahrscheinlich oft URLs gesehen, die wie eine Mischung aus zufälligen Zeichen aussehen. Aber es gibt viele Vorteile, menschlich lesbare 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 mit dem Präfix data:
erlauben es Inhaltsautoren, kleine Dateien in Dokumente einzubetten.