Zuletzt aktualisiert am 04.12.2025 7 Minuten Lesezeit

HTTP

HTTP steht fuer Hypertext Transfer Protocol und ist das wichtigste Kommunikationsprotokoll des World Wide Web. Es regelt, wie Webbrowser und Webserver miteinander kommunizieren, um Webseiten, Bilder, Videos und andere Inhalte auszutauschen.

Du verwendest HTTP taeglich, ohne es bewusst wahrzunehmen: Jedes Mal, wenn du eine Webseite aufrufst, sendet dein Browser eine HTTP-Anfrage an einen Server, der mit einer HTTP-Antwort reagiert. Das Protokoll arbeitet im OSI-Modell auf der Anwendungsschicht (Layer 7) und nutzt fuer den Transport typischerweise TCP als zugrunde liegendes Protokoll.

Geschichte und Entwicklung von HTTP

Die Geschichte von HTTP ist eng mit der Entstehung des World Wide Web verbunden. Tim Berners-Lee entwickelte HTTP 1989 am CERN in Genf als Teil seines Konzepts fuer ein weltweites Informationssystem. Zusammen mit HTML und URLs bildete HTTP die technische Grundlage des Web.

Die wichtigsten Versionen

HTTP hat seit seiner Einfuehrung mehrere grosse Versionssprünge durchlaufen, die jeweils bedeutende Verbesserungen mit sich brachten:

  • HTTP/0.9 (1991): Die erste Version, extrem einfach gehalten. Nur GET-Anfragen, keine Header, nur HTML-Dokumente
  • HTTP/1.0 (1996): Einfuehrung von Headern, Statuscodes und weiteren Methoden (POST, HEAD). Jede Anfrage erforderte eine neue TCP-Verbindung
  • HTTP/1.1 (1997): Persistente Verbindungen (Keep-Alive), Chunked Transfer, Host-Header fuer virtuelle Server. Definiert in RFC 2616
  • HTTP/2 (2015): Binäres Protokoll, Multiplexing, Header-Kompression, Server Push. Basiert auf SPDY von Google
  • HTTP/3 (2022): Verwendet QUIC statt TCP, bessere Performance bei Paketverlust, standardisiert in RFC 9114

Funktionsweise von HTTP

HTTP basiert auf dem Request-Response-Modell: Ein Client (typischerweise ein Webbrowser) sendet eine Anfrage (Request) an einen Server, der darauf mit einer Antwort (Response) reagiert. Dieses einfache Prinzip ermoeglicht die zustandslose Kommunikation, bei der jede Anfrage unabhaengig von vorherigen behandelt wird.

Aufbau einer HTTP-Anfrage

Eine HTTP-Anfrage besteht aus mehreren Komponenten: der Anfragemethode, der URL, HTTP-Headern und optional einem Body fuer Daten:

GET /lexikon/http HTTP/1.1
Host: ausbildung-in-der-it.de
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html,application/xhtml+xml
Accept-Language: de-DE,de;q=0.9,en;q=0.8
Connection: keep-alive

Die erste Zeile enthaelt die Methode (GET), den Pfad (/lexikon/http) und die Protokollversion (HTTP/1.1). Die folgenden Zeilen sind Header, die zusaetzliche Informationen wie den Hostnamen und den Browser-Typ uebermitteln.

Aufbau einer HTTP-Antwort

Die Serverantwort enthaelt einen Statuscode, Header und typischerweise den angeforderten Inhalt im Body:

HTTP/1.1 200 OK
Date: Wed, 04 Dec 2024 12:00:00 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 15432
Server: nginx/1.24.0

<!DOCTYPE html>
<html>
  <head><title>HTTP - Lexikon</title></head>
  <body>...</body>
</html>

HTTP-Methoden

HTTP definiert verschiedene Methoden (auch Verben genannt), die angeben, welche Aktion auf einer Ressource ausgefuehrt werden soll. Die Wahl der richtigen Methode ist besonders bei der Entwicklung von REST-APIs wichtig.

Die wichtigsten HTTP-Methoden

In der taeglichen Webentwicklung wirst du hauptsaechlich mit diesen Methoden arbeiten:

Methode Beschreibung Idempotent Body erlaubt
GET Ruft eine Ressource ab Ja Nein
POST Erstellt eine neue Ressource Nein Ja
PUT Ersetzt eine Ressource vollstaendig Ja Ja
PATCH Aktualisiert Teile einer Ressource Nein Ja
DELETE Loescht eine Ressource Ja Optional
HEAD Wie GET, aber nur Header Ja Nein
OPTIONS Fragt unterstuetzte Methoden ab Ja Optional

Idempotent bedeutet, dass mehrfaches Ausfuehren der gleichen Anfrage das gleiche Ergebnis liefert. GET, PUT und DELETE sind idempotent, POST hingegen nicht: Jeder POST kann eine neue Ressource erstellen.

HTTP-Statuscodes

Statuscodes sind dreistellige Zahlen, die den Ausgang einer HTTP-Anfrage anzeigen. Sie sind in fuenf Klassen unterteilt, wobei die erste Ziffer die Kategorie bestimmt.

Statuscode-Kategorien

Die fuenf Kategorien decken alle moeglichen Antwortszenarien ab:

  • 1xx (Informational): Anfrage erhalten, Verarbeitung laeuft (z.B. 100 Continue)
  • 2xx (Success): Anfrage erfolgreich verarbeitet (z.B. 200 OK, 201 Created)
  • 3xx (Redirection): Weitere Aktion erforderlich (z.B. 301 Moved Permanently, 304 Not Modified)
  • 4xx (Client Error): Fehler auf Client-Seite (z.B. 400 Bad Request, 404 Not Found, 403 Forbidden)
  • 5xx (Server Error): Fehler auf Server-Seite (z.B. 500 Internal Server Error, 503 Service Unavailable)

Haeufig verwendete Statuscodes

Diese Statuscodes wirst du in der Praxis am haeufigsten antreffen:

Code Name Bedeutung
200 OK Anfrage erfolgreich
201 Created Ressource erfolgreich erstellt
204 No Content Erfolgreich, aber keine Daten im Body
301 Moved Permanently Ressource dauerhaft verschoben
304 Not Modified Gecachte Version ist aktuell
400 Bad Request Fehlerhafte Anfrage
401 Unauthorized Authentifizierung erforderlich
403 Forbidden Zugriff verweigert
404 Not Found Ressource nicht gefunden
500 Internal Server Error Serverfehler
503 Service Unavailable Server vorübergehend nicht verfuegbar

HTTP-Header

HTTP-Header transportieren Metadaten ueber die Anfrage oder Antwort. Sie bestehen aus Name-Wert-Paaren und steuern wichtige Aspekte wie Caching, Authentifizierung und Content-Verhandlung.

Wichtige Request-Header

Diese Header sendet der Client an den Server:

  • Host: Ziel-Hostname (erforderlich in HTTP/1.1)
  • User-Agent: Informationen ueber Client/Browser
  • Accept: Gewuenschte Inhaltstypen (z.B. text/html, application/json)
  • Authorization: Authentifizierungsdaten
  • Cookie: Gespeicherte Cookies
  • Content-Type: MIME-Typ des Request-Body

Wichtige Response-Header

Diese Header sendet der Server zurueck an den Client:

  • Content-Type: MIME-Typ der Antwort
  • Content-Length: Groesse des Body in Bytes
  • Cache-Control: Anweisungen fuer Caching
  • Set-Cookie: Setzt Cookies im Browser
  • Location: Weiterleitungs-URL (bei 3xx-Status)
  • Server: Informationen ueber den Server

HTTPS und Sicherheit

HTTPS (HTTP Secure) ist die verschluesselte Variante von HTTP. Sie kombiniert HTTP mit TLS (Transport Layer Security), um die Kommunikation zwischen Browser und Server zu schuetzen. HTTPS gewaehrleistet drei wichtige Sicherheitseigenschaften:

  • Vertraulichkeit: Die uebertragenen Daten sind verschluesselt und koennen nicht mitgelesen werden
  • Integritaet: Manipulationen an den Daten werden erkannt
  • Authentizitaet: Der Server beweist seine Identitaet durch ein Zertifikat

Seit 2018 markieren alle grossen Browser HTTP-Seiten als "nicht sicher". HTTPS ist heute der Standard fuer alle Webseiten, nicht nur fuer Shops oder Banking-Anwendungen. Suchmaschinen wie Google bevorzugen HTTPS-Seiten im Ranking.

HTTP/2 und HTTP/3

Die neueren HTTP-Versionen bringen erhebliche Performanceverbesserungen gegenueber HTTP/1.1. Waehrend HTTP/1.1 immer noch weit verbreitet ist, setzen moderne Webseiten zunehmend auf HTTP/2 und HTTP/3.

Neuerungen in HTTP/2

HTTP/2 wurde 2015 veroeffentlicht und adressiert viele Schwaechen von HTTP/1.1. Es basiert auf dem SPDY-Protokoll von Google und bringt folgende Verbesserungen:

  • Binaeres Protokoll: Effizienter als das textbasierte HTTP/1.1
  • Multiplexing: Mehrere Anfragen ueber eine einzige Verbindung gleichzeitig
  • Header-Kompression: HPACK reduziert den Overhead durch Header
  • Server Push: Server kann Ressourcen proaktiv senden
  • Stream-Priorisierung: Wichtige Ressourcen werden bevorzugt geladen

Neuerungen in HTTP/3

HTTP/3 nutzt QUIC (Quick UDP Internet Connections) statt TCP als Transportprotokoll. QUIC wurde urspruenglich von Google entwickelt und bietet besonders bei instabilen Verbindungen Vorteile:

  • Schnellerer Verbindungsaufbau: 0-RTT bei bekannten Servern moeglich
  • Bessere Performance bei Paketverlust: Kein Head-of-Line-Blocking
  • Integrierte Verschluesselung: TLS 1.3 ist fester Bestandteil
  • Connection Migration: Verbindung bleibt bei IP-Wechsel erhalten (z.B. WLAN zu Mobilfunk)

HTTP in der Praxis

HTTP ist die Grundlage fuer nahezu alle Webanwendungen. Ob du eine Webseite aufrufst, eine mobile App nutzt oder eine API abfragst, fast immer kommunizierst du ueber HTTP.

HTTP-Anfragen testen

Fuer die Entwicklung und das Debugging von HTTP-Kommunikation gibt es verschiedene hilfreiche Werkzeuge:

# Mit curl eine GET-Anfrage senden
curl -v https://example.com/api/users

# POST-Anfrage mit JSON-Daten
curl -X POST https://example.com/api/users \
  -H "Content-Type: application/json" \
  -d '{"name": "Max Mustermann", "email": "max@example.de"}'

# Nur Header abrufen
curl -I https://example.com

Die Browser-Entwicklertools (F12) zeigen alle HTTP-Anfragen und -Antworten im Network-Tab. Tools wie Postman oder Wireshark ermoeglichen detaillierte Analysen des HTTP-Verkehrs.

Typische Einsatzgebiete

HTTP wird in verschiedenen Bereichen eingesetzt:

  • Webseiten: Browser laden HTML, CSS, JavaScript und Medien ueber HTTP
  • REST-APIs: Die meisten Web-APIs kommunizieren ueber HTTP/HTTPS
  • Microservices: Services in verteilten Systemen nutzen oft HTTP fuer die interne Kommunikation
  • Webhooks: Server-zu-Server-Benachrichtigungen ueber HTTP-Callbacks
  • File Downloads: Grosse Dateien werden haeufig ueber HTTP verteilt

HTTP in der IT-Ausbildung

Das Verstaendnis von HTTP gehoert zu den Grundkenntnissen jedes IT-Fachmanns. Ob du Webseiten entwickelst, Server administrierst oder Netzwerke analysierst, du wirst immer wieder mit HTTP in Beruehrung kommen.

Als Fachinformatiker fuer Anwendungsentwicklung arbeitest du taeglich mit HTTP. Du entwickelst Web-Anwendungen und APIs, implementierst Formulare mit POST-Requests und optimierst die Performance durch korrektes Caching. Das Verstaendnis von Statuscodes hilft dir beim Debugging.

Als Fachinformatiker fuer Systemintegration konfigurierst du Webserver wie Apache oder nginx, richtest Reverse Proxies ein und analysierst HTTP-Verkehr bei Problemen. Kenntnisse ueber HTTPS sind wichtig fuer die Absicherung von Webdiensten mit TLS-Zertifikaten.

Quellen und weiterfuehrende Links