Informatik

HTTP einfach erklärt: Requests, Responses und HTTPS

HTTP einfach erklärt: Requests, Responses und HTTPS
HTTP einfach erklärt: Requests, Responses und HTTPS
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

HTTP ist ein Protokoll, mit dem ein Client Ressourcen bei einem Server anfordert und der Server darauf antwortet. Dein Browser nutzt diesen geregelten Austausch zum Beispiel, um Texte und Bilder einer Webseite abzurufen.

Du lernst, einen HTTP-Austausch zu verfolgen, Nachrichtenbestandteile zuzuordnen und typische Statuscodes zu deuten.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Vom Klick zur angezeigten Webseite

Wenn du eine Adresse eingibst oder auf einen Link klickst, beginnt ein Austausch zwischen zwei Rollen:

Definition

Client

Ein Client ist ein Programm, das Daten oder Dienste anfordert. Beim Surfen übernimmt meist dein Browser diese Rolle.

Definition

Server

Ein Server stellt Ressourcen oder Dienste bereit und beantwortet Anfragen von Clients. Ein Webserver kann beispielsweise eine Webseite oder ein Bild liefern.

HTTP bedeutet Hypertext Transfer Protocol. Ein Protokoll legt Regeln fest, nach denen Programme Nachrichten austauschen. HTTP gehört zur Anwendungsschicht: Es beschreibt, was der Client anfordert und wie der Server darauf antwortet. Die eigentliche Übertragung kann darunter beispielsweise TCP übernehmen.

Der Austausch folgt einem wiederkehrenden Muster:

  1. Eine Nutzeraktion löst eine Anfrage aus.
  2. Der Browser sendet einen Request an den Webserver.
  3. Der Server verarbeitet den Request.
  4. Der Server sendet eine Response zurück.
  5. Der Browser verarbeitet die Antwort und stellt den Inhalt dar.
Definition

Request

Ein Request ist die HTTP-Anfrage eines Clients an einen Server.

Definition

Response

Eine Response ist die HTTP-Antwort des Servers auf einen Request.

Beispiel

Du rufst eine Seite mit einem Produktbild auf. Zuerst fordert der Browser das Seitendokument an. Erkennt er darin das eingebundene Bild, kann er dafür einen weiteren Request senden. Eine sichtbare Webseite entsteht daher häufig durch mehrere Request-Response-Zyklen.

Merke

Der Client fragt an, der Server antwortet. Eingebundene Ressourcen können weitere Anfragen auslösen.

Teste dich
Frage 1 von 2LeichtWer beginnt einen HTTP-Request-Response-Zyklus?
Lösung: Der Client sendet einen Request. — Eine Nutzeraktion veranlasst den Client, einen Request zu senden. Der Server antwortet darauf mit einer Response.
Frage 2 von 2MittelEine Webseite verweist auf ein zusätzliches Bild. Was kann der Browser tun?
Lösung: Nach dem Seitendokument auch das Bild mit einem weiteren Request anfordern. — Für eingebundene Ressourcen können nach dem ersten Seitendokument zusätzliche Request-Response-Zyklen entstehen.
So sind HTTP-Nachrichten aufgebaut

Requests und Responses bestehen typischerweise aus drei Bereichen:

  1. Die Start-Line nennt die wichtigsten Angaben zur Nachricht.
  2. Die Header enthalten zusätzliche Angaben als Name-Wert-Paare.
  3. Der optionale Body transportiert Nutzdaten.

Die Start-Line eines Requests enthält die Methode, das Ziel der gewünschten Ressource und die HTTP-Version. Ein vereinfachtes Beispiel lautet: GET /produkte HTTP/1.1.

Danach können Header folgen. Host: beispiel.test bezeichnet etwa den Zielhost. Ein leerer Request-Body ist möglich, wenn keine zusätzlichen Daten übertragen werden müssen.

Bei einer Response sieht die Start-Line anders aus. Sie nennt die HTTP-Version und einen Statuscode, beispielsweise HTTP/1.1 200 OK. Header können den Inhalt näher beschreiben. Im Body kann anschließend das angeforderte Seitendokument stehen.

Beispiel

Ein Browser sendet gedanklich diese Angaben:

  • Start-Line: GET /bilder/logo.png HTTP/1.1
  • Header: Host: beispiel.test
  • Body: nicht erforderlich

Der Server antwortet:

  • Start-Line: HTTP/1.1 200 OK
  • Header: Angabe zum Inhaltstyp
  • Body: Daten des Bildes

Der entscheidende Unterschied liegt in der Aufgabe der Nachrichten: Der Request beschreibt die Anforderung, die Response beschreibt das Ergebnis und kann die Ressource liefern.

Merke

Die Start-Line gibt die Richtung vor, Header beschreiben die Nachricht und der Body enthält gegebenenfalls Nutzdaten.

Teste dich
Frage 1 von 2LeichtWo steht bei einer Response, ob eine Anfrage erfolgreich war?
Lösung: In der Start-Line als Statuscode. — Die Response-Start-Line enthält HTTP-Version und Statuscode.
Frage 2 von 2MittelEin GET-Request braucht in einem Beispiel keine zusätzlichen Nutzdaten. Welcher Bestandteil kann dann fehlen?
Lösung: Der Request-Body. — Ein Body ist optional. Start-Line und erforderliche Angaben des Requests bleiben notwendig.
Methoden und Statuscodes richtig deuten

Eine HTTP-Methode beschreibt, was der Client mit seinem Request erreichen möchte.

  • GET fordert eine Ressource an, etwa eine Webseite oder ein Bild.
  • POST übermittelt Daten an den Server, etwa eingegebene Anmeldedaten.

POST bedeutet nicht automatisch, dass die Daten in einer Datenbank gespeichert werden. Aus dem hier behandelten Grundmodell folgt nur: Der Client übermittelt Daten, die der Server anschließend verarbeitet.

Die Response enthält einen dreistelligen Statuscode. Die erste Ziffer ordnet den Code einer Klasse zu. Für typische Webaufrufe sind unter anderem diese Codes wichtig:

CodeBedeutung
200Die Anfrage wurde erfolgreich bearbeitet.
301Die Ressource ist dauerhaft unter einer anderen Adresse erreichbar.
401Für den Zugriff fehlt die erforderliche Authentifizierung.
404Die angeforderte Ressource wurde nicht gefunden.
Beispiel

Du öffnest eine vorhandene Artikelseite. Der Browser sendet einen GET-Request, und der Server antwortet mit 200 sowie dem Artikel im Body.

Vertippst du dich im Pfad und existiert dort keine Ressource, kann der Server mit 404 antworten. Der Server hat dann reagiert, aber nicht die gewünschte Ressource gefunden.

Merke

Ein Statuscode beschreibt das Ergebnis der Anfrage. 404 bedeutet daher nicht, dass überhaupt keine Kommunikation stattgefunden hat.

Teste dich
Frage 1 von 3LeichtWelche Methode passt zum Abruf eines Bildes?
Lösung: GET — GET fordert eine Ressource vom Server an. Ein Statuscode wie 404 ist keine Methode.
Frage 2 von 3MittelEin nicht angemeldeter Client fordert einen geschützten Bereich an. Welcher Code passt zur fehlenden Authentifizierung?
Lösung: 401 — 401 zeigt an, dass die erforderliche Authentifizierung für den Zugriff fehlt.
Frage 3 von 3SchwerDer Server antwortet mit 404. Welche Diagnose ist am genauesten?
Lösung: Der Server hat die angeforderte Ressource nicht gefunden. — 404 beschreibt eine nicht gefundene Ressource. Der Statuscode selbst ist bereits Teil einer Serverantwort.
Warum HTTP allein keine Erinnerung hat

HTTP ist zustandslos. Das bedeutet: Jede Anfrage wird aus Sicht des Protokolls unabhängig behandelt. HTTP erinnert sich nach einem abgeschlossenen Austausch nicht von selbst daran, dass mehrere Requests vom selben Nutzer stammen.

Websites können dich trotzdem wiedererkennen. Dafür benötigen sie zusätzliche Mechanismen wie Cookies.

Definition

Cookie

Ein Cookie ist eine zusätzliche Information, die eine Website zur Wiedererkennung verwenden kann. Eine Response kann Angaben zum Setzen eines Cookies enthalten; bei späteren Anfragen kann der Browser passende Cookie-Informationen wieder mitsenden.

Beispiel

Du meldest dich auf einer Website an. Der POST-Request übermittelt deine Anmeldedaten. Damit spätere Requests einer bestehenden Anmeldung zugeordnet werden können, kann die Website Cookie-Informationen verwenden. Die Erinnerung stammt dann nicht aus dem zustandslosen HTTP-Grundmodell allein.

Merke

Zustandslos bedeutet nicht, dass eine Website niemals etwas wiedererkennen kann. Es bedeutet, dass HTTP jede Anfrage zunächst als eigenständigen Austausch behandelt.

Teste dich
Frage 1 von 1MittelEine Website erkennt eine frühere Anmeldung wieder. Widerspricht das der Zustandslosigkeit von HTTP?
Lösung: Nein. Zusätzliche Mechanismen wie Cookies können Requests einer Sitzung zuordnen. — HTTP behandelt Requests unabhängig. Cookies können die zur Wiedererkennung nötigen Informationen ergänzen.
Was HTTPS zusätzlich schützt

HTTPS verwendet denselben grundlegenden Request-Response-Ablauf wie HTTP, ergänzt ihn aber um Schutzmechanismen. Das S steht für secure.

Die Kommunikation zwischen Client und Server wird verschlüsselt. Dadurch sollen Dritte die übertragenen Daten nicht einfach mitlesen können. Außerdem authentifiziert sich der Webserver gegenüber dem Client.

Beispiel

Bei einer Anmeldung werden Daten vom Browser an den Server übertragen. Mit HTTPS wird dieser Übertragungsweg verschlüsselt. Request, Response, Methoden und Statuscodes bleiben weiterhin Teile des Austauschs.

Merke

HTTPS ersetzt HTTP nicht durch einen völlig anderen Ablauf. Es schützt den grundlegenden HTTP-Austausch zusätzlich durch Verschlüsselung und Serverauthentifizierung.

Teste dich
Frage 1 von 2LeichtWas ist der zentrale Zusatz von HTTPS gegenüber HTTP?
Lösung: Der Austausch wird durch Verschlüsselung und Serverauthentifizierung geschützt. — Auch bei HTTPS tauschen Client und Server Requests und Responses aus. Zusätzliche Sicherheitsmechanismen schützen die Kommunikation.
Frage 2 von 2SchwerEine HTTPS-Seite enthält ein Bild. Welche Aussage trifft zu?
Lösung: Auch für das Bild kann ein weiterer geschützter Request-Response-Zyklus nötig sein. — HTTPS schützt den Austausch. Eingebundene Ressourcen können weiterhin eigene Anfragen auslösen.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • HTTP-Kommunikation
    • Client sendet Request
    • Server sendet Response
    • Nachricht enthält Start-Line, Header und optionalen Body
    • GET fordert Ressourcen an
    • POST übermittelt Daten
    • Statuscode beschreibt das Ergebnis
    • Cookies ergänzen Wiedererkennung
    • HTTPS schützt die Übertragung
Abschluss-Check
Teste dich
Frage 1 von 4LeichtWelche Reihenfolge beschreibt den Grundablauf korrekt?
Lösung: Nutzeraktion, Request des Clients, Verarbeitung durch den Server, Response — Eine Nutzeraktion löst beim Client einen Request aus. Der Server verarbeitet ihn und sendet eine Response.
Frage 2 von 4MittelEine Response enthält HTTP/1.1 301. Was solltest du daraus schließen?
Lösung: Die Ressource ist dauerhaft unter einer anderen Adresse erreichbar. — 301 weist auf einen dauerhaften Umzug der Ressource hin. 404 wäre der Code für eine nicht gefundene Ressource.
Frage 3 von 4SchwerBeim Aufruf einer Seite erhältst du eine HTTP-Response mit 404. Welche Teile des Systems haben bis dahin nachweislich funktioniert?
Lösung: Ein Request erreichte einen Server, und der Server konnte mit einem HTTP-Status antworten. — Der Status 404 diagnostiziert ein Problem auf der Ebene der angeforderten Ressource. Der HTTP-Austausch bis zur Serverantwort hat stattgefunden.
Frage 4 von 4SchwerEine Website erkennt dich bei einem späteren Request wieder. Welche Erklärung verbindet die Begriffe korrekt?
Lösung: HTTP bleibt zustandslos; Cookie-Informationen können die Wiedererkennung ergänzen. — Zustandslosigkeit beschreibt das HTTP-Grundmodell. Cookies sind ein zusätzlicher Mechanismus, mit dem eine Website zusammengehörige Besuche oder Anfragen erkennen kann.

Du hast den Kern verstanden, wenn du bei einem Webaufruf Client und Server, Request und Response, Nachrichtenbestandteile sowie einen Statuscode begründet zuordnen kannst.

Passend dazu