Lebenszyklus einer HTTP-Anfrage
1. Der Client sendet eine Anfrage
- HTTP-Anfrage erstellen: Der Client (meist ein Webbrowser) erstellt eine HTTP-Anfrage.
- HTTP-Methode: GET, POST usw.
- Angeforderte Ressource: zum Beispiel
/index.html.
- Protokollversion: etwa HTTP/1.1.
- Header und Body: Enthält Header im Format
key: value und optional einen Message-Body.
2. DNS-Lookup
- Domainnamen auflösen: Ein für Menschen lesbarer Domainname (
www.example.com) wird in eine IP-Adresse (93.184.216.34) umgewandelt.
- DNS-Server-Abfrage: Der Client sendet eine Anfrage an einen DNS-Server, um den Domainnamen in eine IP-Adresse zu übersetzen.
3. TCP-Handshake
- TCP-Verbindung aufbauen: Der Client baut eine TCP-Verbindung zum Server auf.
- 3-Wege-Handshake:
- SYN: Der Client sendet eine Verbindungsanfrage.
- SYN-ACK: Der Server bestätigt die Anfrage.
- ACK: Der Client sendet die Bestätigung zurück.
4. HTTP-Anfrage übertragen
- HTTP-Anfrage senden: Sobald die TCP-Verbindung steht, sendet der Client die eigentliche HTTP-Anfrage.
5. Paket-Routing über das Internet
- Paketübertragung: Datenpakete werden über mehrere Netzwerkgeräte zum Server geroutet.
- Rolle der Router: Router bestimmen den optimalen Pfad für die Pakete.
6. Serverantwort
- HTTP-Antwort erzeugen: Der Server verarbeitet die HTTP-Anfrage und erstellt eine Antwort.
- Inhalt der Antwort:
- Protokoll: die verwendete HTTP-Version.
- Statusinformation: HTTP-Statuscode (z. B. 200, 404).
- Response-Header: ähnlich wie die Request-Header.
- Response-Body: der angeforderte Inhalt (z. B. HTML-Seite, JSON-Daten).
7. Inhalte rendern
- HTTP-Antwort verarbeiten: Der Client empfängt und verarbeitet die HTTP-Antwort.
- Browser-Rendering: Der Browser interpretiert das HTML und rendert die Inhalte auf dem Bildschirm.
- Zusätzliche Ressourcen anfordern: Weitere Ressourcen wie Bilder, CSS und JavaScript werden angefordert.
HTTPS = HTTP + Verschlüsselung
TLS-Handshake
- TLS-Handshake: Client und Server tauschen Schlüssel für Verschlüsselung und Authentifizierung aus.
- Verschlüsselte Kommunikation: Nach dem TLS-Handshake senden Client und Server mit HTTP verschlüsselte Nachrichten hin und her.
TLS-1.3-Handshake
- Vereinfachter Ablauf: TLS 1.3 bietet weniger Optionen und ist dadurch einfacher, sicherer und schneller.
- Zentrale Schritte:
- Client Hello: Der Client sendet die unterstützten Cipher Suites und die TLS-Version an den Server.
- Server Hello: Der Server sendet die ausgewählte Cipher Suite und die TLS-Version an den Client.
- Zertifikatsprüfung: Der Client prüft das SSL-Zertifikat des Servers.
- Premaster Secret erzeugen: Der Client erzeugt ein Premaster Secret und sendet es an den Server.
- Session Keys erzeugen: Client und Server erzeugen Session Keys.
- Sichere Kommunikation: Mit den Session Keys kommunizieren sie per sicherer symmetrischer Verschlüsselung.
Meinung von GN⁺
- Internetkommunikation verstehen: Wer die Grundkonzepte von HTTP und HTTPS versteht, legt ein solides Fundament für Netzwerkkommunikation.
- Wichtigkeit von Sicherheit: Es ist wichtig, die Sicherheit der Datenübertragung mit HTTPS zu erhöhen.
- Vorteile von TLS 1.3: Die Nutzung von TLS 1.3 wird empfohlen, weil es einfacher, schneller und sicherer ist.
- Einsatz in der Praxis: In realen Projekten sollte HTTPS angewendet werden, um die Sicherheit zu verbessern.
- Weiterführendes Lernen: Zusätzliche Kenntnisse über Netzwerkschichten und Protokolle führen zu einem tieferen Verständnis.
1 Kommentare
Hacker-News-Kommentare