Learning Center
Programmiersprache Python

HTTP-Anfragen verstehen: Aufbau, Methoden und Beispiele

10 Dez. 2025
Hostman Team
Hostman Team

HTTP ist der Schlüssel zur Kommunikation im Internet. Die Methoden des HTTP-Protokolls ermöglichen es Clients, Anfragen an Server zu senden, und Servern, Antworten zurückzugeben. Jede Website im World Wide Web verwendet HTTP-Anfragen. Daher ist es wichtig, sie zu verstehen. 

Dieser Artikel behandelt das Konzept von HTTP-Requests, ihren Aufbau, gängige Methoden und praktische Beispiele. Das hilft dabei, die Funktionsweise des Webs besser zu verstehen.

Was ist eine HTTP-Request?
Link kopieren

Eine HTTP-Request ist eine Nachricht, in der ein Client – z. B. ein Webbrowser – den auf dem Server befindlichen Host um eine bestimmte Ressource bittet. Clients verwenden URLs in HTTP-Requests, die die Ressourcen angeben, auf die sie zugreifen möchten.

Bestandteile einer HTTP-Request
Link kopieren

Jede HTTP-Request besteht aus drei Hauptkomponenten:

  • Request Line

  • Headers

  • Message Body

Request Line
Link kopieren

Die Request Line ist die erste Zeile einer HTTP-Anfrage. Sie initiiert eine Aktion auf dem Server. Die Request Line zeigt außerdem an, welche HTTP-Methode und welche HTTP-Version der Client verwendet.

Zusätzlich zur HTTP-Methode enthält sie eine URI oder URL.

Beispiel einer Request Line:

GET /index.html HTTP/1.1

Headers
Link kopieren

Die Headers folgen direkt auf die Request Line. Sie liefern zusätzliche Informationen vom Client an den Server. Headers beinhalten Angaben wie Hostname, User-Agent, bevorzugte Sprache und mehr. Der Server nutzt diese Informationen, um Browser- und Betriebssystemversion des Clients zu identifizieren.

HTTP-Headers sind case-sensitive, bestehen aus einem Namen, gefolgt von einem Doppelpunkt und einem Wert.

Beispiel für HTTP-Request-Headers:

Host: example.com

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36

Accept: application/json, text/plain, */*

Accept-Language: en-US,en;q=0.9

Accept-Encoding: gzip, deflate, br

Connection: keep-alive

Message Body
Link kopieren

Der Message Body einer HTTP-Request wird verwendet, um Daten an den Server zu senden. Er ist optional – nicht jede HTTP-Request enthält einen Body.

Ob er verwendet wird, hängt von der HTTP-Methode ab. Requests mit Body nutzen typischerweise POST, um Informationen zu übertragen. Der Server nutzt den Body, um die gesendeten Daten zu verarbeiten.

Häufige HTTP-Methoden
Link kopieren

Eine HTTP-Request stellt eine Verbindung zwischen Client und Server her. Gründe dafür können sein:

  • eine Ressource abzurufen

  • neue Daten zu senden

  • bestehende Daten zu ändern

  • Daten zu löschen

Die wichtigsten und am häufigsten verwendeten Methoden sind:

GET – Ressourcen abrufen
Link kopieren

Die häufigste Verwendung von HTTP ist das Abrufen von Daten vom Server. Beim Aufrufen einer Website sendet der Browser eine GET-Request, um den Inhalt zu laden.

Eigenschaften:

  • cacheable

  • safe

  • idempotent

GET ist nur zum Lesen gedacht — der Serverzustand wird nicht verändert.

POST – Daten senden
Link kopieren

Um Daten an den Server zu übermitteln (z. B. beim Absenden eines Formulars), wird POST verwendet.

Der Body enthält die Daten, die der Server verarbeiten soll.

Mehrere identische POST-Requests können zu mehreren Ressourcen auf dem Server führen.

PUT – Ressourcen aktualisieren
Link kopieren

PUT ähnelt POST, mit einem zentralen Unterschied:

  • POST = neue Daten senden

  • PUT = bestehende Daten aktualisieren

Der Client muss die vollständige neue Repräsentation im Body angeben. PUT ist idempotent – mehrere gleiche PUT-Requests führen zum gleichen Ergebnis.

DELETE – Ressourcen löschen
Link kopieren

DELETE weist den Server an, eine Ressource zu entfernen.

Wenn der Server erfolgreich löscht, sendet er eine Bestätigung zurück. Auch DELETE ist idempotent.

Was ist eine HTTP-Response?
Link kopieren

Wenn der Server auf eine HTTP-Request antwortet, nennt man das eine HTTP-Response.
Sie besteht ebenfalls aus drei Teilen:

  • Status Line

  • Headers

  • Message Body

Status Line
Link kopieren

Sie zeigt:

  • HTTP-Version

  • Statuscode

  • Statusnachricht

Headers
Link kopieren

Sie enthalten Informationen wie:

  • Datum und Uhrzeit der Antwort

  • Content-Type

  • Server-Details

  • Caching-Regeln

Body
Link kopieren

Der Body enthält die eigentliche Antwort, z. B.:

  • HTML

  • JSON

  • XML

  • Bilder

  • Dateien

Statuscodes und ihre Bedeutung
Link kopieren

HTTP-Statuscodes zeigen an, wie der Server die Anfrage verarbeitet hat. Sie bestehen aus drei Ziffern. Die erste Ziffer beschreibt die Kategorie:

Code-Gruppe

Bedeutung

1xx

Informational – Anfrage wird weiter verarbeitet

2xx

Success – erfolgreich verarbeitet

3xx

Redirect – weitere Schritte nötig

4xx

Client Error – Problem auf Client-Seite

5xx

Server Error – Fehler bei der Serververarbeitung

HTTP-Headers und ihre Bedeutung
Link kopieren

Headers sind wichtig für die Kommunikation im Web.

Sie unterstützen:

Host-Identifikation
Link kopieren

Wichtig bei Servern mit mehreren Domains.

Caching
Link kopieren

Headers wie Cache-Control oder Expires steuern, wie lange eine Ressource gespeichert bleibt.

Cookie-Management
Link kopieren

Set-Cookie und Cookie verwalten Sessions und Benutzerzustände.

Sicherheit
Link kopieren

z. B. Authorization, Content-Security-Policy.

Response-Kontrolle
Link kopieren

Headers vermitteln Erfolg oder Fehler der Anfrage.

Praktische Beispiele für HTTP-Requests
Link kopieren

Alle Beispiele verwenden Python und die Bibliothek requests.

GET
Link kopieren

import requests

response = requests.get("https://api.example.com/data",

                        params={"param1": "value1", "param2": "value2"})

print(response.status_code)

print(response.json())

POST
Link kopieren

import requests

url = "https://api.example.com/users"

data = {

    "username": "newuser",

    "email": "newuser@example.com",

    "password": "securepassword"

}

response = requests.post(url, json=data)

if response.status_code == 201:

    print("User created successfully:", response.json())

else:

    print("Error:", response.status_code, response.text)

PUT
Link kopieren

import requests

url = "https://api.example.com/users/123"

data = {

    "username": "updateduser",

    "email": "updateduser@example.com"

}

response = requests.put(url, json=data)

if response.status_code == 200:

    print("User updated successfully:", response.json())

else:

    print("Error:", response.status_code, response.text)

DELETE
Link kopieren

import requests

url = "https://api.example.com/users/123"

response = requests.delete(url)

if response.status_code == 204:

    print("User deleted successfully.")

else:

    print("Error:", response.status_code, response.text)

Fazit
Link kopieren

HTTP-Requests spielen eine zentrale Rolle bei Web-Interaktionen. Es ist entscheidend, die verschiedenen Methoden zu kennen und zu verstehen, wann sie eingesetzt werden. Die Wahl der passenden Methode erleichtert die Kommunikation zwischen Client und Server und steigert die Effizienz von Webanwendungen.