HTTP / HTTPS

Wenn man eine Internetseite mit Hilfe eines Internetbrowsers anfordert, dann bekommt man zwangsläufig etwas mit dem Begriff HTTP oder HTTPS zu tun. Denn der Anfang jeder Domain beginnt mit http:// oder https://, z.B. https://www.conminds.de.

Doch was genau steckt hinter diesen Begriffen? Das klären wir in diesem Beitrag.

Was bedeutet HTTP?

Der Begriff HTTP ist eine Abkürzung für „HyperText Transfer Protocol“. HTTP ist ein zustandsloses Übertragungsprotokoll für die Anwendungsschicht, mit dessen Hilfe Daten über ein Netzwerk (z.B. das World Wide Web) übertragen werden. Eingeführt wurde es im Jahre 1991.

HTTP wird im Internet für die Übertragung von Webseiten (Hypertext-Dokumente) vom Webserver zum Webbrowser genutzt. Dazu sendet der Client (meist ein Browser) eine Anfrage (Request) an den Webserver. Daraufhin sendet der Webserver eine Antwort (Response) an den Client zurück.

HTTP ist aber nicht nur für die Datenübertragung von Webseiten genutzt, es kann auch als allgemeines Datenübertragungsprotokoll genutzt werden.

Die aktuelle Version von HTTP ist HTTP/3. Diese Version wurde im Juni 2022 unter der Spezifikation RFC 9114 veröffentlicht.

HTTP wird in der Anwendungsschicht (Schicht 7) im OSI-Schichtenmodell genutzt.

http in Schicht 7 OSI-Schichtenmodell
OSI-Schichtenmodell

Was ist der Unterschied zwischen HTTP und HTTPS?

Von HTTPS spricht man, wenn eine Verschlüsselung der übertragenen Daten stattfindet. Das „S“ hinter „HTTP“ steht daher für „Secure“ und HTTPS folglich für “HyperText Transfer Protocol Secure”, zu Deutsch “Sicheres Hypertext Übertragungsprotokoll”.

HTTPS ist eine auf HTTP aufbauender Standard, der neben der Übertragung der Daten auch für eine Verschlüsselung der übertragenen Daten sorgt. Dies geschieht allerdings neben TCP auf der Transportebene, nicht der Anwendungsebene. HTTPS wurde von Netscape entwickelt und 1994 zusammen mit SSL 1.0 veröffentlicht.

HTTPS ist mittlerweile der Standard bei der Übertragung von Webseiten.

Die sichere Übertragung der Daten wird durch eine Authentifizierung und Verschlüsselung der Daten auf Transportebene gewährleistet. Dies ist besonders wichtig für offene WLANs, in denen die Daten unverschlüsselt übertragen. Auf diese Weise können dann die Daten dennoch, unabhängig vom Übertragungsnetz, verschlüsselt übertragen werden.

Viele Webhoster bieten in Ihren Hosting-Paketen auch direkt ein SSL-Zertifikat an. Meist handelt es sich dabei um die kostenlosen “Let`s Encrypt“-Zertifikate. Wird dieses für die entsprechende Domain aktiviert, erfolgt die Datenübertragung verschlüsselt und die Website-URL lautete dann “https://www.ihredomain.de”.

Wie ist http aufgebaut?

Über HTTP werden Datenpakete übertragen. Diese Datenpakete nennt man Nachrichten.

Es gibt 2 Arten von Nachrichten:

  • die Anfrage (Request)
  • die Antwort (Response)

Die Anfrage ist die Nachricht, die vom Client (meist ein Browser) an den Server gestellt wird.
Die Antwort ist die Nachricht, die vom Server zurück an den Client gesendet wird.

Jede Nachricht besteht dabei aus 2 Teilen:

  1. Header
  2. Body

Der Header (auch http-Header genannt) beinhaltet Informationen wie Inhaltstyp, Sprache, Kodierungen, User Agent, Cache, letzte Modifikation, etc.
Der Body enthält die eigentlichen Inhalte, die Daten, z.B. einer Webseite.

Damit die Übertragung per HTTP auch gezielt zwischen den verschiedenen Rechnern gesteuert werden kann, wird ein Übertragungssteuerungsprotokoll benötigt. Dazu nutzt man das Transmission Control Protocol, kurz TCP.

Das TCP wird auf der Schicht 4, der Transportschicht (Transport Layer), nach dem OSI-Modell (Open Systems Interconnection) verortet.

Wie funktioniert HTTP?

Wenn man eine Webseiten-URL in den Browser eingibt und diese anfordert, dann wird zuerst eine Netzwerkverbindung hergestellt.

Ist diese Verbindung erfolgreich aufgebaut, dann erfolgt eine Verbindung zum DNS-Server, bei dem die Domain in eine IP-Adresse aufgelöst wird.

Anschließend erfolgt der Aufbau einer TCP-Verbindung mit dem Server mit der entsprechenden IP-Adresse.

Ist auch diese erfolgreich hergestellt, so wird ein HTTP-Request an den Server gesendet.

Auf die Anfrage erhält der Browser dann eine HTTP-Antwort (Response).

In der Antwort ist auch ein HTTP-Statuscode enthalten.Wenn alles erfolgreich übertragen werden kann, lautet der Statuscode 200 OK.

Können die über HTTP übertragenen Daten mitgelesen werden?

Daten, die in einem Netzwerk mit Hilfe des Datenübertragungsprotokolls HTTP übertragen werden, können bis zur Versionsnummer HTTP/2 grundsätzlich auf allen im Netzwerk befindlichen Computern und Routern, über die diese Daten übertragen werden, als Klartext mitgelesen werden.

Will man dies verhindern so muss man auf eine verschlüsselte Übertragung der Daten per HTTPS umstellen.

Erst ab HTTP-Version 3 wird eine Verschlüsselung der Daten per Transport Layer Security (TLS) erzwungen.

Allerdings können noch nicht alle modernen Browser auch HTTP/3 verarbeiten. Welche Browser fies können und welche nicht, findet sich in dieser Übersicht.

HTTP-Standardisierung

http wurde und wird weiterhin von der Internet Engineering Task Force (IETF) https://www.ietf.org/ und der Internet Assigned Numbers Authority (IANA) https://www.iana.org/ standardisiert.

Die HTTP-Spezifikationen, Statuscodes und weiteres finden sie hier.

Fazit

Das HyperText Transfer Protocol http wird genutzt, um Hypertext-Webseiten zwischen Server und Client (z.B. einem Browser) zu übertragen. Es ist das Standard-Protokoll für die Übertragung von Webseiten im Internet.

Um die Verschlüsselung der Daten zu erreichen, benötigen Sie aber zusätzlich noch ein Verschlüsselungsprotokoll auf der Transport Layer (TLS). Dies geschieht meist mit einem SSL-Zertifikat, welches viele Hosting-Anbieter in ihren Hosting-Paketen mit anbieten.

Schreibe einen Kommentar