Što je 400 Bad Request greška?
Statusni kod 400 Bad Request znači da poslužitelj ne može obraditi zahtjev zbog greške na strani klijenta. Poslužitelji ovu grešku najčešće vraćaju kada utvrde da je zahtjev neispravan, pogrešno oblikovan ili sadrži nevažeće podatke.
Najčešći uzroci uključuju nepravilno formatirane zahtjeve, prevelike zaglavlja ili kolačiće, oštećene kolačiće, nevažeće poruke zahtjeva, a u nekim slučajevima i probleme u konfiguraciji poslužitelja.
Greška 400 Bad Request pripada 4xx seriji HTTP statusnih kodova, koja označava pogreške na strani klijenta:
- 4 – označava pogrešku klijenta
- xx – daje dodatne informacije o vrsti pogreške
Ostale česte 4xx greške uključuju:
- 403 Forbidden – Poslužitelj razumije zahtjev, ali odbija autorizaciju
- 404 Not Found – Zatraženi resurs ne postoji na poslužitelju
- 410 Gone – Zatraženi resurs trajno je uklonjen
- 451 Unavailable for Legal Reasons – Resurs nije dostupan zbog zakonskih ograničenja

Najčešći uzroci greške 400 Bad Request
Budući da je greška 400 općenita klijentska greška, ponekad je teško točno odrediti uzrok. Ipak, najčešći razlozi uključuju:
1. Prevelika veličina zahtjeva
Poslužitelji često imaju ograničenja na veličinu zahtjeva koje mogu obraditi. Ako zahtjev premaši to ograničenje, poslužitelj ga može odbiti i vratiti grešku 400.
Na primjer, ako poslužitelj dopušta upload do 5 MB, pokušaj slanja datoteke od 10 MB može rezultirati greškom 400.
2. Neispravno oblikovan URL
Neispravan (malformed) URL sadrži sintaktičke pogreške poput nedostajućih, nevažećih ili nepodržanih znakova.
Primjeri neispravnih URL-ova:
- yourdomain..com (dvije točke)
- yourdomain.com/best yoga (razmak)
Takvi URL-ovi najčešće uzrokuju grešku 400 Bad Request.
3. Nepodržane HTTP metode
Poslužitelji podržavaju samo određene HTTP metode. Najčešće metode poput GET, POST, PUT i DELETE podržane su na većini poslužitelja.
Ako klijent pokuša koristiti HTTP metodu koju poslužitelj ne prepoznaje ili ne podržava, može doći do greške 400.
Primjerice, neke konfiguracije podržavaju metodu PURGE, dok je mnogi poslužitelji ne podržavaju.
4. Oštećeni kolačići (cookies)
Kolačići se koriste za pohranu sesijskih podataka i drugih informacija između klijenta i poslužitelja. Ako su kolačići oštećeni, skraćeni ili sadrže nevažeće znakove, poslužitelj može odbiti zahtjev i vratiti grešku 400.
5. Problemi s DNS-om (Domain Name System)
Iako DNS rijetko izravno uzrokuje grešku 400, problemi s DNS-om mogu joj pridonijeti.
Primjeri uključuju:
- Nepravilno formatirane DNS zahtjeve
- Nemogućnost poslužitelja da stupi u kontakt s DNS poslužiteljem
- Privremene poteškoće u radu DNS poslužitelja
6. Problemi u konfiguraciji poslužitelja
U nekim slučajevima problem može biti u samom poslužitelju. Pogrešne postavke rutiranja, obrade zahtjeva ili sigurnosnih pravila mogu uzrokovati grešku 400 čak i kada je zahtjev ispravno poslan.
Kako riješiti grešku HTTP 400 Bad Request
Rješenje ovisi o uzroku greške, ali sljedeći koraci mogu pomoći u rješavanju najčešćih problema:
1. Očistite kolačiće preglednika
Oštećeni kolačići čest su uzrok greške 400. Očistite kolačiće i cache preglednika te ponovno pokušajte otvoriti stranicu.
2. Provjerite i ispravite URL
Pažljivo provjerite URL radi tipfelera i sintaktičkih pogrešaka poput razmaka, nedostajućih kosa crta ili pogrešnih domena. URL mora biti pravilno formatiran.
Posebne znakove potrebno je ispravno enkodirati (UTF-8):
- Razmak → %20
- & → %26
- = → %3D
- ? → %3F
Primjer:
yourdomain.com/yoga poses → yourdomain.com/yoga%20poses
3. Uklonite nevažeće znakove
Provjerite zahtjev i uklonite sve nevažeće ili pogrešno formatirane znakove u URL-ovima, zaglavljima i tijelu zahtjeva. Korištenje standardnih znakova i pravilne enkodacije smanjuje mogućnost pojave greške 400.
4. Smanjite veličinu zahtjeva
Provjerite dokumentaciju poslužitelja kako biste saznali maksimalnu dopuštenu veličinu zahtjeva. Po potrebi smanjite veličinu datoteka kompresijom, uklanjanjem nepotrebnih podataka ili dijeljenjem zahtjeva na manje cjeline.
5. Koristite podržane HTTP metode
Provjerite koristi li zahtjev HTTP metodu koju poslužitelj podržava za određeni endpoint. Pregledajte API ili poslužiteljsku dokumentaciju i po potrebi prilagodite zahtjev.
6. Uključite sva potrebna HTTP zaglavlja
Provjerite sadrži li zahtjev sva obavezna HTTP zaglavlja, poput Authorization ili Content-Type, ako su potrebna. Informacije o potrebnim zaglavljima pronađite u dokumentaciji poslužitelja.
7. Provjerite i ispravite probleme na poslužitelju
Ako se greška 400 i dalje pojavljuje unatoč ispravnim klijentskim zahtjevima, potrebno je provjeriti konfiguraciju poslužitelja. Pregledajte pravila rutiranja, postavke obrade sadržaja i sigurnosna ograničenja koja mogu sprječavati obradu valjanih zahtjeva.
