Wie gefällt Ihnen der Artikel?
1
Wie gefällt Ihnen der Artikel?
1

HTTP 400: Der Bad Request erklärt

Wenn Sie täglich im Internet surfen, läuft nicht immer läuft alles so, wie es soll. Gelegentlich zeigt Ihr Browser einen Statuscode statt des gewünschten Inhalts an. Bei der Kommunikation zwischen dem Webserver und dem Client – also Ihrem Browser – werden zwar grundsätzlich Statusmeldungen übertragen, doch erst, wenn ein Problem auftritt, zeigt Ihnen das Fenster Ihres Webbrowsers eine mehr oder weniger kryptische Fehlermeldung. Die Anzeige des HTTP-Codes 400 signalisiert Ihnen, dass etwas bei der Anfrage Ihres Clients falsch gelaufen ist. Wir erklären Ihnen, was die Fehlermeldung genau bedeutet, und geben Tipps, wie Sie das Problem lösen.

Was bedeutet der Bad Request 400 Error?

Mit Statuscodes gibt ein Webserver den Zustand von Anfragen an den Client zurück. Liefert der Server die Meldung 200 (die Sie normalerweise beim Surfen nicht sehen), ist alles ok. Die Anfrage war erfolgreich und die gewünschten Inhalte sind übertragen worden. Anders sieht es bei Codes in den 400er- und 500er-Bereichen aus: Hiermit wird auf Fehler unterschiedlichster Art hingewiesen.

Alles in den 100ern deutet auf andauernde und alles in den 200ern auf erfolgreich abgeschlossene Vorgänge hin. Diese sehen Internetnutzern in der Regel genau so wenig, wie alles im Bereich von 300: Bei der Kommunikation hat alles geklappt, aber der Client muss einen weiteren Schritt vornehmen. Meistens handelt es sich dabei um Weiterleitungen, die der Browser aber ganz automatisch durchführt und die Sie als Nutzer in den wenigsten Fällen bemerken.

Ganz anders ist das bei den Fehlermeldungen: Während die Gruppe der 500er-Errors mit Fehlern auf der Serverseite in Verbindung stehen, geht alles im Bereich von 400 auf eine fehlerhafte Anfrage des Clients zurück. Am bekanntesten ist wahrscheinlich der 404-Fehler: Not found. Ursache für die Meldung ist im Regelfall entweder eine falsch eingegebene URL oder aber gelöschte Inhalte.

Beim Error 400 ist die Frage „Was ist hier schief gelaufen?“ nicht so einfach zu beantworten. In irgendeiner Form ist die Anfrage an sich fehlerhaft gewesen. Das Internetprotokoll HTTP wurde – zumindest nach Meinung des Webservers – nicht korrekt eingehalten, weshalb der Request nicht bearbeitet werden kann. Der Server hat die Anfrage als fehlerhaft oder sogar schädlich interpretiert. Deshalb hat er die Auslieferung der Website unterbunden. Die Gründe für die Fehlermeldung haben meist mit dem verwendeten Browser zu tun oder sind auf einen Fehler des Nutzers zurückzuführen:

  • Falsche URL: Genau wie der 404-Error entsteht ein Bad Request, wenn Nutzer die Internetadresse falsch eingeben und zum Beispiel unzulässige Sonderzeichen einfügen.
  • Fehlerhafte Cookies: Wenn die Cookies innerhalb Ihres Browsers veraltet oder fehlerhaft sind, kann es ebenfalls zum Fehler 400 kommen.
  • Veraltete DNS-Einträge: In Ihrem DNS-Cache könnten noch Daten liegen, die auf falsche IP-Adressen verweisen.
  • Zu große Dateien: Wenn Sie versuchen, besonders große Dateien hochzuladen, kann der Server die Annahme verweigern. Auch dies wird vom Server als Bad Request gewertet.
  • Zu lange Header-Lines: Bei der Kommunikation verwenden Client und Server Header, in denen die Anfrage definiert ist. Manche Webserver setzen eine Obergrenze für die Länge dieser Header.

Es ist also aus der Fehlermeldung „HTTP 400 Bad Request“ nicht direkt ersichtlich, wo genau das Problem bei der Kommunikation tatsächlich liegt. Falls der anvisierte Webserver IIS 7.0, IIS 7.5 oder IIS 8.0 verwendet, sind aber detailliertere Informationen aus dem Statuscode ablesbar:

  • 400.1: Ungültiger Destination Header
  • 400.2: Ungültiger Depth Header
  • 400.3: Ungültiger If Header
  • 400.4: Ungültiger Overwrite Header
  • 400.5: Ungültiger Translate Header
  • 400.6: Ungültiger Request Body
  • 400.7: Ungültige Content-Länge
  • 400.8: Ungültiger Timeout
  • 400.9: Ungültiger Lock Token

Der Fehler 400 tritt übrigens nicht nur beim Surfen innerhalb eines Browsers auf. Auch andere Programme, wie zum Beispiel Mailclients, können bei der Kommunikation mit einem Server den Statuscode erhalten.

400 Bad Request beheben

Wie bei den meisten Statuscodes, die eine Fehlermeldung anzeigen, sollte es in vielen Fällen ausreichen, wenn Sie die Website einfach erneut laden. Vor allem, wenn der Fehler zum ersten Mal auf einer Website auftritt, die Sie normalerweise ohne Störungen aufrufen können, dürfte das Problem temporär sein. Wenn ein neuer Seitenaufruf das Problem nicht direkt löst, führt es mitunter zum Erfolg, den Browser-Cache zu löschen. Eventuell hat Ihr Webbrowser gerade in dem Moment eine Kopie gespeichert, in dem die Fehlermeldung angezeigt wurde.

Falsche URL

Der nächste Schritt zur Analyse des Problems sollte die Überprüfung der URL sein: Falls Sie die Adresse selbst in die Zeile Ihres Browsers eingegeben haben, checken Sie, ob sich kein Tippfehler eingeschlichen hat. Wenn Sie auf einen Link geklickt haben, können Sie auch dort die Schreibweise überprüfen oder eventuell zuerst auf die Hauptseite gehen und von dort auf die gewünschte Unterseite zugreifen.

Fehlerhafte Cookies

Das Problem kann auch durch veraltete oder fehlerhafte Cookies entstehen. Um dies zu beheben, löschen Sie ganz einfach den entsprechenden Eintrag in Ihrem Browser. Wenn Sie nun die Website erneut aufrufen, legt die Software einen neuen Cookie an.

Fakt

In Cookies werden Informationen zum Besuch einer Website gespeichert. Damit weiß der Webserver, dass Sie die Website in der Vergangenheit bereits besucht haben und welche Einstellungen Sie dort vorgenommen haben. Eine EU-Richtlinie soll die Privatsphäre von Internetnutzern in Bezug auf Cookies sichern.

Falsche DNS-Einträge

Eine weitere Lösungsmöglichkeit, die Sie ausprobieren können, ist das Löschen Ihres DNS-Caches. Wenn Sie im Internet surfen, werden die von Ihnen eingegebenen Domainnamen in IP-Adressen übersetzt – nur so bauen Sie eine Verbindung im World Wide Web auf. Dafür muss zunächst eine Namensauflösung bei einem Nameserver durchgeführt werden. Um diesen Prozess abzukürzen, speichert Ihr PC die gesammelten Daten temporär im DNS-Cache. Doch geben Sie die Domain das nächste Mal in den Browser ein und der Eintrag wurde noch nicht automatisch aus dem Cache entfernt, erfolgt die Namensauflösung direkt aus dem Cache. Wenn nun dieser Eintrag korrumpiert oder nicht mehr aktuell ist, erscheint die Meldung „HTTP-Bad-Request“.

Um den fehlerhaften Eintrag zu beseitigen, müssen Sie den kompletten DNS-Cache löschen. Dafür rufen Sie unter Windows die Eingabeaufforderung auf und geben den Befehl zum Leeren des Caches ein:

                ipconfig /flushdns

Für Mac-Systeme ist der Befehl abhängig von der OS-Version. Alle Befehle geben Sie über das Terminal ein:

  • OS X 10.4 (Tiger): lookupd -flushcache
  • OS X 10.5 (Leopard): dscacheutil -flushcache
  • OS X 10.6 (Snow Leopard): dscacheutil - flushcache
  • OS X 10.7 (Lion): sudo killall -HUP mDNSResponder
  • OS X 10.8 (Mountain Lion): sudo killall -HUP mDNSResponder
  • OS X 10.9 (Mavericks): dscacheutil -flushcashe; sudo killall -HUP mDNSResponder
  • OS X 10.10 (Yosemite) (10.10.1 – 10.10.3): sudo discoverutil udnsflashcaches
  • OS X 10.10 (Yosemite) (10.10.4+): sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
  • OS X 10.11 (El Capitan): sudo killall -HUP mDNSResponder
  • macOS 10.12 (Sierra): sudo killall -HUP mDNSResponder

Probleme mit HTTP-Headerfeldern

Als Internetnutzer: Cookies löschen und Browser zurücksetzen

Zu dem Fehler HTTP 400 kommt es auch dann, wenn der HTTP-Header zu lang ist. Prinzipiell haben Header keine Größenbegrenzung. Es kann jedoch sein, dass der Ziel-Server ein Limit gesetzt hat. Der Header besteht aus mehreren Feldern, in denen Anfragen und Antworten definiert sind. Wenn beide digitalen Gesprächsteilnehmer die Parameter abgeglichen haben, werden die angeforderten Daten ausgetauscht. Funktioniert dies nicht, kommt es zu einer Fehlermeldung. Da es sich um eine Kommunikation zwischen Ihrem Browser und dem Webserver handelt und 400er-Fehler im Regelfall durch Probleme mit dem Client entstehen, ist wahrscheinlich der Browser für den Fehler verantwortlich. Der beste Weg, um zu testen, ob Ihr Standardbrowser das Problem erzeugt: Wechseln Sie temporär zu einem anderen Browser.

Sollte der Seitenaufruf in Ihrem Test-Browser funktionieren, wechseln Sie wieder zu Ihrem favorisierten Webbrowser. Dort löschen Sie in einem ersten Schritt Ihre Cookies (falls Sie das nicht ohnehin bereits in einem vorherigen Problemlösungsversuch getan haben). Diesmal löschen Sie aber nicht nur gezielt einen Cookie, sondern sicherheitshalber alle. Der Grund: Innerhalb des Headers werden Cookies mitübertragen, denn so erfährt der Webserver von Ihrem vorherigen Besuch. Sollte der Browser zu viele der Einträge in die Anfrage aufnehmen, könnte der Header das Längen-Limit überschreiten.

Ist dieser Lösungsversuch nicht erfolgreich, ist es sinnvoll, den Browser entweder komplett neu zu installieren oder auf die Werkseinstellung zurückzusetzen. Abhängig von Ihrem Browser gibt es für das Zurücksetzen unterschiedliche Wege. In Firefox wechseln Sie durch die Eingabe about:support zum Hilfsbereich zur Fehlerbehebung. Hier finden Sie übrigens auch zahlreiche Infos, die Ihnen dabei helfen, Fehler in der Software aufzudecken. Auch wenn Sie Kontakt zu einem Support-Team aufnehmen, sind diese Daten wichtig. Auf der Seite sehen Sie aber auch einen Knopf, mit dem Sie „Firefox bereinigen“ können. Ein Klick sichert erst Ihre derzeitigen Einstellungen und löscht dann die Erweiterungen und viele Einstellungen.

Im Internet Explorer finden Sie in den Internetoptionen unter dem Reiter „Erweitert“ den Button „Zurücksetzen“ oder (unter IE 6) „Standard wiederherstellen“. Der Microsoft-Browser lässt Ihnen die Wahl, ob Sie beim Zurücksetzen auch Ihre persönlichen Einstellungen löschen möchten. Da der Internet Explorer zu diesen Einstellungen auch Cache und Cookies zählt, empfiehlt es sich, diese ebenfalls zu löschen.

Bei Chrome finden Sie die Funktion zum Zurücksetzen in den Systemeinstellungen. Der Browser behält Ihre persönlichen Daten wie gespeicherte Passwörter und den Verlauf, setzt aber ansonsten alles auf den Werkzustand zurück. Schließen Sie den Browser und starten Sie ihn erneut, damit die Änderungen wirksam werden.

Als Webmaster: Limits hochsetzen

Wenn Sie selbst Webmaster sind und sich Besucher über den Error-Code-400 beschwert haben, dann hilft eventuell eine Änderung der Servereinstellungen. Damit Internetnutzer die Fehlermeldung nicht mehr aufgrund eines übergroßen HTTP-Headers angezeigt bekommen, können Sie das Limit hochsetzen. Sie sollten sich aber darüber bewusst sein, dass Sie mit höheren Limits auch das Risiko auf schadhafte Anfragen erhöhen. Die Internet Engineering Task Force (IETF) ist in ihrer Dokumentation zu HTTP 1.1 auch auf 400 Bad Request als Thema eingegangen und hat auf das Risiko von zu hohen Limits (Smuggling Attacks) hingewiesen:

Zitat

„A server that receives a request header field, or set of fields, larger than it wishes to process MUST respond with an appropriate 4xx (Client Error) status code. Ignoring such header fields would increase the server's vulnerability to request smuggling attacks (Section 9.5).”

Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing

Sie möchten das Limit trotzdem hochsetzen? Jeder Webserver hat dafür eine eigene Methode. Bei IIS (mit ASP.NET) ändern Sie zum Beispiel „maxRequestLength“ und „maxAllowedContentLength“. Bei Apache hingegen legen Sie mit „LimitRequestFieldSize“ die Begrenzung fest.

Kontakt aufnehmen

Leider kann es passieren, dass keine der vorgestellten Problemlösungsvarianten zu einem Ziel führt. Dann sollten Sie Hilfe an anderer Stelle suchen. Dafür haben Sie prinzipiell zwei Ansprechpartner, abhängig davon ob Sie den HTTP-400-Error nur auf einer bestimmten Seite angezeigt bekommen oder auf vielen beziehungsweise allen Websites. Sollte der Fehler nur auf einer bestimmten Seite auftauchen, und die bisherigen Versuche zur Behebung nicht fruchten, können Sie den Webmaster der Seite kontaktieren – oder es zumindest versuchen. Im anderen Fall (Sie können nicht mehr regulär Surfen, denn permanent wird Ihnen der Bad Request 400 angezeigt) sollten Sie sich mit Ihrem Internetprovider in Verbindung setzen. Selbst wenn das Problem nicht tatsächlich beim Provider liegt, kann das Support-Team Ihnen eventuell helfen.

In beiden Situationen liefern Sie Ihren Ansprechpartnern idealerweise so viele Informationen, wie Sie können. Das umfasst zum einen alle Versuche, die Sie bisher unternommen haben, um das leidige Problem aus der Welt zu schaffen. Zum anderen geben Sie auch Daten zu Ihrem System mit an: Welches Betriebssystem verwenden Sie? Welchen Browser benutzen Sie zum Surfen im Internet? Haben Sie Erweiterungen für diesen installiert? Benutzen Sie eine Firewall oder gehen Sie über einen Proxy ins Internet? All diese Informationen helfen sowohl dem Support-Team als auch einem Webmaster beim Lösen des Problems. So können Sie bald wieder ungestört durchs Internet surfen, ohne dass Ihnen Fehler „400“ angezeigt wird.

Protokolle HTTP