Was ist HTTP?

Das Hypertext Transfer Protocol wird verwendet, um Internetseiten mithilfe von Hyperlinks zu laden.

Share facebook icon linkedin icon twitter icon email icon

HTTP

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • HTTP definieren
  • Anatomie von HTTP-Anfragen und -Antworten
  • Wie können DDoS-Angriffe über HTTP durchgeführt werden?

Was ist HTTP

Das Hypertext Transfer Protocol (HTTP) ist die Grundlage des World Wide Web und wird zum Laden von Webseiten mithilfe von Hypertext-Links verwendet. HTTP ist ein Application Layer-Protokoll, das zum Übertragen von Informationen zwischen vernetzten Geräten entwickelt wurde und auf anderen Layern des Netzwerkprotokollstapels ausgeführt wird. Ein typischer Fluss über HTTP besteht darin, dass ein Client-Computer eine Anfrage an einen Server sendet, der dann eine Antwortnachricht verschickt

Was ist in einer HTTP-Anfrage enthalten?

Eine HTTP-Anfrage ist die Art und Weise, wie Internet-Kommunikationsplattformen wie Webbrowser Informationen anfragen, die sie zum Laden einer Website benötigen.

Jede über das Internet gestellte HTTP-Anfrage enthält eine Reihe von codierten Daten, die verschiedene Arten von Informationen enthalten. Eine typische HTTP-Anfrage enthält:

  1. HTTP-Versionstyp
  2. eine URL
  3. eine HTTP-Methode
  4. HTTP-Anfragenheader
  5. Optionaler HTTP-Body

Schauen wir uns genauer an, wie diese Anforderungen funktionieren und wie der Inhalt einer Anforderung zum Austausch von Informationen verwendet werden kann.

Was ist eine HTTP-Methode?

Eine HTTP-Methode, manchmal HTTP-Verb genannt, zeigt an, welche Aktion die HTTP-Anfrage vom abgefragten Server erwartet. Zwei der häufigsten HTTP-Methoden sind beispielsweise „GET“ und „POST“. Eine „GET“-Anfrage fordert Informationen an (normalerweise in Form einer Website), während eine „POST“-Anfrage in der Regel anzeigt, dass der Client Informationen an den Webserver überträgt (z. B. Formularinformationen wie einen übermittelten Benutzernamen und ein Passwort).

Was sind HTTP-Anfragenheader?

HTTP-Header enthalten Textinformationen, die in Schlüssel-Wert-Paaren gespeichert sind. Sie sind in jeder HTTP-Anfrage (und Antwort, dazu später mehr) enthalten. Diese Header vermitteln Schlüsselinformationen, z. B. welchen Browser der Client verwendet und welche Daten angefordert werden.

Beispiel für HTTP-Anfrageheader im „Netzwerk“-Tab von Google Chrome:

HTTP request headers

Was ist in einem HTTP-Anfragetext (Body) enthalten?

Der Body einer Anfrage enthält den Inhalt der Informationen, die einer Anfrage überträgt (Body wird im Deutschen manchmal auch als Nachrichtenrumpf übersetzt). Der Body einer HTTP-Anfrage enthält alle Informationen, die an den Webserver gesendet werden, z. B. einen Benutzernamen und ein Kennwort oder andere in ein Formular eingegebene Daten.

Was ist in einer HTTP-Antwort enthalten?

Eine HTTP-Antwort ist das, was Web-Clients (häufig Browser) von einem Internet-Server als Antwort auf eine HTTP-Anfrage erhalten. Diese Antworten übermitteln wertvolle Informationen basierend darauf, was die HTTP-Anfrage angefordert hat.

Eine typische HTTP-Antwort enthält:

  1. ein HTTP-Statuscode
  2. HTTP-Antwortheader
  3. optionaler HTTP-Body
  4. Schauen wir uns diese genauer an:

    Was ist ein HTTP-Statuscode?

    HTTP-Statuscodes sind dreistellige Codes, die am häufigsten dazu verwendet werden, anzuzeigen, ob eine HTTP-Anfrage erfolgreich abgeschlossen wurde. Statuscodes sind in die folgenden 5 Blöcke unterteilt:

    1. 1xx Information
    2. 2xx Erfolg
    3. 3xx Umleitung
    4. 4xx Client-Fehler
    5. 5xx Server-Fehler
    6. Das „xx“ steht für verschiedene Zahlen zwischen 00 und 99.

      Statuscodes, die mit der Nummer „2“ beginnen, zeigen einen Erfolg an. Nachdem ein Client beispielsweise eine Webseite angefordert hat, haben die am häufigsten angezeigten Antworten den Statuscode „200 OK“, was darauf hinweist, dass die Anfrage ordnungsgemäß abgeschlossen wurde.

      Wenn die Antwort mit einer „4“ oder einer „5“ beginnt, bedeutet es, dass ein Fehler aufgetreten ist und die Webseite nicht angezeigt wird. Ein Statuscode, der mit einer „4“ beginnt, weist auf einen Fehler auf der Seite des Clients hin (bei einem Tippfehler in einer URL tritt häufig der Statuscode „404 NOT FOUND“ auf). Beginnt der Statuscode mit einer „5“, bedeutet es, dass auf der Serverseite ein Fehler aufgetreten ist. Statuscodes können auch mit einer „1“ oder einer „3“ beginnen. Diese Zahlen weisen auf eine Informationsantwort bzw. eine Umleitung hin.

      Was sind HTTP-Antwortheader?

      Ähnlich wie bei einer HTTP-Anfrage verfügt auch eine HTTP-Antwort über Header, die wichtige Informationen enthalten, beispielsweise die Sprache und das Format der im Antworttext (Body) gesendeten Daten.

      Beispiel für einen HTTP-Antwortheader vom „Netzwerk“-Tab von Google Chrome:

      HTTP response headers

      Was ist in einem HTTP-Antworttext (Body) enthalten?

      Erfolgreiche HTTP-Antworten auf 'GET'-Anfragen haben im Allgemeinen einen Body, der die angeforderten Informationen enthält. Bei den meisten Webanfragen handelt es sich um HTML-Daten, die ein Webbrowser in eine Webseite übersetzt.

      Können DDoS-Angriffe über HTTP durchgeführt werden?

      Vergessen Sie nicht, dass HTTP ein „zustandsloses“ Protokoll ist. Das heißt, dass jeder Befehl unabhängig von jedem anderen Befehl ausgeführt wird. In der ursprünglichen Spezifikation haben HTTP-Anfragen jeweils eine TCP-Verbindung erstellt und wieder geschlossen. In neueren Versionen des HTTP-Protokolls (HTTP 1.1 und höher) ermöglicht die dauerhafte Verbindung, dass mehrere HTTP-Anfragen über eine dauerhafte TCP-Verbindung übertragen werden, wodurch der Ressourcenverbrauch verbessert wird. Im Zusammenhang mit DoS- oder DDoS-Angriffen können HTTP-Anfragen in großen Mengen zu einem Angriff auf ein Zielgerät verwendet werden. Sie gelten als Teil der Application-Layer-Angriffe oder als Layer-7-Angriffe.