URL: Aufbau, relative Pfade und Sicherheit
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.
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:
| Bestandteil | Im Beispiel | Aufgabe |
|---|---|---|
| Schema | https | legt fest, nach welchen Regeln die Adresse verwendet wird |
| Host | lernportal.example | bezeichnet den angesprochenen Servernamen |
| Port | 443 | bezeichnet optional einen bestimmten Netzwerkdienst am Host |
| Pfad | /kurse/web/index.html | bezeichnet die Ressource innerhalb dieses Namensraums |
| Query | ansicht=kurz | übergibt nach ? zusätzliche Angaben |
| Fragment | aufgabe | bezeichnet nach # eine Stelle oder Ansicht innerhalb der Ressource |
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.
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.
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.
| Referenz | Ergebnis nach dem Auflösen | Denkweg |
|---|---|---|
/bilder/logo.svg | Host schule.example, Pfad /bilder/logo.svg | Der führende Slash beginnt am Wurzelpfad des Hosts. |
aufgabe.html | Host schule.example, Pfad /kurse/web/aufgabe.html | Ohne führenden Slash wird vom Verzeichnis des Basisdokuments aus ergänzt. |
../material.pdf | Host schule.example, Pfad /kurse/material.pdf | .. geht im Pfad eine Ebene nach oben. |
?modus=druck | Host schule.example, Pfad /kurse/web/index.html, Query ?modus=druck | Der Pfad bleibt, die Query wird gesetzt. |
#loesung | Host schule.example, Pfad /kurse/web/index.html, Fragment #loesung | Die 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.
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.
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.
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.
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.
: folgt auf das Schema, ? eröffnet die Query, # das Fragment und ein führender / den Wurzelpfad des Hosts.: 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:
- Suche das Schema vor
://. - Suche den Authority-Teil bis zum nächsten
/,?oder#. - Falls darin ein
@steht, liegt der Host rechts davon. - Vergleiche den vollständigen Host sorgfältig mit dem erwarteten Namen.
- Behandle Pfad, Query und Fragment nicht als Beweis für den Betreiber.
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.
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.
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.
Vergleiche:
- Schema
https, Hostlernen.example, Pfad/kurs, Query?seite=1, Fragment#test - Schema
https, Hostlernen.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.
Karteikasten
Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.
Alles auf einen Blick
- 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
Mit Google fortfahren