Was ist eine URL?

Dieser Artikel behandelt Uniform Resource Locators (URLs) und 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 die Konzepte hinter Links im Web.
Ziel: Sie erfahren, 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 abzurufen, wie HTML-Seiten, CSS-Dokumente, Bilder und so weiter.

Theoretisch verweist jede gültige URL auf eine einzigartige Ressource. In der Praxis gibt es einige Ausnahmen, die häufigste ist eine URL, die auf eine Ressource verweist, die nicht mehr existiert oder verschoben wurde. Da die Ressource, die von der URL repräsentiert wird, und die URL selbst vom Webserver verwaltet werden, liegt es in der Verantwortung des Webserver-Besitzers, diese Ressource und ihre zugehörige URL sorgfältig zu verwalten.

Grundlagen: Aufbau einer URL

Hier sind einige Beispiele von 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 ihn dazu zu bringen, die zugeordnete Ressource zu laden, die in allen drei Fällen eine Webseite ist.

Eine URL besteht aus verschiedenen Teilen, von denen einige obligatorisch und andere optional sind. Die wichtigsten Teile sind in der untenstehenden URL hervorgehoben (Details werden in den folgenden Abschnitten bereitgestellt):

vollständige URL

Hinweis: Sie können sich eine URL wie eine reguläre Postanschrift 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 repräsentieren zusätzliche Informationen wie die Nummer der Wohnung im Gebäude; und schließlich repräsentiert der Anker die tatsächliche Person, an die Sie die Post adressiert haben.

Hinweis: Es gibt einige zusätzliche Teile und Regeln zu URLs, aber sie sind nicht relevant für normale Benutzer oder Webentwickler. Machen Sie sich darüber keine Sorgen, Sie müssen sie nicht kennen, um voll funktionsfähige URLs zu erstellen und zu nutzen.

Schema

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 über ein Computernetzwerk). Für Websites ist das Protokoll normalerweise HTTPS oder HTTP (seine ungesicherte Version). Beim Adressieren von Webseiten ist eines dieser beiden erforderlich, aber Browser wissen auch, wie man andere Schemata wie mailto: (um einen E-Mail-Client zu öffnen) behandelt, seien Sie also nicht überrascht, wenn Sie andere Protokolle sehen.

Autorität

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 angefragt wird. Normalerweise ist dies ein Domain-Name, aber auch eine IP-Adresse kann verwendet werden (was jedoch selten ist, da es weniger bequem ist).
  • Der Port gibt das technische "Tor" an, über das auf die Ressourcen auf dem Webserver zugegriffen wird. Es wird normalerweise weggelassen, wenn der Webserver die Standard-Ports des HTTP-Protokolls (80 für HTTP und 443 für HTTPS) verwendet, um Zugriff auf seine Ressourcen zu gewähren. Andernfalls ist es obligatorisch.

Hinweis: Der Separator 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 E-Mail-Client (mailto:foobar). Es enthält ein Schema, verwendet jedoch keine Autoritätskomponente. Daher wird der Doppelpunkt nicht von zwei Schrägstrichen gefolgt und dient nur als Trennzeichen zwischen Schema und E-Mail-Adresse.

Pfad zur Ressource

Pfad zur Datei

/path/to/myfile.html ist der Pfad zur Ressource auf dem Webserver. In den frühen Tagen des Webs 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

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 Dinge zu tun, bevor die Ressource zurückgegeben wird. Jeder Webserver hat seine eigenen Regeln bezüglich der Parameter, und der einzige zuverlässige Weg, um zu wissen, ob ein bestimmter Webserver mit Parametern umgeht, besteht darin, den Besitzer des Webservers zu fragen.

Anker

Anker

#SomewhereInTheDocument ist ein Anker zu einem anderen Teil der Ressource selbst. Ein Anker stellt eine Art "Lesezeichen" innerhalb der Ressource dar und gibt dem Browser die Anweisung, den Inhalt an der "markierten" Stelle anzuzeigen. 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 gelangen, die der Anker repräsentiert. Es ist erwähnenswert, dass der Teil nach dem #, auch bekannt als Fragment-Identifier, 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 Ressource dahinter zu gelangen. Aber das ist nur die Spitze des Eisbergs!

Die HTML Sprache (siehe Strukturierung von Inhalten 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), Sounds und Musik (mit dem <audio>-Element), usw. darzustellen;
  • um andere HTML-Dokumente mit dem <iframe>-Element anzuzeigen.

Hinweis: Wenn Sie URLs angeben, um Ressourcen als Teil einer Seite zu laden (wie bei der Verwendung von <script>, <audio>, <img>, <video> und dergleichen), sollten Sie im Allgemeinen nur HTTP- und HTTPS-URLs verwenden, mit wenigen Ausnahmen (eine bemerkenswerte ist data:; siehe Daten-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 ausgiebig, und diese sind wirklich das Herz des Webs.

Absolute URLs vs. relative URLs

Was wir oben gesehen haben, nennt man eine absolute URL, aber es gibt auch etwas, das man eine relative URL nennt. 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 Repräsentationen 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 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 angezielte Webserver einen ungewöhnlichen Port verwendet), aber alle anderen Teile der URL sind notwendig.

Wenn eine URL in einem Dokument verwendet wird, wie auf einer HTML-Seite, ist die Sache ein wenig anders. Da der Browser bereits die eigene URL des Dokuments hat, kann er diese Informationen verwenden, um die fehlenden Teile einer URL auszufüllen, die in diesem Dokument verfügbar sind. Wir können zwischen einer absoluten URL und einer relativen URL unterscheiden, indem wir nur den Pfad Teil der URL betrachten. Wenn der Pfadteil der URL mit dem Zeichen / beginnt, wird der Browser diese Ressource vom obersten Wurzelverzeichnis des Servers abrufen, ohne auf den Kontext des aktuellen Dokuments zu verweisen.

Schauen wir uns einige Beispiele an, um dies klarer zu machen. Nehmen wir an, dass die URLs innerhalb des Dokuments definiert sind, das unter der folgenden URL zu finden ist: 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 erforderlich sind, um die Ressource zu lokalisieren, auf die sie verweist.

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, das verwendet wurde, um das Dokument zu laden, das diese URL hostet.
  • Domänen-relative URL: /de/docs/Learn_web_development — das Protokoll und der Domain-Name fehlen beide. Der Browser wird dasselbe Protokoll und denselben Domain-Namen verwenden wie der, der verwendet wurde, um das Dokument zu laden, das diese URL hostet.
  • Subressourcen: Howto/Web_mechanics/What_is_a_URL — das Protokoll und der Domain-Name fehlen, und der Pfad beginnt nicht mit /. Der Browser wird versuchen, das Dokument in einem Unterverzeichnis desjenigen zu finden, das die aktuelle Ressource enthält. In diesem Fall wollen wir tatsächlich diese URL erreichen: https://developer.mozilla.org/de/docs/Learn_web_development/Howto/Web_mechanics/What_is_a_URL.
  • Zurück im Verzeichnisbaum gehen: ../CSS/display — das Protokoll und der Domain-Name fehlen, und der Pfad beginnt mit ... Dies ist aus der UNIX-Dateisystemwelt abgeleitet — um dem Browser zu sagen, dass wir um eine Ebene nach oben gehen wollen. Hier wollen wir diese URL erreichen: https://developer.mozilla.org/de/docs/Learn_web_development/../Web/CSS/display, was auf folgendes vereinfacht werden kann: https://developer.mozilla.org/de/docs/Web/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 darauf ersetzen oder hinzufügen. Dies ist nützlich, wenn Sie auf einen bestimmten Teil des aktuellen Dokuments verlinken möchten.

Semantische URLs

Trotz ihres sehr technischen Charakters stellen URLs einen menschenlesbaren Einstiegspunkt für eine Website dar. Sie können sich gemerkt werden, und jeder kann sie in die Adressleiste eines Browsers eingeben. Menschen stehen im Mittelpunkt des Webs, daher gilt es als bewährte Praxis, sogenannte semantische URLs zu erstellen. Semantische URLs verwenden Wörter mit inhärenter Bedeutung, die von jedem verstanden werden können, unabhängig von ihrem technischen Wissen.

Linguistische Semantik ist natürlich irrelevant für Computer. Sie haben wahrscheinlich oft URLs gesehen, die wie ein Durcheinander zufälliger Zeichen aussehen. Aber es gibt viele Vorteile bei der Erstellung menschenlesbarer URLs:

  • Es ist einfacher für Sie, sie zu manipulieren.
  • Es klärt die Benutzer darüber auf, wo sie sich befinden, was sie tun, was sie im Web lesen oder mit was sie interagieren.
  • Einige Suchmaschinen können diese Semantik nutzen, um die Klassifizierung der zugehörigen Seiten zu verbessern.

Siehe auch

Daten-URLs: URLs mit dem Präfix data: ermöglichen es Inhaltserstellern, kleine Dateien direkt in Dokumente einzubetten.