Was ist eine URL?
Dieser Artikel behandelt Uniform Resource Locators (URLs), erklärt, was sie sind und wie sie strukturiert 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 eindeutigen Ressource im Internet. Sie ist einer der wichtigsten Mechanismen, die von Browsers verwendet werden, um veröffentlichte Ressourcen wie HTML-Seiten, CSS-Dokumente, Bilder usw. abzurufen.
Theoretisch verweist jede gültige URL auf eine eindeutige Ressource. In der Praxis gibt es einige Ausnahmen, die häufigste ist, dass eine URL auf eine Ressource verweist, die nicht mehr existiert oder verschoben wurde. Da die Ressource, die durch die URL dargestellt wird, und die URL selbst vom Webserver verwaltet werden, liegt es in der Verantwortung des Eigentümers des Webservers, diese Ressource und ihre 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_web_development/ https://developer.mozilla.org/en-US/search?q=URL
Jede dieser URLs kann in die Adressleiste Ihres Browsers eingegeben werden, um ihm zu sagen, dass er die zugehörige Ressource laden soll, 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 (Einzelheiten werden in den folgenden Abschnitten bereitgestellt):
Hinweis: Sie könnten sich eine URL wie eine normale Postadresse vorstellen: Das scheme 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 path repräsentiert das Gebäude, in das Ihre Post zugestellt werden soll; die parameters repräsentieren zusätzliche Informationen wie die Wohnungsnummer in dem Gebäude; und schließlich ist der anchor die tatsächliche Person, an die Sie Ihre Post adressiert haben.
Hinweis: Es gibt einige zusätzliche Teile und Regeln in Bezug auf URLs, die jedoch für normale Nutzer oder Webentwickler nicht relevant sind. Machen Sie sich keine Sorgen darüber, Sie müssen diese nicht kennen, um vollständig funktionsfähige URLs zu erstellen und zu verwenden.
Scheme
Der erste Teil der URL ist das scheme, welches das Protokoll angibt, das der Browser verwenden muss, um die Ressource anzufordern (ein Protokoll ist eine festgelegte Methode zum Austausch oder Übertragen von Daten über ein Computernetzwerk). Üblicherweise ist das Protokoll für Websites HTTPS oder HTTP (dessen ungesicherte Version). Das Ansprechen von Webseiten erfordert eines dieser beiden, aber Browser können auch andere Schemes verarbeiten, wie mailto:
(um einen E-Mail-Client zu öffnen), daher seien Sie nicht überrascht, wenn Sie andere Protokolle sehen.
Authority
Darauf folgt die authority, die durch das Zeichenmuster ://
vom Scheme getrennt wird. Wenn vorhanden, umfasst die Authority 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, aber eine IP address kann ebenfalls verwendet werden (allerdings ist dies selten, da es viel weniger bequem 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 Zugang zu seinen Ressourcen zu gewähren. Andernfalls ist er obligatorisch.
Hinweis:
Der Trenner zwischen Scheme und Authority ist ://
. Der Doppelpunkt trennt das Scheme vom nächsten Teil der URL, während //
darauf hinweist, dass der nächste Teil der URL die Authority ist.
Ein Beispiel für eine URL, die keine Authority verwendet, ist der E-Mail-Client (mailto:foobar
). Er enthält ein Scheme, verwendet jedoch keine Authority-Komponente. Daher folgt auf den Doppelpunkt nicht zwei Schrägstriche, sondern er fungiert lediglich als Trennzeichen zwischen dem Scheme 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 Webs repräsentierte ein solcher Pfad einen physischen Dateispeicherort auf dem Webserver. Heutzutage ist es meist eine Abstraktion, die von Webservern ohne physische Realität verwaltet 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 Dinge zu tun, bevor er die Ressource zurückgibt. Jeder Webserver hat seine eigenen Regeln bezüglich der Parameter, und der einzige verlässliche Weg 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 stellt eine Art "Lesezeichen" innerhalb der Ressource dar und gibt dem Browser Anweisungen, den Inhalt an der "markierten" Stelle anzuzeigen. In einem HTML-Dokument wird der Browser zum Beispiel zu dem Punkt scrollen, an dem der Anker definiert ist; in einem Video- oder Audiodokument wird der Browser versuchen, zu der Zeit zu gehen, die der Anker darstellt. Es ist erwähnenswert, dass der Teil nach dem #, auch bekannt als Fragment-Identifier, niemals zum Server mit der Anfrage gesendet wird.
Anleitung zur Verwendung von URLs
Jede URL kann direkt in die Adressleiste des Browsers eingegeben werden, um die dahinterliegende Ressource zu erreichen. Aber das ist nur die Spitze des Eisbergs!
Die HTML Sprache (siehe Strukturierung von Inhalten mit HTML) nutzt URLs ausgiebig:
- um Links zu anderen Dokumenten mit dem
<a>
Element zu erstellen; - um ein Dokument mit seinen verwandten 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 anzuzeigen.
Hinweis:
Beim Angeben von URLs zum Laden von Ressourcen als Teil einer Seite (zum Beispiel 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 Data URLs). Die Verwendung von FTP zum Beispiel ist nicht sicher und wird von modernen Browsern nicht mehr unterstützt.
Andere Technologien, wie CSS oder JavaScript, verwenden URLs in großem Umfang, und diese sind wirklich das Herzstück des Webs.
Absolute URLs vs. relative URLs
Was wir oben gesehen haben, nennt man eine absolute URL, aber es gibt auch etwas, das man relative URL nennt. Der URL-Standard definiert beide – obwohl er die Begriffe absolute URL string und relative URL string verwendet, um sie von URL objects zu unterscheiden (die in-memory 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 großem 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 angeben (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 innerhalb eines Dokuments verwendet wird, wie in einer HTML-Seite, sehen die Dinge ein wenig anders aus. Da der Browser die eigene URL des Dokuments bereits hat, kann er diese Informationen verwenden, um die fehlenden Teile einer URL innerhalb dieses Dokuments auszufüllen. 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 aus dem obersten Verzeichnis des Servers abrufen, ohne Bezug auf den Kontext des aktuellen Dokuments.
Schauen wir uns einige Beispiele an, um dies klarer zu machen. Nehmen wir an, dass die URLs innerhalb des Dokuments definiert sind, das sich unter der folgenden URL befindet: https://developer.mozilla.org/de/docs/Learn_web_development
.
https://developer.mozilla.org/de/docs/Learn_web_development
selbst ist eine absolute URL. Sie enthält alle notwendigen Teile, um die Ressource zu lokalisieren, auf die sie verweist.
Alle folgenden URLs sind relative URLs:
- Scheme-relative URL:
//developer.mozilla.org/de/docs/Learn_web_development
— nur das Protokoll fehlt. Der Browser wird dasselbe Protokoll verwenden, das auch zum Laden des Dokuments verwendet wurde, das diese URL enthält. - Domain-relative URL:
/de/docs/Learn_web_development
— sowohl das Protokoll als auch der Domain-Name fehlen. Der Browser wird dasselbe Protokoll und denselben Domain-Namen verwenden, die auch zum Laden des Dokuments verwendet wurden, das diese URL enthält. - Unterressourcen:
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 möchten wir wirklich diese URL erreichen:https://developer.mozilla.org/de/docs/Learn_web_development/Howto/Web_mechanics/What_is_a_URL
. - Im Verzeichnisbaum zurückgehen:
../CSS/display
— das Protokoll und der Domainname fehlen, und der Pfad beginnt mit..
. Dies stammt aus der UNIX-Dateisystemwelt – um dem Browser zu sagen, dass wir um eine Ebene nach oben gehen wollen. Wir möchten 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 wird die aktuelle URL des 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 ihres sehr technischen Charakters stellen URLs einen leicht 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 Webs, daher ist es als Best Practice angesehen, sogenannte semantische URLs zu erstellen. Semantische URLs verwenden Wörter mit inherenter Bedeutung, die von jedem verstanden werden können, unabhängig von ihrem technischen Wissen.
Linguistische Semantik ist natürlich für Computer 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 Nutzer in Bezug auf den Standort, was sie tun, was sie lesen oder im 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, ermöglichen es Inhaltsanbietern, kleine Dateien in Dokumente einzubetten.