Definition
HTTP/0.9: Zweck
Kurzfokus
“HyperText Transfer Protocol zum Verbreiten von Wissen über das Internet; textuelles Protokoll für Hypertext mit Links.”
Geburtsstunde des World Wide Web laut Folien.
Definition
HTTP/0.9: Ursprung
Wer/wo?
“Entwickelt von Tim Berners-Lee am CERN; zusammen mit HTML und URL.”
Name vom ersten Browser abgeleitet.
Architektur/Zuordnung
HTTP/1.0: Request/Response Felder
Aufbau
“Request: Version
Adresse
Methode
Definition
HTTP Version: Notation
Schreibweise
“HTTP/<Major>.<Minor>; höhere Major-Version kann brechende Änderungen bedeuten; höhere Minor-Version ohne brechende Änderungen."</Minor></Major>
Entspricht semantischer Versionierung.
Definition
URI: Begriff
Was ist das?
“Uniform Resource Identifier: Zeichenkette zur einheitlichen Identifikation einer Ressource; nur ASCII
keine Leer- oder Kontrollzeichen.”
URL = Zugriffsschema; URN = eindeutiger Name.
Architektur/Zuordnung
HTTP-Adresse: Bestandteile
Zerlege die URL
“Schema
Host-Adresse
optional Port
Definition
HTTP/1.0 Methoden
Welche?
“GET (Ressource abrufen)
HEAD (nur Header)
POST (Ressource übertragen)
Definition
HTTP/1.1 Methoden (Ergänzung)
Welche?
“PUT (aktualisieren)
DELETE (löschen); OPTIONS
CONNECT
Definition
HTTP-Header: Zweck
Wofür?
“Zusatzinfos von Client/Server; Beispiele: Content-Encoding
Content-Length
Content-Type
Anwendung/Beispiele
HTTP-Statuscodes: Erfolg
Beispiele
“200 OK
201 Created
202 Accepted
Anwendung/Beispiele
HTTP-Statuscodes: Umleitung
Beispiele
“301 Moved Permanently
302 Moved Temporarily
304 Not Modified.”
Anwendung/Beispiele
HTTP-Statuscodes: Clientfehler
Beispiele
“400 Bad Request
401 Unauthorized
403 Forbidden
Anwendung/Beispiele
HTTP-Statuscodes: Serverfehler
Beispiele
“500 Internal Server Error
501 Not Implemented
502 Bad Gateway
Prozess/Handshake
HTTP Roundtrip: Beispiel
Schritte
“Gegeben: GET auf /wiki/Verteiltes_System.\n- Client: „GET … HTTP/1.1“ + Host\n- Server: „HTTP/1.1 200 OK“ + Header\n- Inhalt: HTML kann weitere Ressourcen anfordern (z. B. CSS)\nEndergebnis: Mehrere nachgelagerte Requests möglich.”
Prozess/Handshake
HTTP Ablauf mit Redirect
TLS-Redirect
“Gegeben: Aufruf http://…\n- Server: 301 auf https://…\n- Client: GET auf HTTPS-Ziel\n- Server: 200 OK + Content\nEndergebnis: Umstieg auf HTTPS vor Inhaltsabruf.”
Verständnis
HTTP/1.1: Verbindungsmanagement
Keep-Alive
“Problem: HTTP/1.0 schließt TCP nach jedem Request. Lösung: Verbindung offen lassen per Client-Header „keepalive“. Requests bleiben sequentiell.”
Browser öffnen oft bis zu 6 Verbindungen parallel.
Definition
HTTP/1.1: Zustandslosigkeit
Eigenschaft
“HTTP/1.1 ist zustandslos; TCP-Verbindung wird nach dem Laden geschlossen.”
Webanwendungen benötigen dennoch Zustand.
Definition
Cookies: Mechanik
Wie?
“Server sendet „Set-Cookie“
Browser speichert; Client sendet Cookie bei jedem Request mit; wegen Overhead meist nur ein Identifier.”
Definition
HTTPS: Ziel & Port
Sicherung
“Transportsicherheit via TLS; alle Nachrichten zwischen Client und Server verschlüsselt; Standardport 443 (statt 80).”
HTTP Strict Transport Security per Header „Strict-Transport-Security“.
Verständnis
HTTP/1.1: Grenzen
Warum neu?
“Ausufernde Header; pro TCP-Verbindung nur eine Ressource gleichzeitig; jede Server-Antwort benötigt vorherigen Client-Request.”
Kompatibilität bleibt wichtig.
Definition
HTTP/2.0: Kernideen
Welche?
“Multiplexing
Header-Komprimierung
Server Streaming.”
Definition
Headerkomprimierung (HTTP/2.0)
Wie?
“Header binär kodiert und mit HPACK (u. a. Huffman) komprimiert; pro Verbindung gecacht
erneute Übertragung entfällt.”
Definition
Multiplexing (HTTP/2.0)
Zuordnung
“Frames tragen eine Stream ID; mehrere Requests/Responses parallel über eine TCP-Verbindung; Client ordnet per Stream ID zu.”
Definition
Server Streaming (HTTP/2.0)
Prinzip
“Server kann Ressourcen proaktiv zusagen (Promise) und senden; Client kann ablehnen (z. B. Cache).”
Typisch eher für statische Inhalte.