6 Punkte von GN⁺ 2024-05-27 | 1 Kommentare | Auf WhatsApp teilen

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

 
GN⁺ 2024-05-27
Hacker-News-Kommentare
  • Eine Frage dazu, warum es bei Netzwerkproblemen schwer ist zu erkennen, wo genau das Problem entstanden ist. Die Erklärung, dass Netzwerkpfade nicht deterministisch sind, wirke nicht überzeugend.
  • Ein Kommentar empfiehlt detaillierte und interaktive Beispiele zu TLSv1.2 und TLSv1.3. Ein Link wird bereitgestellt.
  • Ein Kommentar, dass Erklärungen im Stil von „ELI(a mediocre engineer)“ hilfreich seien. Die Person möchte mehr Beispiele finden.
  • Die Bitte einer Person, ein Codebeispiel für die Verifizierung von SHA256-Signaturen zu finden. Die Theorie sei bekannt, aber die Implementierung bereite Schwierigkeiten.
  • Ein Kommentar, dass der beste Teil des Artikels die Stelle gewesen sei, in der man in San Francisco mit dem Schreiben von HTTP-Requests ein Jahresgehalt von 300.000 $ bekomme.
  • Ein Kommentar, dass die Aussage, der Client verschlüssele das Pre-Master-Secret mit dem öffentlichen Schlüssel des Servers und sende es dann, veraltet sei.
  • Zweifel an der Erklärung, dass ein SSL-Zertifikat den privaten Schlüssel enthalte. Ein Kommentar, dass diese Erklärung zum Titel „Mediocre Engineer“ passe.
  • Ein Witz darüber, für 50.000 $ weniger arbeiten zu wollen. Dazu der Hinweis, dass die Erklärung zu TLS <1.3 falsch sei.
  • Ein Kommentar, dass der Artikel veraltet sei und derzeit 30 % der Webanfragen HTTP3 und CORS verwendeten. Außerdem wird bemängelt, dass kein Veröffentlichungsdatum angegeben sei.
  • Ein Kommentar, dass die HTTPS-Erklärung wie eine KI-Zusammenfassung wirke. Es fehle an Begriffserklärungen, und es werde vorausgesetzt, dass die Leserschaft Public-Key-Kryptografie kenne. Außerdem wird kritisiert, dass die Erklärung des OSI-Schichtenmodells unvollständig sei.