HTTP ist dir sicherlich ein Begriff. Aber weißt du, was es bedeutet und welche Funktion es erfüllt? Die kurze Antwort: Für das Internet ist HTTP enorm wichtig. HTTP ermöglicht überhaupt erst die die Kommunikation zwischen Client und Server. Selbst wenn du die Abkürzung für eine Website nicht zwangsweise in die Adresszeile deines Browser eingeben musst, beginnt doch jede Adresse mit http(s), denn sonst würde eine Website dir gar nicht erst angezeigt.
In diesem Artikel erfährst du, wie HTTP genau funktioniert, wir gehen auf die HTTP-Statuscodes und die verschiedenen möglichen Fehlermeldungen ein, und du erfährst den Unterschied zwischen HTTP und HTTPS. Lass uns nun tiefer in die http-Welt eintauchen.
Was ist HTTP?
HTTP ist die Abkürzung für Hypertext Transfer Protocol. Jede Webseitenadresse beginnt mit http beziehungsweise dem sicheren https (zum Unterschied später noch mehr). Ursprünglich war HTTP für die Übertragung von HTML-Dokumenten von einem Computer zum anderen gedacht. Heutzutage sorgt es dafür, dass Webserver und Client miteinander kommunizieren können. Es ist sozusagen das Grundgerüst des Webs – ein Protokoll, das für die Magie zuständig ist, Websites, Bilder und Videos auf deinem Bildschirm erscheinen zu lassen.
Was du sonst noch wissen musst: Es gibt verschiedene Versionen von HTTP, wie das frühe HTTP/1.1, das später aber von HTTP/2 und HTTP/3 abgelöst wurde, die als schneller und benutzerfreundlicher gelten.
Wie funktioniert HTTP?
HTTP-Statusmeldungen geben dir einen Überblick, wie deine Anfrage verlaufen ist. Im Folgenden erhältst du eine Erklärung, welche Meldungen möglich sind und was sie bedeuten.
Ein kleine Anmerkung: Als durchschnittlicher Nutzer siehst du diese Meldungen in der Regel nur dann, wenn etwas schiefgelaufen ist – manchmal auch als humorvollere Variante wie “Ups, da ist etwas schiefgelaufen”.
Um alle Statuscodes zu sehen, kannst du entweder die Entwicklertools in deinem Browser öffnen (Rechtsklick und dann auf “Untersuchen” oder ähnlich klicken) oder eine Browser-Erweiterung installieren.
1xx: Informational (Provisorisch)
- 100 Continue: Der Server ist für die Daten bereit.
- 101 Switching Protocols: Der Client schlägt ein anderes Protokoll vor, und der Server ist einverstanden.
Statusmeldung 2xx
- 200 OK: Die Anfrage war erfolgreich, und du siehst die Websites.
- 201 Created: Ein neuer Eintrag wurde erstellt und ist jetzt verfügbar.
- 204 No Content: Befehl wurde ausgeführt, aber neuen Daten sind nicht verfügbar.
3xx: Redirection (Umleitung)
- 301 Moved Permanently: Diese Seite ist umgezogen und besitzt eine neue Adresse.
- 302 Found: Die Website ist temporär umgezogen.
- 304 Not Modified: Die Ressource hat sich seit dem letzten Besuch nicht verändert, gespeicherten Daten werden verwendet.
4xx: Client Error (Client-Fehler)
- 400 Bad Request: Die Anfrage ist fehlerhaft. Eine der häufigsten Statuscodes.
- 401 Unauthorized: Eine Erlaubnis ist für den Zugriff notwendig. Diese liegt aber nicht vor, und du hast keinen Zugriff auf die Website.
- 403 Forbidden: Der Zugriff ist nicht erlaubt.
- 404 Not Found: Die Website ist nicht vorhanden. Das ist eine häufige Fehlermeldung, die möglicherweise schon einmal gesehen hast.
5xx: Server Error (Server-Fehler)
- 500 Internal Server Error: Unerwarteter Fehler auf Serverseite.
- 502 Bad Gateway: Der Server hat nicht geantwortet oder eine ungültige Antwort gegeben.
- 503 Service Unavailable: Der Server kann die Anfrage nicht bearbeiten. Vielleicht wird er gewartet oder ist überlastet.
- 504 Gateway Timeout: Die Wartezeit auf den Server war zu lang, um die Anfrage zu bedienen.
Welchen Zweck erfüllt das Hypertext Transfer Protocol?
Kommunikation
HTTP ist wie ein Bote, der deine Anfrage zwischen dir und dem Server übermittelt. Ohne das Protokoll könnten keine Websites, Bilder oder Videos im World Wide Web geteilt werden. Aber manchmal überbringt dir dieser Bote wiederum eine schlechte Nachricht, und du erhältst eine Fehlermeldung (siehe oben).
Strukturierte Datenübertragung
HTTP sorgt dafür, dass die Kommunikation zwischen Browser und Server strukturiert und verständlich erfolgt. Es definiert, wie Anfragen und Antworten aussehen und was sie bedeuten, was die Grundlage für das gesamte World Wide Web ist.
Universalität und Flexibilität
Das Internet ist komplex, es reicht von einfachen Textkomponenten bis hin zu komplexen Anwendungen, und HTTP ist so aufgebaut, dass es mit all dem umgehen kann – wie ein Schlüssel, der in mehrere Türen gleichzeitig passt. Aufgrund dieser Flexibilität ist es überhaupt erst zur Popularität von HTTP gekommen.
HTTP Request-Response Cycle
Wie HTTP funktioniert, hast du bereits anfangs erfahren. Doch zu guter Letzt wollen wir uns noch den sogenannten Request-Response Cycle im Detail und etwas vereinfachter anschauen:
- Du gibst eine URL ein, und dein Browser schickt eine HTTP-Anfrage (Request) an den Server. – Stell dir vor, du bist in einer Bäckerei und sagst der Verkäuferin, was du gerne haben möchtest. Nehmen wir an, du bestellst ein Roggenbrötchen.
- Der Server empfängt diese Anfrage. – Die Verkäuferin hat deinen Wunsch gehört.
- Basierend auf der Anfrage, sucht der Server die gewünschte Ressource (HTML, CSS, JavaScript, etc.) heraus. – Die Verkäuferin prüft in der Ablage, ob noch ein Roggenbrötchen vorhanden ist.
- Der Server sendet die Antwort (Response) zurück, die den Statuscode (wie „200 – OK“ oder „404 – Nicht gefunden“) und die gewünschte Ressource enthält. – Die Verkäuferin gibt dir die entsprechende Antwort. Du möchtest natürlich, dass ein Roggenbrötchen verfügbar war.
- Dein Browser nimmt die Ressource an, und zeigt dir hoffentlich deine gewünschte Seite an. Wenn nicht, gibt es ein Durcheinander, und du siehst Statusmeldungen wie „Fehler 404 – Seite nicht gefunden“. – Du erhältst dein Roggenbrötchen, wenn es vorrätig ist.
Was ist der Unterschied zwischen HTTP und HTTPS?
Der große Unterschied zwischen HTTP und HTTPS (Hypertext Transfer Protocol Secure) besteht in der Verschlüsselung. Denn im Gegensatz zu HTTP ist HTTPS verschlüsselt und enthält Zertifikate, die dir bestätigen sollen, dass die Verbindung Sicherheit bietet und die Website authentisch ist.
Um es anschaulicher zu machen: HTTP ist wie ein Postkarte, die du verschickst. Jeder kann sie lesen, der sie in die Hände bekommt. So auch bei HTTP: Alle, die Zugang zu den Datenverbindungen haben, sehen deine Anfragen und die Daten, die du übermittelst. Das macht das Hypertext Transfer Protocol schnell aber gleichzeitig unsicherer.
HTTPS ist, um bei dem Vergleich zu bleiben, eher wie ein verschlossener Brief, den nur Absender und Empfänger lesen können. Außerdem verwendet das Protokoll SSL/TLS (Secure Sockets Layer/Transport Layer Security). Der Server zeigt dir ein Sicherheitszertifikat an, das dir bestätigt, dass du tatsächlich mit der richtigen Seite kommunizierst.
Dieses Zertifikat wird dir in der Regeln neben der Adresszeile in deinem Browser angezeigt (zum Beispiel durch ein Schlüsselsymbol). Bei unsicheren Verbindungen, die über kein Zertifikat verfügen, erhältst du eine Sicherheitswarnung, dass die Seite, die du besuchst, nicht sicher ist. Vor allem bei Seiten, auf denen du sensible Informationen teilst, wie beim Online-Banking, ist das von unschätzbarem Wert. Inzwischen nutzt ein Großteil der Websites HTTPS. Bei Websites ohne dieses Protokoll solltest du generell vorsichtig sein.
Häufig gestellte Fragen
Wofür steht HTTP?
HTTP ist die Abkürzung für Hypertext Transfer Protocol. Das Protokoll sorgt dafür, dass Client und Server miteinander kommunizieren können. Es ist somit grundlegend für das Internet.
Ist HTTP anfällig für DDoS-Attacken?
Ja, HTTP ist anfällig für DDoS-Attacken, weil die unzähligen Anfragen eines solchen Angriffs oftmals nicht von legitimen Anfragen auf Anwendungsebene zu unterscheiden sind. Es gibt auch spezifische Schwachstellen in Implementierungen des HTTP/2-Protokolls, die es Angreifern ermöglichen, effiziente DoS-Angriffe durchzuführen.
Welche sind die gängigsten HTTP-Statuscodes?
Die bekannteste Statusmeldung ist sicherlich “404 Not Found”, da sie sichtbar wird, wenn eine Website nicht gefunden wurde. Daneben sind die gängigsten Meldungen “200 OK” und “500 Internal Server Error”.