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

URL-Bestandteile
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

Statuscode-Klassen im Überblick

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

Ordne jedem Beispiel die passende Bedeutung zu.

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.