Informatik

URL: Aufbau, relative Pfade und Sicherheit

URL: Aufbau, relative Pfade und Sicherheit
URL: Aufbau, relative Pfade und Sicherheit
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Eine URL ist die Adresse einer Ressource in einem Netzwerk. Sie kann zum Beispiel eine Webseite, ein Bild oder eine Datei bezeichnen. Ihre Teile verraten dir, wie und bei welchem Server eine Ressource angesprochen wird und welcher Pfad, welche Abfrage oder welche Stelle gemeint ist.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Vom Beispiel zu den Bestandteilen

Betrachte diese erfundene Adresse. Sie steht als Code da und ist kein anklickbarer Link:

Komponentenfolge: Schema https, Trenner ://, Host lernportal.example, Port :443, Pfad /kurse/web/index.html, Query ?ansicht=kurz, Fragment #aufgabe. Zusammengesetzt stehen diese Teile ohne Leerraum hintereinander.

Die URL lässt sich von links nach rechts zerlegen:

BestandteilIm BeispielAufgabe
Schemahttpslegt fest, nach welchen Regeln die Adresse verwendet wird
Hostlernportal.examplebezeichnet den angesprochenen Servernamen
Port443bezeichnet optional einen bestimmten Netzwerkdienst am Host
Pfad/kurse/web/index.htmlbezeichnet die Ressource innerhalb dieses Namensraums
Queryansicht=kurzübergibt nach ? zusätzliche Angaben
Fragmentaufgabebezeichnet nach # eine Stelle oder Ansicht innerhalb der Ressource
Definition

URL

URL steht für Uniform Resource Locator. Eine URL ist eine Art von URI, die angibt, wo beziehungsweise auf welchem Zugriffsweg eine Ressource zu finden ist. „Webadresse“ ist dafür ein hilfreiches Alltagswort.

Der Teil zwischen // und dem nächsten /, ? oder # heißt Authority. Bei Web-URLs enthält er den Host und manchmal einen Port. Veraltete URLs können dort vor dem Zeichen @ zusätzlich Benutzerinformationen enthalten.

Merke

Die Domain oder der Host ist nur ein Teil der vollständigen URL. Zur URL können außerdem Schema, Port, Pfad, Query und Fragment gehören.

Teste dich
Frage 1 von 2LeichtEine URL besteht aus Schema https, Trenner ://, Host video.example und Pfad /film/intro.mp4. Welcher Teil ist der Host?
Lösung: video.example — Der Host steht nach // und endet hier vor dem nächsten /.
Frage 2 von 2MittelWelche Aussage über #kapitel2 trifft zu?
Lösung: Es bezeichnet ein Fragment innerhalb der Ressource. — Das Zeichen # beginnt den Fragmentteil. Dessen genaue Bedeutung hängt vom Typ der Ressource ab.
Absolute und relative Referenzen auflösen

Eine absolute URL enthält ein Schema wie https und ist ohne weitere Ortsangabe verständlich. Eine relative Referenz ist kürzer. Ihr Ziel ergibt sich erst zusammen mit einer Basis-URL.

Für die nächsten Beispiele gilt diese Basis als Komponentenfolge: Schema https, Trenner ://, Host schule.example, Pfad /kurse/web/index.html.

ReferenzErgebnis nach dem AuflösenDenkweg
/bilder/logo.svgHost schule.example, Pfad /bilder/logo.svgDer führende Slash beginnt am Wurzelpfad des Hosts.
aufgabe.htmlHost schule.example, Pfad /kurse/web/aufgabe.htmlOhne führenden Slash wird vom Verzeichnis des Basisdokuments aus ergänzt.
../material.pdfHost schule.example, Pfad /kurse/material.pdf.. geht im Pfad eine Ebene nach oben.
?modus=druckHost schule.example, Pfad /kurse/web/index.html, Query ?modus=druckDer Pfad bleibt, die Query wird gesetzt.
#loesungHost schule.example, Pfad /kurse/web/index.html, Fragment #loesungDie Basis bleibt, nur das Fragment wird ergänzt.

„Relativ zum Server“ und „relativ zum Dokument“ sind also nicht dasselbe. Der führende Slash macht den entscheidenden Unterschied.

Beispiel

Aufgabe: Löse ../bilder/schema.svg mit dieser Basis auf: Schema https, Trenner ://, Host schule.example, Pfad /kurse/web/index.html.

Lösung: Ausgangspunkt ist das Verzeichnis /kurse/web/. .. führt zu /kurse/. Danach wird bilder/schema.svg angehängt. Das Ergebnis behält Schema https und Host schule.example; sein Pfad lautet /kurse/bilder/schema.svg.

Teste dich
Frage 1 von 2MittelDie Basis hat den Host schule.example und den Pfad /a/b/seite.html. Welchen Zielpfad erzeugt /hilfe.html?
Lösung: /hilfe.html — Ein Pfad mit führendem / beginnt am Wurzelpfad des Hosts.
Frage 2 von 2MittelDieselbe Basis gilt weiter. Wohin führt hilfe.html?
Lösung: /a/b/hilfe.html — Eine pfadrelative Referenz ersetzt den Dateinamen des Basisdokuments und bleibt in dessen Verzeichnis.
Query, Fragment und Codierung richtig deuten

Eine Query beginnt mit ?. Webanwendungen verwenden darin häufig Name-Wert-Paare. Das Zeichen = trennt dann Name und Wert; & trennt mehrere Paare.

Im Beispiel ?fach=info&seite=2 gibt es die Angaben fach=info und seite=2. Was sie bewirken, legt die jeweilige Anwendung fest. Eine Query ist also keine universelle Programmiersprache.

Ein Fragment beginnt mit #. Es bezeichnet einen Teil oder eine Ansicht der Ressource. Bei einer Webseite kann das eine Überschrift sein. Das Fragment gehört zur URL, wird bei HTTP aber nicht als Teil der Anforderung an den Server übertragen; der Browser wertet es für die geladene Darstellung aus.

Reservierte Zeichen wie /, ?, #, & und = haben je nach Bestandteil eine besondere Funktion. Soll ein Zeichen nur Daten darstellen, muss es gegebenenfalls prozentcodiert werden. Dabei steht ein Prozentzeichen mit zwei Hexadezimalziffern für ein codiertes Byte. Ein Leerzeichen erscheint in einem Pfad zum Beispiel häufig als %20.

Gut zu wissen

Eine Codierung verändert nicht automatisch die Bedeutung der Daten und macht sie weder geheim noch sicher. Sie sorgt nur dafür, dass Zeichen in der URL-Syntax eindeutig dargestellt werden können.

Lückentext

Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.

Das Schema steht vor . Eine Query beginnt mit . Ein Fragment beginnt mit . Die Referenz `` beginnt am Wurzelpfad des Hosts.

Lösungen: Lücke 1: dem Doppelpunkt; Lücke 2: ?; Lücke 3: #; Lücke 4: /bild.png. Achte auf die Trennzeichen: : folgt auf das Schema, ? eröffnet die Query, # das Fragment und ein führender / den Wurzelpfad des Hosts.
Eine URL sicherheitsbewusst lesen

Eine URL ist auch eine Behauptung darüber, welches Ziel angesprochen wird. Prüfe vor einer Anmeldung, einem Download oder der Eingabe persönlicher Daten besonders das Schema und den Host.

Gehe in dieser Reihenfolge vor:

  1. Suche das Schema vor ://.
  2. Suche den Authority-Teil bis zum nächsten /, ? oder #.
  3. Falls darin ein @ steht, liegt der Host rechts davon.
  4. Vergleiche den vollständigen Host sorgfältig mit dem erwarteten Namen.
  5. Behandle Pfad, Query und Fragment nicht als Beweis für den Betreiber.
Beispiel

Eine URL hat das Schema https, den Trenner ://, die Authority [email protected] und den Pfad /login. Darin sieht konto.example wichtig aus. Es steht aber vor @ im Bereich der Benutzerinformation. Der tatsächliche Host ist anmeldung.test.

Auch eine URL mit Schema https, Host bank.example.anmeldung.test und Pfad /login hat nicht den erwarteten Host bank.example. Der vollständige Host lautet bank.example.anmeldung.test. Wörter im Pfad oder am Anfang eines längeren Hostnamens können täuschen.

HTTPS bedeutet bei einer erfolgreich geprüften Verbindung: Der Server weist sich für den in der URL genannten Host aus, und die Übertragung zwischen Browser und Server wird gegen Mitlesen und unbemerkte Veränderung geschützt.

HTTPS beweist jedoch nicht, dass der Betreiber ehrlich ist, dass der Inhalt richtig ist oder dass ein Download harmlos ist. Auch eine betrügerische Seite kann für ihren eigenen Host eine gültige HTTPS-Verbindung anbieten.

Merke

HTTPS schützt die Verbindung zum angezeigten Host. Ob dieser Host wirklich das von dir erwartete und vertrauenswürdige Ziel ist, musst du zusätzlich prüfen.

Vertrauliche Angaben gehören nicht in eine Query. URLs können beispielsweise im Browserverlauf, in Protokolldateien oder beim Teilen sichtbar werden. Zugangsdaten direkt vor @ in einer URL sind ebenfalls unsicher und leicht missverständlich.

Kurz-URLs verbergen den eigentlichen Host und Pfad. Öffne sie nur, wenn du Absender und Zusammenhang einschätzen kannst oder das Ziel vor dem Öffnen zuverlässig sichtbar machst.

Teste dich
Frage 1 von 3LeichtWas kann eine korrekt aufgebaute HTTPS-Verbindung leisten?
Lösung: Sie schützt die Übertragung zum geprüften Host vor Mitlesen und unbemerkter Veränderung. — HTTPS sichert Transport und Serverzuordnung für den genannten Host. Vertrauen in Betreiber und Inhalt ist eine zusätzliche Prüfung.
Frage 2 von 3MittelEine URL hat das Schema https, die Authority [email protected] und den Pfad /reset. Welcher Host wird angesprochen?
Lösung: konto.test — In einer Authority mit @ steht der Host rechts vom letzten @ und endet vor dem nächsten /, ? oder #.
Frage 3 von 3SchwerEine Seite nutzt HTTPS und verlangt ein Passwort in ?passwort=.... Wie beurteilst du das?
Lösung: Die Übertragung kann verschlüsselt sein, trotzdem gehört das Passwort nicht in die URL. — Transportverschlüsselung verhindert nicht jede spätere Speicherung oder Weitergabe einer URL. Vertrauliche Daten gehören deshalb nicht in Query-Parameter.
URLs vergleichen und Fehler diagnostizieren

Beim Vergleichen zweier URLs hilft eine feste Reihenfolge. Prüfe erst Schema, dann Host und Port, danach Pfad, Query und Fragment.

Beispiel

Vergleiche:

  • Schema https, Host lernen.example, Pfad /kurs, Query ?seite=1, Fragment #test
  • Schema https, Host lernen.example, Pfad /kurs, Query ?seite=2, Fragment #test

Schema, Host, Pfad und Fragment sind gleich. Nur die Query unterscheidet sich: seite=1 gegenüber seite=2. Wahrscheinlich fordert die Anwendung damit eine andere Seite oder Ansicht an; die genaue Wirkung bestimmt aber der Server.

Typische Diagnosen:

  • Falscher Host: Der Browser spricht einen anderen Servernamen an als erwartet.
  • Falscher Pfad: Der richtige Host wird erreicht, aber die Ressource kann dort fehlen.
  • Falsche relative Basis: Dieselbe kurze Referenz führt von verschiedenen Basis-URLs zu verschiedenen Zielen.
  • Verwechseltes Trennzeichen: Ein # beginnt keine Query und ein ? beginnt kein Fragment.
  • Nur anderes Fragment: Bei HTTP muss die Hauptressource dadurch nicht erneut vom Server angefordert werden; der Browser kann nur eine andere Stelle anzeigen.
Teste dich
Frage 1 von 2MittelZwei URLs unterscheiden sich nur im Fragment. Was folgt sicher daraus?
Lösung: Sie bezeichnen unterschiedliche Fragmente derselben primären Ressource. — Das Fragment ergänzt eine Referenz auf einen Teil oder eine Ansicht der primären Ressource.
Frage 2 von 2SchwerEin Bild wird auf Seite A gefunden, auf Seite B aber nicht. In beiden Dokumenten steht die relative Referenz bilder/logo.svg. Was ist eine plausible Ursache?
Lösung: Die Dokumente haben verschiedene Basis-URLs, deshalb entstehen verschiedene absolute Ziele. — Löse die Referenz für jedes Dokument getrennt auf. Schon ein anderes Basisverzeichnis kann zu einem anderen Ziel führen.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • URL
    • Aufbau: Schema, Authority, Pfad, Query, Fragment
    • Bezug: absolut oder relativ zu einer Basis
    • Lesen: Host vor Pfad und Inhalt prüfen
    • Sicherheit: HTTPS schützt die Verbindung, nicht automatisch das Ziel
    • Diagnose: Bestandteile in fester Reihenfolge vergleichen
Abschluss-Check
Teste dich
Frage 1 von 3LeichtWoran erkennst du eine Query?
Lösung: Sie beginnt mit ?. — Das erste ? trennt die Query vom vorangehenden Teil der URL.
Frage 2 von 3MittelDie Basis hat den Host projekt.example und den Pfad /team/site/index.html. Welchen Zielpfad hat ../plan.pdf?
Lösung: /team/plan.pdf — Ersetze zuerst den Dateinamen durch das Basisverzeichnis /team/site/, gehe mit .. zu /team/ und hänge plan.pdf an.
Frage 3 von 3SchwerEine URL hat das Schema https, den Host service.test und den Pfad /anmeldung. Welche Begründung bewertet sie angemessen?
Lösung: HTTPS kann die Verbindung zu service.test schützen; ob dieser Host vertrauenswürdig ist, muss zusätzlich geprüft werden. — Trenne Transportaussage und Vertrauensentscheidung: Erst Host und Verbindung prüfen, dann Betreiber, Kontext und Handlung bewerten.

Passend dazu