IT & Engineering
HTTP-Schnellkurs
Es ist schon eine Weile her, dass wir uns intensiv mit einem grundlegenderen technischen Prozess befasst haben. Die E-Mail-Welt verändert sich zwar ständig, aber es ist gut, einen Schritt zurückzutreten und sich anzusehen, wie die Dinge eigentlich funktionieren. Wie der Titel schon sagt, möchten wir uns mit HTTP befassen: was es ist, wie es funktioniert und welche verschiedenen Funktionen es heute hat. Schnallen Sie sich also an, es ist Zeit für einen Schnellkurs.
Was ist HTTP?
HTTP steht für Hypertext Transfer Protocol. Es ist ein Mechanismus zur Datenübertragung im Internet zwischen Clients (Computer, Laptops, Smartphones usw.) und Servern.
Wenn Sie also in die Adresszeile Ihres Browsers gehen und eine Webadresse eingeben, sucht der Browser nach der Serveradresse, die mit dieser URL verknüpft ist. Von dort aus versucht der Browser, eine Verbindung zum Server herzustellen, eine sogenannte TCP-Verbindung über HTTP den Standardport für den Datenverkehr – Port 80. Wenn die Verbindung mit dem Browser hergestellt ist (der Server also antwortet), sendet Ihr Browser eine Anfrage, die in etwa so aussieht:
GET /18_tyyp.html HTTP/2.0
Host: the web address or URL
User-Agent: The browser’s name
Über dieselbe Verbindung antwortet der Server dann:
HTTP/2.0 200 OK
Content-Length: 65635
Content-Type: html/text
Last-Modified: Fri, 24 Jan 2020 08:35:42 GMT
<!doctype html>
…the document's remaining part
Der Browser zeigt den Body, also den Teil, der nach der Leerzeile im Dokument folgt, als HTML-Dokument an.
Die request (Anfrage) ist die Information, die der Client gesendet hat. Sie beginnt wie folgt:
GET /18_http.html HTTP/2.0
Das erste Wort definiert die Anfragemethode. GET bedeutet, dass die gesuchte Ressource spezifiziert ist. Weitere Anfragemethoden sind DELETE für das Löschen einer Ressource, PUT für das Ersetzen oder Erstellen von Ressourcen und POST für das Senden von Informationen an die Ressource.
Es ist wichtig zu beachten, dass der Server nicht verpflichtet ist, alle an ihn gesendeten Anfragen zu beantworten. Alles in allem handelt es sich um eine recht einfache Kommunikation.
HTTP und Browser
Wenn Sie eine URL in die Adresszeile eines Browsers eingeben, wird der Browser aufgefordert, eine Anfrage zu stellen. Wenn die aus der Anfrage resultierende HTML-Seite weitere Dateien wie JavaScript-Dateien, Bilder usw. enthält, werden diese ebenfalls abgerufen und bilden zusammen die von Ihnen angeforderte Seite.
Manche Websites können zwischen zehn und 200 Ressourcen enthalten. Um diese alle schnell abzurufen, stellt der Browser mehrere gleichzeitige GET-Anfragen, anstatt nacheinander auf die Antworten zu warten. Andernfalls würde es ewig dauern, bis Seiten korrekt geladen sind, und dafür hat niemand Zeit.
HTTP-Sandboxing
Wie Sie wahrscheinlich wissen, ist HTTP nicht die sicherste Kommunikation der Welt. Es gibt Grund zur Sorge, wenn man eine HTTP-Anfrage im Skript einer Webseite ausführt. Die für das Skript zuständige Person hat möglicherweise andere Interessen als die Person, die die Anfrage ausführt. Ich könnte zum Beispiel `themafia.org` besuchen, möchte aber nicht, dass das Skript dieser Seite eine Anfrage an eine andere Seite sendet und dabei Informationen verwendet, die es über meinen Browser identifizieren kann. Nicht, dass ich nach der Mafia suchen würde oder so.
Aus diesem Grund erlauben Browser es dem Skript einer Webseite nicht, HTTP-Anfragen an eine andere Domain zu stellen – dies dient dem Schutz der Nutzerinnen und Nutzer. Ein weiteres Problem tritt jedoch auf, wenn jemand versucht, einen Systemserver aufzubauen, der legitimerweise Zugriff auf andere Domains anfordert. Dies lässt sich leicht beheben, indem der Server eine Kopfzeile wie diese bereitstellt: Access-Control-Allow-Origin in seiner Antwort. Diese Kopfzeile weist den Browser ausdrücklich an, Anfragen von einer anderen Domain zuzulassen.
HTTPS und Sicherheit
Daten legen im Internet oft weite Strecken zurück, und dieser Weg kann lang und gefährlich sein. Bevor sie ihr Ziel erreichen, müssen sie auf der Route verschiedene Stationen passieren, die die Daten überprüfen oder sogar verändern könnten.
Wenn Sie etwas geheim halten möchten (denken Sie an Passwörter) oder möchten, dass die Daten unverändert an ihrem Ziel ankommen, dann reicht einfaches HTTP nicht aus.
Ein sichereres HTTP-Protokoll ist https://. Diese URL kapselt den HTTP-Verkehr so, dass es schwieriger ist, ihn zu manipulieren oder zu lesen. Vor dem Datenaustausch bestätigt der Client zunächst die Authentizität des Servers. Er fordert den Server auf, sein kryptografisches Zertifikat nachzuweisen, das in der Regel von einer vom Browser anerkannten Zertifizierungsstelle ausgestellt wurde. Nach diesem Schritt werden alle über diese Verbindung übertragenen Daten verschlüsselt, sodass Manipulationen und/oder Abhören unmöglich sind.
Wenn HTTPS gut funktioniert, verhindert es, dass andere versuchen, sich als die Website auszugeben, die Sie erreichen möchten – so bleiben Ihre Daten sicher. Es ist jedoch nicht perfekt. Sollte Software fehlerhaft sein oder Zertifikate gestohlen werden, können Daten dennoch gefährdet sein. Trotzdem ist es wesentlich sicherer als das einfache, alte HTTP.
Über den Autor
Alice Jones ist eine Journalistin und Freelancerin aus San Francisco mit dem Schwerpunkt auf dem Verfassen von Studienarbeiten und freiberuflicher Arbeit. Ihre Themenschwerpunkte liegen hauptsächlich in den Bereichen Wirtschaft und Marketing. Sie hat sowohl ihren Bachelor als auch ihren Master an der University of San Francisco absolviert.