Webserver Grundlagen
Lektion 2 von 6
HTTP-Anfrage und HTTP-Antwort
Lerne Aufbau und Zusammenspiel von HTTP-Requests und HTTP-Responses kennen.
Lernziele
Nach Abschluss dieser Lektion kannst du:
- eine HTTP-Anfrage erklären
- eine HTTP-Antwort erklären
- Konzepte der Request-Zeile identifizieren
- Konzepte der Response-Statuszeile identifizieren
- Header und Body unterscheiden
- erklären, warum nicht jede Anfrage oder Antwort einen Body hat
- eine einfache GET-Transaktion beschreiben
- HTTP als grundsätzlich zustandslos verstehen
- HTTP-Ergebnis und darunterliegende Konnektivität unterscheiden
Die HTTP-Anfrage
Ein Request teilt dem Server mit, welche Verarbeitung der Client für welches Ziel wünscht. Dieses vereinfachte HTTP/1.1-Beispiel zeigt eine typische GET-Anfrage:
GET /index.html HTTP/1.1
Host: web01.firma.test
User-Agent: Beispielclient
Accept: text/html- GET
- Methode
- /index.html
- Request-Target / Pfad
- HTTP/1.1
- Protokollversion
- Host und weitere Zeilen
- Header
Ein Request kann einen Body tragen. POST, PUT oder PATCH übertragen je nach Anwendung häufig Daten. GET wird beim typischen Browsen normalerweise ohne Request-Body verwendet; eine universelle Aussage „GET kann niemals einen Body haben“ wäre unnötig absolut.
Die HTTP-Antwort
Der Server antwortet mit Status, Metadaten und – falls passend – Inhalt:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: ...
<html>...</html>Dies ist ebenfalls ein vereinfachtes HTTP/1.1-Beispiel: Version, Statuscode und bei HTTP/1.x eine Reason Phrase stehen vor den Headern; der optionale Body folgt nach einer Leerzeile. HTTP/2 und HTTP/3 verwenden auf der Leitung nicht exakt diese textuelle Darstellung.
← 200 OK + Inhalt
Request
- Methode
- Ziel
- Header
- optionaler Body
Response
- Status
- Header
- optionaler Body
Host, Content-Type und Content-Length
Mehrere Namen wie www.firma.test und portal.firma.test können beide auf 192.168.10.20 zeigen. Der Host-Header lässt einen HTTP/1.1-Webserver oder Reverse Proxy erkennen, welcher Host angefragt wurde.
Content-Type beschreibt den Medientyp eines Bodys, etwa text/html, application/json oder image/png. Er ist HTTP-Metadatum und nicht bloß eine Dateiendung. Content-Length kann die Bodygröße in Bytes nennen, ist aber nicht in jeder Antwort vorhanden; andere Übertragungsrahmungen existieren.
Eine Seite, viele Requests
Eine sichtbare Webseite kann separate Requests für HTML, CSS, JavaScript, Bilder, Fonts und API-Aufrufe auslösen. Eine Webseite ist daher nicht automatisch genau eine HTTP-Anfrage.
HTTP merkt sich nicht automatisch Benutzer
HTTP ist auf Protokollebene grundsätzlich zustandslos: Jeder Request soll unabhängig verständlich sein. Anwendungen können Zustand mit Cookies, serverseitigen Sessions oder Tokens ergänzen; HTTP selbst erinnert sich nicht inhärent zwischen Requests an einen Benutzer.
Übung
HTTP-Bestandteile zuordnen
Eine vollständige Transaktion lesen
Request
GET / HTTP/1.1
Host: web01.firma.test
Response
HTTP/1.1 200 OK
Content-Type: text/html
<html>...</html>- Der Client sendet den Request; der Server sendet die Response.
- Methode: GET; angefragter Host: web01.firma.test.
- Statuscode: 200; Content-Type: text/html.
Typische Fehlvorstellungen
- Falsch: „Eine Webseite wird mit genau einer HTTP-Anfrage geladen.“
- Korrektur: Weitere Ressourcen führen häufig zu weiteren Requests.
- Falsch: „HTTP-Header sind Teil des HTML-Codes.“
- Korrektur: Header sind HTTP-Metadaten; HTML kann im Body stehen.
- Falsch: „200 OK bedeutet, dass DNS und Netzwerk generell überall funktionieren.“
- Korrektur: 200 bestätigt die erfolgreiche HTTP-Verarbeitung dieser Transaktion, nicht jede Infrastrukturkomponente global.
- Falsch: „Content-Type ist einfach die Dateiendung.“
- Korrektur: Content-Type ist vom Absender kommuniziertes HTTP-Metadatum.
- Falsch: „HTTP merkt sich automatisch Benutzer zwischen Requests.“
- Korrektur: Anwendungsmechanismen wie Cookies, Sessions oder Tokens ergänzen Zustand.
- Falsch: „Jede HTTP-Antwort enthält HTML.“
- Korrektur: Ein Body kann JSON, ein Bild, eine Datei oder andere Daten enthalten – oder fehlen.
Praxis mit Entwicklungswerkzeugen
Öffne konzeptionell den Netzwerkbereich der Browser-Entwicklungswerkzeuge und suche Request-URL, Methode, Status und Content-Type. Optional zeigt curl -i http://server.firma.test/ bei üblichem curl-Gebrauch Response-Header zusammen mit dem Body. Eine Installation ist nicht erforderlich.
Dein Lernstand
Lektion in Bearbeitung
Das Öffnen startet die Lektion. Als erledigt zählt sie erst nach deiner ausdrücklichen Bestätigung.