Webserver Grundlagen
Lektion 3 von 6
URLs, Methoden, Header und Statuscodes
Lies URLs und ordne HTTP-Methoden, Header sowie wichtige Statuscodes ein.
Lernziele
Nach Abschluss dieser Lektion kannst du:
- eine URL in wichtige Bestandteile zerlegen
- Schema, Host, Port, Pfad, Query und Fragment unterscheiden
- gängige HTTP-Methoden erklären
- wichtige Request- und Response-Header interpretieren
- HTTP-Statuscodes klassifizieren
- Weiterleitungen und häufige Client-/Serverfehler erkennen
- Statuscodes als HTTP-Ergebnis statt sichere Grundursache verstehen
- gängige Statuscodes bei der Fehlersuche verwenden
Eine URL zerlegen
https://www.firma.test:8443/azubi/lesson?id=42#aufgabe- Schema
https- Host
www.firma.test- Port
8443- Pfad
/azubi/lesson- Query
id=42- Fragment
aufgabe
Der Browser verarbeitet das Fragment #aufgabe clientseitig; es wird normalerweise nicht als Teil des HTTP-Request-Targets an den Server gesendet.
Ohne expliziten Port ergibt das Schema typischerweise den Standard: HTTP nutzt 80, HTTPS 443. :8080 und :8443 sind häufig verwendete Alternativen, aber keine vorgeschriebenen Ersatzports; insbesondere bedeutet 8080 nicht automatisch HTTPS.
Gängige HTTP-Methoden
- GET
- Repräsentation abrufen
- POST
- Daten übermitteln oder Verarbeitung anstoßen
- PUT
- typischerweise Repräsentation am Ziel ersetzen/erstellen
- PATCH
- semantisch für teilweise Änderung vorgesehen
- DELETE
- Entfernung einer Ressource anfordern
- HEAD
- GET-ähnliche Metadaten ohne Response-Body
- OPTIONS
- Kommunikationsoptionen/Fähigkeiten erfragen
Das sind HTTP-Semantik und typische REST-Konventionen, keine Garantie für jede Anwendung. POST bedeutet beispielsweise nicht zwingend „Datenbankeintrag erstellen“.
Wichtige Header
Request-Header
Host- angefragter Host
Accept- akzeptierte Medientypen
User-Agent- Client-Information
Authorization- Anmeldedaten oder Token, falls verwendet
Content-Type- Format des Request-Bodys
Response-Header
Content-Type- Medientyp des Bodys
Content-Length- Bodygröße, wenn vorhanden
Location- Ziel, häufig bei Redirects
Cache-Control- Caching-Anweisungen
Set-Cookie- Client soll Cookie-Information speichern
Ein Authorization-Header ist nicht automatisch verschlüsselt. Transportvertraulichkeit gehört zu HTTPS/TLS und folgt in Lektion 4; echte Zugangsdaten gehören nie in Lehrbeispiele.
Statuscodes einordnen
1xx
Information
Zwischeninformationen
2xx
Erfolg
z. B. 200, 201, 204
3xx
Weiterleitung
z. B. 301, 302, 304
4xx
Request-/Client-Kontext
z. B. 400, 401, 403, 404
5xx
Server-/Upstream-Kontext
z. B. 500, 502, 503, 504
200 OK
Ressource erfolgreich verarbeitet
201 Created
Ressource erstellt
204 No Content
Erfolg ohne Response-Body
301 Moved Permanently
dauerhafte Weiterleitung
302 Found
temporäre/Fund-Weiterleitung
304 Not Modified
Cache-Repräsentation weiter nutzbar
400 Bad Request
ungeeignete/fehlerhafte Anfrage
401 Unauthorized
Authentifizierung fehlt oder ist ungültig
403 Forbidden
verstanden, aber Zugriff verweigert
404 Not Found
angefragte Ressource nicht gefunden
405 Method Not Allowed
Methode für das Ziel nicht erlaubt
500 Internal Server Error
serverseitige Verarbeitung fehlgeschlagen
502 Bad Gateway
ungeeignete Upstream-Antwort am Gateway
503 Service Unavailable
Dienst aktuell nicht verfügbar
504 Gateway Timeout
keine rechtzeitige Upstream-Antwort
Wichtige Unterschiede
401 ist nicht 403: Trotz historischer Reason Phrase bedeutet 401 konzeptionell, dass erforderliche Authentifizierung fehlt oder ungültig ist. Bei 403 hat der Server die Anfrage verstanden, verweigert aber Autorisierung beziehungsweise Zugriff.
404 ist eine HTTP-Antwort: Für Anfänger heißt sie „Ressource nicht gefunden“ (oder der Server legt sie in manchen Fällen nicht offen). Damit hat ein HTTP-Server geantwortet – anders als bei fehlgeschlagenem DNS, Timeout oder abgelehnter TCP-Verbindung.
502, 503 und 504: 502 beschreibt eine ungeeignete Upstream-Antwort am Gateway/Proxy, 503 einen aktuell nicht verfügbaren Dienst und 504 eine nicht rechtzeitige Upstream-Antwort. Sie grenzen HTTP-Kategorien ein, beweisen aber keine exakte physische Grundursache.
Weiterleitungen
Ein 3xx-Status kann den Client mit Location: https://www.firma.test/new zu einem anderen Ziel führen. 301 steht konzeptionell für eine permanente, 302 für eine temporäre beziehungsweise „Found“-Weiterleitung. Details zu Methoden und Caching bleiben späteren Vertiefungen vorbehalten.
Übung
Statuscodes in der Fehlersuche
Symptome praktisch unterscheiden
- DNS-Fehler
- Servername nicht auflösbar
- Connection refused
- Ziel erreichbar denkbar, aber kein Listener akzeptiert die Verbindung
- Timeout
- keine rechtzeitige Verbindung/Antwort
- 404
- HTTP-Antwort, Ressource nicht gefunden
- 500
- HTTP-Antwort mit serverseitigem Fehler
- 502 / 504
- häufig Intermediär-/Upstream-Kontext
Jedes Symptom ist ein Diagnosehinweis, kein Beweis für eine einzige physische Ursache.
Typische Fehlvorstellungen
- Falsch: „404 bedeutet, dass DNS kaputt ist.“
- Korrektur: 404 beweist, dass eine HTTP-Antwort eingetroffen ist.
- Falsch: „500 bedeutet, dass der ganze Server ausgeschaltet ist.“
- Korrektur: 500 ist eine serverseitige HTTP-Fehlerantwort.
- Falsch: „401 und 403 sind dasselbe.“
- Korrektur: 401 betrifft erforderliche Authentifizierung; 403 verweigerten Zugriff.
- Falsch: „Port 8080 bedeutet automatisch HTTPS.“
- Korrektur: Alternative Ports bestimmen nicht allein das Schema.
- Falsch: „Der URL-Fragmentteil #… wird normal an den Webserver gesendet.“
- Korrektur: Das Fragment verarbeitet üblicherweise der Client.
- Falsch: „POST bedeutet immer Datenbankeintrag erstellen.“
- Korrektur: Die konkrete Anwendungssemantik entscheidet.
- Falsch: „Jede erfolgreiche HTTP-Antwort ist 200.“
- Korrektur: Auch andere 2xx-Statuscodes wie 201 und 204 melden Erfolg.
Praxisbeobachtung
Suche in Browser-Entwicklungswerkzeugen Request-URL, Methode, Status und Response-Header. Optional fordert curl -I http://server.firma.test/ abhängig vom Serververhalten Metadaten über HEAD an; curl -i ... zeigt Header plus Body. curl muss nicht installiert werden.
Nächste Lektion
HTTPS und TLS-Grundlagen
Als Nächstes geht es darum, warum HTTP allein keine Transportverschlüsselung bietet, was TLS schützt, wie Zertifikate, Hostnamenprüfung und Vertrauenskette konzeptionell zusammenspielen und wie sich HTTP und HTTPS unterscheiden.
Dein Lernstand
Lektion in Bearbeitung
Das Öffnen startet die Lektion. Als erledigt zählt sie erst nach deiner ausdrücklichen Bestätigung.