400 Bad Request: Bedeutung und so beheben Sie den Fehler

Kernaussage

Ein 400 Bad Request bedeutet: Der Server hat Ihre Anfrage erhalten, verweigert aber die Verarbeitung, weil etwas daran fehlerhaft aussah – eine kaputte URL, zu große oder beschädigte Cookies bzw. Header oder ungültige Daten an eine API. Als Besucher prüfen Sie die URL auf überflüssige Zeichen, löschen dann die Cookies dieser einen Website und testen ein privates Fenster. Als Website-Betreiber lesen Sie Fehlerseite und Logs: „Request Header Or Cookie Too Large“ heißt, dass eine Header-Zeile oder alle Header zusammen nicht in die Puffer von nginx passten (standardmäßig 8 KB pro Zeile), also verkleinern Sie die Cookies oder heben das Limit an, und „The plain HTTP request was sent to HTTPS port“ heißt, dass etwas HTTP mit einem TLS-Port spricht.

Jetzt prüfen

nginx-Seite „400 Bad Request: Request Header Or Cookie Too Large“ mit den Lösungen in der richtigen Reihenfolge
nginx-Seite „400 Bad Request: Request Header Or Cookie Too Large“ mit den Lösungen in der richtigen Reihenfolge
Jetzt lesen
  1. Was ist der Fehler 400 Bad Request?
  2. So sieht ein 400-Fehler aus
  3. Was verursacht einen 400 Bad Request?
  4. Lösung 1: Prüfen Sie die URL
  5. Lösung 2: Löschen Sie die Cookies dieser einen Website
  6. Lösung 3: Inkognito testen, dann den Cache leeren
  7. Lösung 4: Erweiterungen deaktivieren und Dateigrößen prüfen
  8. Für Website-Betreiber: Die Ursache von 400-Fehlern finden
  9. „Request Header Or Cookie Too Large“
  10. „The plain HTTP request was sent to HTTPS port“
  11. 400-Fehler von APIs
  12. 400 vs. 401, 403, 404, 413, 429 und 431
  13. Häufig gestellte Fragen

Was ist der Fehler 400 Bad Request?

400 Bad Request ist ein HTTP-Statuscode und bedeutet, dass der Server Ihre Anfrage erhalten hat, sie aber nicht verarbeitet, weil mit der Anfrage selbst etwas nicht stimmt. Der HTTP-Standard definiert ihn so: Der Server kann oder will eine Anfrage nicht verarbeiten, „weil etwas als Fehler des Clients wahrgenommen wird (z. B. fehlerhafte Anfragesyntax, ungültiges Message-Framing oder irreführendes Request-Routing)“ (RFC 9110 §15.5.1).

Anders als ein 500er-Fehler, der heißt, dass der Server kaputt ist, zeigt ein 400 auf die Anfrage: die URL, die Header, die Cookies oder die Daten, die Ihr Browser oder Ihre App gesendet hat. Für alle anderen funktioniert die Website meist ganz normal.

Für Besucher ist das eine gute Nachricht, denn die Lösung liegt oft auf Ihrer Seite und dauert eine Minute: ein vertippter oder beschädigter Link oder Cookies, die für den Server zu groß geworden sind.

Statuscode und Header ansehen, die eine Seite zurückgibt

So sieht ein 400-Fehler aus

Die Meldung hängt von der Serversoftware ab, und der Zusatztext ist oft der beste Hinweis auf die Ursache:

ServerWas auf der Seite stehtÜbliche Ursache
nginx400 Bad Request: Request Header Or Cookie Too LargeCookies oder Header über dem Limit von nginx
nginx400 Bad Request: The plain HTTP request was sent to HTTPS portHTTP an einen Port gesendet, der HTTPS erwartet
ApacheBad Request: Your browser sent a request that this server could not understand. (Bei einem zu großen Header folgt zusätzlich: Size of a request header field exceeds server limit.)Fehlerhafte Anfrage oder ein zu großes Header-Feld
IIS (HTTP.sys)Bad Request - Invalid URL. HTTP Error 400. The request URL is invalid.Unzulässige oder falsch codierte Zeichen in der URL
IIS (HTTP.sys)Bad Request - Request Too Long. The size of the request headers is too long.Zu viele oder zu große Cookies
Google400. That's an error. Your client has issued a malformed or illegal request.Fehlerhafte URL oder Anfrage (zu große Cookies führen stattdessen zu einer 413-Seite)

Was verursacht einen 400 Bad Request?

  • Eine fehlerhafte URL. Ein verirrtes %-Zeichen, ein Leerzeichen, ein Zeichen, das hätte codiert werden müssen, oder ein Link, der abgeschnitten oder doppelt eingefügt wurde.
  • Beschädigte oder zu große Cookies. Websites, die viele Cookies setzen (Logins, A/B-Tests, Analytics), können den Cookie-Header über das Limit des Servers treiben. Auch ein Cookie, das bei einem Update beschädigt wurde, kann abgelehnt werden.
  • Zu große Request-Header. Neben Cookies summieren sich lange Authentifizierungs-Tokens oder Header, die Erweiterungen und Proxys hinzufügen.
  • Ungültige Daten an eine API. Fehlende Pflichtfelder, fehlerhaftes JSON oder der falsche Content-Type-Header.
  • HTTP an einen HTTPS-Port gesendet. Häufig hinter Load Balancern und Reverse Proxys.
  • Eine zu große Datei. Viele Server antworten mit 413 Content Too Large, manche Apps und Frameworks liefern stattdessen aber 400.

Lösung 1: Prüfen Sie die URL

Sehen Sie sich die Adressleiste genau an. Darauf sollten Sie achten:

  • Ein %, auf das keine zwei Hexadezimalzeichen folgen (%20 ist in Ordnung, %2 oder %zz nicht).
  • Leerzeichen, { }, |, \ oder andere ungewöhnliche Zeichen, vor allem in Links, die aus E-Mails, PDFs oder Chat-Apps kopiert wurden.
  • Ein Link, der doppelt eingefügt (https://example.com/https://example.com/...) oder mittendrin abgeschnitten wurde.
  • Eine sehr lange URL mit Tracking-Parametern. Löschen Sie alles ab dem ? und versuchen Sie es erneut.

Sind Sie über einen Link von einer anderen Website gekommen, gehen Sie stattdessen auf die Startseite der Website und navigiere von dort zur gewünschten Seite.

Lösung 2: Löschen Sie die Cookies dieser einen Website

Das ist die Lösung für Meldungen, in denen Cookies oder Header „too large“ oder „too long“ sind, und sie lohnt sich bei jedem 400 auf einer Website, die Sie schon einmal genutzt haben. Sie müssen nicht die Cookies aller Websites löschen, nur die dieser einen:

  • Chrome: Klicken Sie links in der Adressleiste auf Website-Informationen anzeigen → Cookies und Websitedaten → Websitedaten auf dem Gerät verwalten → löschen Sie die Daten der Website und laden Sie neu.
  • Edge: Einstellungen und mehr → Einstellungen → Datenschutz, Suche und Dienste → Cookies → Alle Cookies und Websitedaten anzeigen → nach der Website suchen → löschen.
  • Firefox: Klicken Sie auf das Schloss-Symbol → Cookies und Website-Daten löschen …
  • Safari (Mac): Safari → Einstellungen → Datenschutz → Websitedaten verwalten … → nach der Website suchen → Entfernen.
  • iPhone: Einstellungen → Apps → Safari → Erweitert → Websitedaten → auf der Website nach links wischen, um sie zu löschen.

Lösung 3: Inkognito testen, dann den Cache leeren

Öffnen Sie die Seite in einem Inkognito- bzw. privaten Fenster (Strg + Umschalt + N in Chrome und Edge, Strg + Umschalt + P in Firefox, Cmd + Umschalt + N in Safari). Private Fenster starten ohne Cookies, ohne Dateien im Cache und meist ohne Erweiterungen. Funktioniert die Seite dort, lösen Lösung 2, Lösung 4 oder das Leeren der Cache-Dateien (Strg + Umschalt + Entf → Bilder und Dateien im Cache) das Problem dauerhaft.

Scheitert auch Inkognito, sind weder Cookies noch Cache oder Erweiterungen die Ursache: Prüfen Sie die URL noch einmal, schalten Sie ein VPN oder einen Proxy aus und leeren Sie als letzten Schritt Ihren DNS-Cache. DNS ist selten die Ursache eines 400-Fehlers, aber nach einem Serverumzug der Website kann eine veraltete Adresse Sie auf einen Server führen, der Ihre Anfrage ablehnt.

Lösung 4: Erweiterungen deaktivieren und Dateigrößen prüfen

Erweiterungen, die Anfragen verändern, etwa Datenschutz-Tools, Header-Editoren, Gutschein-Finder und manche Werbeblocker, können Header so hinzufügen oder ändern, dass ein Server sie ablehnt. Deaktivieren Sie alle, laden Sie neu und schalten Sie sie dann nacheinander wieder ein, um den Schuldigen zu finden.

Tritt der Fehler beim Hochladen auf, probieren Sie eine kleinere Datei. Komprimieren Sie Bilder oder teilen Sie große Dateien auf. So erfahren Sie, ob der Server die Größe ablehnt, auch wenn er das als 400 statt als 413 meldet.

Für Website-Betreiber: Die Ursache von 400-Fehlern finden

Melden Nutzer 400-Fehler auf Ihrer Website, fangen Sie mit der genauen Meldung an, die sie sehen, und mit Ihren Server-Logs. nginx protokolliert den Grund auf dem Level info; Apache protokolliert zu große Header auf info, fehlerhafte URLs und Header aber erst auf debug. Setzen Sie das Log-Level des Error-Logs daher vorübergehend herauf, falls Sie den Grund nicht sehen (error_log … info; in nginx, LogLevel debug in Apache). Das Access-Log zeigt, welche URLs 400 liefern. Der HTTP-Header-Checker von DNS Robot zeigt den Statuscode, die Serversoftware und jedes Cookie, das ein Erstbesuch setzt, samt Größe. Cookies, die Skripte später hinzufügen, etwa Analytics, sehen Sie nur in den DevTools Ihres Browsers (Application → Cookies).

bash
# Welche Anfragen bekommen 400? (nginx-Logformat "combined")
sudo awk '$9 == 400 {print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

# Die Gründe, die nginx protokolliert hat (braucht error_log ... info;)
sudo grep -i "client sent\|too large\|bad request" /var/log/nginx/error.log | tail -20

nginx liest Request-Header in Puffer ein, die large_client_header_buffers festlegt, standardmäßig 4 Puffer zu je 8 KB. Ein Header-Feld, das nicht in einen Puffer passt (meist der Cookie-Header), löst diesen 400-Fehler aus, ebenso Header, die zusammen mehr als alle 4 Puffer brauchen (etwa 32 KB). Eine zu lange Request-Zeile (die URL) liefert dagegen 414 (nginx). Das Gegenstück bei Apache ist LimitRequestFieldSize, standardmäßig 8.190 Byte (Apache).

Wir haben es am 27. Oktober 2026 auf nginx.org selbst getestet (nginx 1.31.3): Eine Anfrage mit einem 7.000 Byte großen Cookie bekam die normale Seite, eine mit einem 9.000 Byte großen Cookie genau diese:

html
<html>
<head><title>400 Request Header Or Cookie Too Large</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<center>Request Header Or Cookie Too Large</center>
<hr><center>nginx/1.31.3</center>
</body>
</html>

Die saubere Lösung ist, weniger zu senden: Entfernen Sie Cookies, die Sie nicht mehr brauchen, halten Sie Session-Cookies klein und beschränken Sie Cookies auf die Pfade und Subdomains, die sie nutzen. Brauchen Sie wirklich größere Header, etwa für große Single-Sign-on-Tokens, heben Sie das Limit an:

nginx
# nginx: http-Block oder Default-Server (andere server-Blöcke lassen sich ignorieren)
large_client_header_buffers 4 16k;

# Entsprechung bei Apache: Hauptkonfiguration oder zuerst aufgeführter Virtual Host
# LimitRequestFieldSize 16380

„The plain HTTP request was sent to HTTPS port“

nginx liefert diesen 400-Fehler, wenn etwas unverschlüsseltes HTTP an einen Port schickt, an dem nginx TLS erwartet, meist 443; curl http://nginx.org:443/ zeigt die Seite. Typische Ursachen sind ein Load Balancer oder Proxy, der http://-Traffic an Port 443 weiterleitet, ein Link wie http://example.com:443 oder, bei nginx vor 1.25.1, eine Zeile ssl on; in einem server-Block, der auch auf Port 80 lauscht (1.25.1 hat die Direktive entfernt, neuere nginx-Versionen starten damit nicht; verwenden Sie listen 443 ssl;).

Sorgen Sie dafür, dass jede listen-Zeile zu dem passt, was dort ankommt: listen 443 ssl; für HTTPS und listen 80; für unverschlüsseltes HTTP, mit einer Weiterleitung von 80 auf 443. Stellen Sie außerdem sicher, dass der vorgeschaltete Proxy HTTPS mit Port 443 spricht (bzw. HTTP mit Port 80).

400-Fehler von APIs

APIs nutzen 400 für Anfragen, die die Validierung nicht bestehen. Rufen Sie eine API auf, lesen Sie den Response-Body, denn die meisten APIs erklären, welches Feld falsch ist. Prüfen Sie dann, ob Sie gültiges JSON, den richtigen Header Content-Type: application/json und alle Pflichtparameter senden.

Bauen Sie selbst eine API, geben Sie einen Body zurück, der das Problem benennt (zum Beispiel {"error": "email is required"}), und erwägen Sie 422 Unprocessable Content für Anfragen, die formal korrekt, aber inhaltlich ungültig sind. 400 bleibt dann für Anfragen, die sich gar nicht erst parsen lassen.

400 vs. 401, 403, 404, 413, 429 und 431

CodeNameBedeutung
400Bad RequestDie Anfrage ist fehlerhaft oder ungültig
401UnauthorizedSie müssen sich anmelden oder gültige Zugangsdaten senden
403ForbiddenDer Server hat Sie verstanden, verweigert aber den Zugriff
404Not FoundUnter dieser URL existiert nichts
413Content Too LargeDer Upload oder der Request-Body ist zu groß
429Too Many RequestsSie haben ein Rate-Limit erreicht
431Request Header Fields Too LargeHeader, meist Cookies, sind zu groß (Node.js antwortet zum Beispiel mit 431, wo nginx 400 liefert)

Unsere Anleitungen zu den Nachbarn: 403 Forbidden, 401 Unauthorized und 429 Too Many Requests. Bei Weiterleitungen, die sich im Kreis drehen statt zu scheitern, lesen Sie ERR_TOO_MANY_REDIRECTS, und der Weiterleitungs-Checker zeigt jeden einzelnen Hop.

Sieh genau, was eine Seite zurückgibt

Der HTTP-Header-Checker von DNS Robot zeigt für jede URL den Statuscode, die Serversoftware und jedes Cookie, das eine Website setzt. So sehen Sie, ob eine Seite für alle oder nur in Ihrem Browser einen 400 liefert.

Quellen

  1. RFC 9110 §15.5.1: 400 Bad Request, IETF
  2. large_client_header_buffers, nginx
  3. LimitRequestFieldSize, Apache HTTP Server
  4. How HTTP status codes affect Google's crawlers, Google

Häufig gestellte Fragen

Was bedeutet 400 Bad Request?

Es bedeutet, dass der Server Ihre Anfrage erhalten, aber die Verarbeitung verweigert hat, weil etwas daran fehlerhaft oder ungültig aussah, etwa eine kaputte URL, zu große oder beschädigte Cookies, zu große Header oder ungültige Daten an eine API.

Bin ich schuld an einem 400 Bad Request?

Meist liegt die Ursache in der Anfrage, die Ihr Browser gesendet hat, die Lösung also oft auf Ihrer Seite: URL prüfen, die Cookies dieser Website löschen und Inkognito testen. Ein Server kann aber auch gültige Anfragen ablehnen, wenn seine Limits zu niedrig eingestellt sind. Hilft nichts, kontaktieren Sie die Website.

Wie behebe ich 400 Bad Request in Chrome?

Prüfen Sie die URL auf überflüssige Zeichen, öffnen Sie die Seite in einem Inkognito-Fenster und löschen Sie dann die Cookies dieser Website: Website-Informationen anzeigen links in der Adressleiste → Cookies und Websitedaten → Websitedaten auf dem Gerät verwalten. Bleibt der Fehler, leeren Sie die Dateien im Cache und deaktivieren Sie Erweiterungen nacheinander.

Was bedeutet Request Header Or Cookie Too Large?

Der Browser hat ein Cookie oder einen anderen Header gesendet, der größer ist, als der Server erlaubt: bei nginx standardmäßig ein Header über 8 KB oder alle Header zusammen über etwa 32 KB. Als Besucher löschen Sie die Cookies dieser Website. Als Betreiber reduzieren Sie Anzahl und Größe der Cookies oder heben large_client_header_buffers von nginx (Standard 4 × 8 KB) bzw. LimitRequestFieldSize von Apache an.

Was bedeutet The plain HTTP request was sent to HTTPS port?

nginx hat unverschlüsseltes HTTP auf einem Port empfangen, der für HTTPS konfiguriert ist. Nutzen Sie https:// in der URL oder sorgen Sie als Betreiber dafür, dass Ihre listen-Direktiven sowie Load Balancer und Proxys HTTPS-Traffic an Port 443 und HTTP-Traffic an Port 80 schicken.

Können ein VPN oder DNS einen 400-Fehler verursachen?

Selten. Ein Proxy oder eine Sicherheitssoftware, die Anfragen umschreibt, kann das, und nach einem Serverwechsel der Website kann Sie ein veralteter DNS-Eintrag zu einem Server schicken, der die Anfrage ablehnt. VPN trennen und DNS-Cache leeren lohnt sich nach den Lösungen für URL, Cookies und Cache.

Was ist der Unterschied zwischen 400 und 404?

400 bedeutet, dass die Anfrage selbst fehlerhaft ist und der Server sie deshalb nicht verarbeitet. 404 bedeutet, dass die Anfrage in Ordnung war, unter dieser Adresse aber nichts existiert.

Schadet ein 400-Fehler der SEO?

Google behandelt 4xx-Antworten außer 429 wie Inhalte, die nicht existieren. Eine URL, die dauerhaft 400 liefert, fällt also aus den Suchergebnissen. 4xx-Fehler bremsen das Crawling der restlichen Website durch den Googlebot nicht. Beheben Sie 400-Fehler auf Seiten, die indexiert werden sollen.

Warum bekomme ich 400 Bad Request beim Hochladen einer Datei?

Die Datei ist wahrscheinlich größer, als der Server oder die App akzeptiert, und das Problem wird als 400 statt als 413 gemeldet. Probieren Sie eine kleinere oder komprimierte Datei oder fragen Sie bei der Website nach dem Upload-Limit.

Über den Autor

Shaik Vahid

Gründer von DNS Robot. Vahid hat jahrelang im Webhosting-Support Domains, DNS-Einträge, SSL-Zertifikate und E-Mail-Zustellung für Kunden in Ordnung gebracht. Er entwickelt die Tools von DNS Robot und schreibt diese Anleitungen über die Fehler, die Menschen wirklich sehen.

HTTP-Header-Checker

HTTP-Antwort-Header und Sicherheits-Header-Bewertung analysieren