Co to jest błąd 400 Bad Request i jak go naprawić (Kompletny przewodnik)
Błąd 400 Bad Request to kod stanu HTTP, który informuje, że serwer otrzymał Twoją prośbę, ale odmówił jej przetworzenia — nie z powodu awarii po stronie serwera, ale dlatego, że coś w samej prośbie było źle sformatowane, nieprawidłowe lub uszkodzone. Niezależnie od tego, czy jesteś zwykłym użytkownikiem, który napotkał nieoczekiwaną przeszkodę, czy administratorem systemu diagnozującym błędnie skonfigurowany serwer, zrozumienie tego błędu jest niezbędne do szybkiego i efektywnego rozwiązywania problemów.
Ten kompleksowy przewodnik obejmuje każdą przyczynę, każde rozwiązanie i każdy scenariusz — od prostych błędów w adresach URL do głębokich błędów konfiguracji serwera.
Co oznacza błąd 400 Bad Request?
W protokole HTTP kody stanu w zakresie 4xx wskazują błędy po stronie klienta. 400 konkretnie oznacza, że serwer zrozumiał format prośby, ale uznał ją za składniowo niepoprawną lub w inny sposób niemożliwą do przetworzenia, zanim nawet spróbuje ją spełnić.
Typowe warianty komunikatu błędu 400
W zależności od serwera, frameworka lub CDN w użyciu, możesz zobaczyć ten błąd wyświetlony jako:
400 Bad RequestBad Request – Invalid URLHTTP Error 400400. That's an error.400 Bad Request. The server cannot or will not process the request due to a client error.Invalid request
Wszystkie wskazują na tę samą przyczynę: klient wysłał coś, czego serwer nie mógł zaakceptować.
Co powoduje błąd 400 Bad Request?
Zanim przejdziesz do rozwiązań, ważne jest zrozumienie podstawowych przyczyn. Błąd 400 może być wyzwolony przez zaskakująco szeroki zakres problemów:
| Przyczyna | Opis |
|---|---|
| Źle sformatowana składnia URL | Brakujące znaki, dodatkowe symbole lub nieprawidłowo zakodowane znaki specjalne |
| Uszkodzone pliki cookies przeglądarki | Pliki cookies powiązane z witryną stają się nieprawidłowe, powodując odrzucenie sesji przez serwer |
| Przekroczony rozmiar przesyłanego pliku | Przesyłany plik przekracza skonfigurowany na serwerze maksymalny limit rozmiaru |
| Nieprawidłowe nagłówki żądania | Nieprawidłowo sformatowane lub nieobsługiwane nagłówki HTTP wysłane z żądaniem |
| Nieaktualny cache DNS | Nieaktualne rekordy DNS wskazujące na błędny lub nieistniejący adres IP |
| Brakujące lub nieprawidłowe parametry zapytania | Wymagane parametry URL są nieobecne, źle sformatowane lub nieprawidłowo zakodowane |
| Wadliwe rozszerzenia przeglądarki | Rozszerzenia, które modyfikują żądania HTTP, mogą uszkodzić nagłówki lub wstrzyknąć nieprawidłowe dane |
| Błędna konfiguracja serwera | Błędy w .htaccess, konfiguracji Nginx lub regułach wtyczki bezpieczeństwa, które odrzucają prawidłowe żądania |
Jak naprawić błąd 400 Bad Request: Krok po kroku
1. Sprawdź adres URL pod kątem błędów pisowni i składni
Źle sformatowany adres URL jest najczęstszą przyczyną błędu 400 i to pierwsza rzecz, którą powinieneś sprawdzić. Nawet jeden błędnie umieszczony znak może sprawić, że żądanie będzie nieczytelne dla serwera.
Na co zwrócić uwagę:
- Błędy pisowni w domenie lub ścieżce
- Podwójne ukośniki (
//) gdzie nie powinny się pojawić - Niezakodowane znaki specjalne — spacje, nawiasy lub ampersandy, które nie zostały zakodowane w URL
- Uszkodzone ciągi zapytań z brakującymi znakami
=lub separatorami&
Praktyczny przykład:
Adres URL taki jak https://example.com/search?q=hello world zawiera niezakodowaną spację, która jest nieprawidłowa. Prawidłowa, prawidłowo zakodowana wersja to:
https://example.com/search?q=hello%20worldZawsze dokładnie sprawdź adres URL na pasku adresu przeglądarki, zanim założysz, że problem jest głębszy.
2. Wyczyść cache i pliki cookies przeglądarki
Uszkodzone lub nieaktualne pliki cookies i buforowane pliki są wiodącą przyczyną błędów 400, szczególnie na stronach, które już wcześniej odwiedzałeś. Przeglądarka może wysyłać buforowany, teraz nieprawidłowy plik cookie, który serwer natychmiast odrzuca.
W Google Chrome:
- Kliknij menu trzech kropek (⋮) w prawym górnym rogu.
- Przejdź do Więcej narzędzi → Wyczyść dane przeglądania.
- Zaznacz Pliki cookies i inne dane witryn oraz Obrazy i pliki w pamięci podręcznej.
- Kliknij Wyczyść dane.
W Mozilla Firefox:
- Kliknij menu hamburgera (☰) i przejdź do Ustawień.
- Wybierz Prywatność i bezpieczeństwo.
- W sekcji *Pliki cookies i dane witryn* kliknij Wyczyść dane.
- Zaznacz obie opcje i kliknij Wyczyść.
W Safari (macOS):
- Kliknij Safari na pasku menu i przejdź do Preferencje → Prywatność.
- Kliknij Zarządzaj danymi witryn, a następnie Usuń wszystko.
- Uruchom ponownie Safari i spróbuj ponownie otworzyć adres URL.
Po wyczyszczeniu cache i plików cookies przeładuj stronę i sprawdź, czy błąd się utrzymuje.
3. Opróżnij cache DNS
Twój system operacyjny przechowuje wyniki wyszukiwania DNS lokalnie, aby przyspieszyć przeglądanie. Jeśli te buforowane rekordy staną się nieaktualne lub uszkodzone, mogą skierować Twoją przeglądarkę na błędny serwer — wyzwalając błędy połączenia, w tym odpowiedzi 400.
W systemie Windows:
Otwórz Wiersz polecenia jako Administrator i uruchom:
ipconfig /flushdnsPowinieneś zobaczyć potwierdzenie: *"Pomyślnie opróżniono cache programu rozpoznawania nazw DNS."*
W macOS (Ventura / Monterey / Sonoma):
Otwórz Terminal i uruchom:
sudo killall -HUP mDNSResponderW systemie Linux (systemd-resolved):
sudo systemd-resolve --flush-cachesPo opróżnieniu cache zamknij i otwórz ponownie przeglądarkę, a następnie spróbuj ponownie wysłać żądanie.
4. Sprawdź limity rozmiaru przesyłanego pliku
Jeśli błąd 400 pojawia się konkretnie podczas przesyłania pliku, plik prawie na pewno przekracza skonfigurowany na serwerze maksymalny rozmiar przesyłania. Serwery egzekwują te limity, aby zapobiec nadużyciom i wyczerpaniu zasobów.
Dla użytkowników końcowych:
- Spróbuj skompresować plik przed przesłaniem.
- Podziel duże pliki na mniejsze części, jeśli aplikacja to obsługuje.
- Sprawdź dokumentację witryny pod kątem podanych limitów przesyłania.
Dla administratorów serwera:
W Apache edytuj swój plik .htaccess lub httpd.conf:
LimitRequestBody 104857600*(To ustawia limit na 100MB.)*
W Nginx edytuj swój plik nginx.conf:
client_max_body_size 100M;W PHP zaktualizuj plik php.ini:
upload_max_filesize = 100M
post_max_size = 100MUruchom ponownie serwer WWW po dokonaniu tych zmian.
> Jeśli korzystasz ze środowiska zarządzanego, rozważ uaktualnienie do planu VPS Hosting, gdzie masz pełną kontrolę nad parametrami konfiguracji serwera.
5. Wyłącz rozszerzenia przeglądarki
Rozszerzenia przeglądarki — szczególnie blokery reklam, narzędzia prywatności i modyfikatory żądań — mogą zmieniać nagłówki HTTP w sposób, który czyni żądania nieprawidłowymi. Jeśli niedawno zainstalowałeś nowe rozszerzenie i zacząłeś widzieć błędy 400, to jest prawdopodobnym winowajcą.
W Google Chrome:
- Wpisz
chrome://extensions/na pasku adresu i naciśnij Enter. - Wyłącz wszystkie rozszerzenia.
- Uruchom ponownie Chrome i przetestuj adres URL.
- Włączaj rozszerzenia jedno po jednym, aby wyizolować problematyczne.
W Firefox:
- Wpisz
about:addonsna pasku adresu. - Wyłącz wszystkie rozszerzenia.
- Uruchom ponownie i przetestuj.
Jeśli błąd znika po wyłączeniu rozszerzeń, usuń lub zaktualizuj problematyczne rozszerzenie.
6. Spróbuj innej przeglądarki lub urządzenia
Czasami problem jest całkowicie izolowany do konfiguracji, profilu lub przechowywanych danych Twojej obecnej przeglądarki. Testowanie za pomocą alternatywy szybko eliminuje zmienne specyficzne dla przeglądarki.
Kroki do wykonania:
- Otwórz ten sam adres URL w innej przeglądarce (np. przełącz się z Chrome na Firefox lub Edge).
- Spróbuj uzyskać dostęp do strony z innego urządzenia (telefon, tablet lub inny komputer).
- Połącz się za pośrednictwem innej sieci (np. przełącz się z Wi-Fi na dane mobilne).
Jeśli strona ładuje się poprawnie w innej przeglądarce lub na innym urządzeniu, problem jest lokalny dla Twojej oryginalnej konfiguracji — wróć do kroków 2 i 5.
7. Sprawdź dzienniki serwera (dla właścicieli witryn i administratorów)
Jeśli zarządzasz witryną doświadczającą błędów 400, dzienniki serwera są Twoim najpotężniejszym narzędziem diagnostycznym. Rejestrują dokładne szczegóły każdego żądania i odrzucenia, pozwalając Ci precyzyjnie wskazać przyczynę.
Na co zwrócić uwagę w dziennikach:
- Konkretna linia żądania, która wyzwoliła odpowiedź 400
- Źle sformatowane lub zbyt duże nagłówki żądania
- Nieprawidłowe dane pliku cookie wysyłane
- Żądania zablokowane przez zaporę lub reguły bezpieczeństwa
Typowe lokalizacje dzienników:
| Serwer | Domyślna ścieżka dziennika |
|---|---|
| Apache | /var/log/apache2/error.log lub /var/log/httpd/error_log |
| Nginx | /var/log/nginx/error.log |
| cPanel | Dostępne za pośrednictwem Dzienników błędów na pulpicie nawigacyjnym cPanel |
Jeśli używasz CMS takiego jak WordPress, sprawdź również dziennik debugowania, włączając WP_DEBUG_LOG w pliku wp-config.php:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);> Administratorzy zarządzający wieloma stronami będą korzystać z VPS z cPanel, który zapewnia scentralizowany, przyjazny dla użytkownika interfejs do przeglądania dzienników błędów na wszystkich hostowanych domenach.
8. Sprawdź i napraw błędne konfiguracje serwera
Błędne konfiguracje serwera są powszechnym źródłem błędów 400, które wpływają na wszystkich odwiedzających, a nie tylko na poszczególnych użytkowników. Jeśli Twoje dzienniki pokazują wzorzec błędów 400 na wielu klientach, zacznij tutaj.
Apache — Błędy .htaccess:
Błędy składni w .htaccess mogą spowodować, że Apache odrzuci żądania. Sprawdź poprawność pliku za pomocą:
apachectl configtestPoszukaj linii ze źle sformatowanymi dyrektywami RewriteRule, nieprawidłowymi regułami mod_security lub uszkodzoną logiką przekierowania.
Nginx — Błędy konfiguracji:
Przetestuj konfigurację Nginx przed przeładowaniem:
nginx -tPoszukaj błędnie skonfigurowanych bloków server_name, nieprawidłowych dyrektyw location lub zbyt restrykcyjnych reguł limit_req.
Wtyczki bezpieczeństwa i reguły WAF:
Zapory aplikacji internetowych (WAF) i wtyczki bezpieczeństwa (takie jak Wordfence lub Sucuri) mogą agresywnie blokować prawidłowe żądania, jeśli reguły są błędnie skonfigurowane. Przejrzyj zestaw reguł zapory i umieść na białej liście wszelkie prawidłowe wzorce ruchu, które są nieprawidłowo flagowane.
> W przypadku witryn o dużym ruchu, które wymagają maksymalnej kontroli nad konfiguracją bezpieczeństwa, Serwery dedykowane zapewniają izolowane zasoby i dostęp na poziomie root potrzebny do dostrojenia każdego aspektu Twojego środowiska serwera.
na wszystkich usługach hostingowych