Sobes.tech
Junior

Aus welchen Komponenten besteht eine HTTP-Anfrage?

sobes.tech KI

Antwort von AI

Die HTTP-Anfrage besteht aus den folgenden Komponenten:

  1. Startzeile (Request Line): Bestimmt den Anfrage-Typ und die Ressource. Besteht aus:

    • HTTP-Methode (HTTP Method): Die Aktion, die an der Ressource ausgeführt werden soll (z.B. GET, POST, PUT, DELETE).
    • Pfad der Ressource (Path): Die URL des angeforderten Ressource auf dem Server.
    • HTTP-Version (HTTP Version): Die verwendete Version des HTTP-Protokolls für die Anfrage (z.B. HTTP/1.1, HTTP/2.0).
    // Beispiel für die Startzeile
    GET /index.html HTTP/1.1
    
  2. Request-Header (Request Headers): Bieten zusätzliche Informationen über den Client, die Anfrage oder die Ressource. Die Header-Parameter werden im Format "Name: Wert" dargestellt. Haupt-Header:

    • Host: Der Domain-Name des Servers.
    • User-Agent: Informationen über den Client (Browser, OS).
    • Accept: Medientypen, die der Client akzeptieren kann.
    • Content-Type: Medientyp des Inhalts im Anfragekörper (für PUT, POST).
    • Content-Length: Die Länge des Anfragekörpers in Bytes.
    • Authorization: Anmeldedaten für die Authentifizierung.
    // Beispiel für Request-Header
    Host: www.beispiel.de
    User-Agent: Mozilla/5.0
    Accept: text/html
    
  3. Leere Zeile (Empty Line): Trennt die Request-Header vom Request-Body. Ist obligatorisch, auch wenn kein Body vorhanden ist.

  4. Request-Body (Request Body): Enthält Daten, die an den Server gesendet werden, z.B. Formulardaten, JSON für POST/PUT-Anfragen. Nicht bei allen Methoden vorhanden (z.B. bei GET nicht).

    // Beispiel für den Request-Body (für POST/PUT)
    {
      "name": "John Doe",
      "age": 30
    }
    

Schematisch kann die Struktur einer HTTP-Anfrage so dargestellt werden:

Komponente Beschreibung Obligatorisch
Startzeile Methode, Pfad der Ressource, HTTP-Version Immer
Request-Header Zusätzliche Informationen über die Anfrage/den Client Optional
Leere Zeile Trenner Immer
Request-Body Daten, die an den Server gesendet werden Optional