HTTP & HTTPS
Das Web-Protokoll
HTTP (HyperText Transfer Protocol) ist das Fundament des World Wide Web. Es definiert, wie Browser Webseiten anfordern und Server sie ausliefern. HTTPS ist HTTP über TLS – verschlüsselt und authentifiziert.
Entstehung und Beteiligte
HTTP wurde ab 1989 von Tim Berners-Lee am CERN für das World Wide Web entwickelt. Die erste dokumentierte Version war extrem klein. Ab 1992 beteiligten sich weitere Forscher; die IETF standardisierte HTTP/1.0 und 1.1. HTTPS kombiniert HTTP mit SSL beziehungsweise TLS.
Welches Problem sollte gelöst werden?
Berners-Lee wollte wissenschaftliche Dokumente über Rechnergrenzen hinweg verknüpfen und abrufen. Ein Client sollte eine Ressource über eine Adresse anfordern können, ohne das interne Dateisystem des Servers zu kennen.
Technische Hürden und Lösungen
Persistente Verbindungen, Caching, Proxys, Zeichensätze und virtuelle Hosts kamen mit dem Wachstum hinzu. HTTP/2 löste Blockierung durch Multiplexing, HTTP/3 wechselte zu QUIC über UDP. Sicherheit erforderte Zertifikate und konsequentes TLS.
Standardisierung und Einordnung
Internetprotokolle werden überwiegend in offenen RFC-Dokumenten beschrieben. Ein RFC kann ein historischer Vorschlag, ein aktueller Standard oder inzwischen überholt sein. Implementierungen müssen nicht nur das Papier befolgen, sondern mit fehlerhaften Gegenstellen, Paketverlust, Zeitüberschreitungen, Sicherheitsangriffen und jahrzehntealten Erweiterungen umgehen. Interoperabilität entsteht dadurch, dass unabhängige Hersteller dieselben Zustandsautomaten, Nachrichtenformate und Fehlerfälle testen.
Technik im praktischen Betrieb
Für den produktiven Einsatz zählt die konkrete Protokollversion. Alte und neue Varianten können denselben Port verwenden, besitzen aber völlig unterschiedliche Sicherheits- und Funktionsmerkmale. Administratoren sollten daher Aushandlung, Zertifikate, Timeouts, maximale Nachrichtengrößen und Fehlercodes sichtbar machen. Proxys, NAT und Firewalls verändern häufig den Datenpfad. Gute Tests erfolgen aus derselben Netzposition wie die betroffene Anwendung und prüfen nicht nur einen offenen Port, sondern einen vollständigen gültigen Vorgang.
Warum das Thema heute noch relevant ist
Die ursprüngliche Entstehungszeit erklärt viele heutige Sicherheitslücken: Frühe Internetgemeinschaften waren klein und Vertrauen wurde vorausgesetzt. Authentifizierung, Verschlüsselung und Missbrauchsschutz kamen oft erst später als Erweiterung hinzu. Moderne Implementierungen müssen deshalb sichere Voreinstellungen verwenden, alte Varianten abschalten und dennoch mit Gegenstellen kommunizieren, die einen älteren Stand besitzen. Versionsnummer, Aushandlung und tatsächlich aktive Option sind aussagekräftiger als der bloße Protokollname.
Daten und Meilensteine
- 1991 läuft die erste öffentliche Website am CERN.
- 1996: HTTP/1.0; 1997/1999: HTTP/1.1.
- 2015: HTTP/2; 2022: HTTP/3.
- HTTPS verwendet heute normalerweise TLS, nicht das veraltete SSL.
Was ist HTTP?
HTTP (HyperText Transfer Protocol) ist ein zustandsloses, textbasiertes Protokoll für den Datenaustausch im Web. Ein Client (Browser) sendet eine HTTP-Anfrage (Request), der Server antwortet mit einer HTTP-Antwort (Response). HTTP arbeitet auf Layer 7 (Anwendungsschicht) und nutzt TCP als Transportprotokoll.
HTTP/1.1 (1997) führte persistente Verbindungen ein. HTTP/2 (2015) brachte Multiplexing (mehrere Anfragen parallel über eine Verbindung) und Header-Kompression. HTTP/3 (2022) nutzt QUIC statt TCP für noch geringere Latenz.
HTTP-Methoden und Statuscodes
HTTP-Methoden definieren die Aktion: GET (Ressource abrufen, idempotent), POST (Daten senden, neue Ressource erstellen), PUT (Ressource ersetzen), PATCH (Teilaktualisierung), DELETE (Ressource löschen), HEAD (nur Headers, kein Body).
Statuscodes in 5 Klassen:
- 1xx – Informational: 100 Continue
- 2xx – Success: 200 OK, 201 Created, 204 No Content
- 3xx – Redirection: 301 Moved Permanently, 302 Found, 304 Not Modified
- 4xx – Client Error: 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests
- 5xx – Server Error: 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable
HTTPS und HTTP-Sicherheit
HTTPS ist HTTP über TLS. Die Verbindung ist verschlüsselt, der Server authentifiziert (Zertifikat) und der Inhalt integer (kein Tamper möglich). Port 443 statt 80. Heute ist HTTPS Pflicht – Browser markieren HTTP-Seiten als "Nicht sicher".
Wichtige Sicherheitsheader: HSTS (erzwingt HTTPS), CSP (verhindert XSS), X-Frame-Options (verhindert Clickjacking), X-Content-Type-Options (MIME-Sniffing verhindern).