HTTP 400 Bad Request
Genel istemci hatası: isteğin kendisiyle ilgili bir şeyler yanlış ve sunucu tahmin yürütmeyi reddediyor.
HTTP 400 ne anlama gelir
HTTP 400 Bad Request, sunucunun isteği okuduğu ve herhangi bir gerçek işlem yapmadan önce geçersiz olarak reddettiği anlamına gelir. Her şeyi kapsayan istemci hatasıdır: hatalı biçimlendirilmiş sözdizimi, geçersiz parametreler, bozuk çerezler veya sunucunun işlemeyi reddettiği başlıklar.
401 veya 403'ün aksine, bir 400 izinler hakkında hiçbir şey söylemez — istek varışta zaten bozuktu. API'ler genellikle hangi alanın doğrulamayı geçemediğini açıklayan bir JSON gövdesi ekler.
400 hatalarının yaygın nedenleri
- İstek gövdesinde hatalı biçimlendirilmiş JSON veya XML (fazladan virgül, yanlış tırnak işaretleri, kesilmiş yük).
- Eksik veya geçersiz sorgu parametreleri, ya da sunucu tarafı doğrulamayı geçemeyen değerler.
- Bozuk veya aşırı büyük çerezler — büyük sitelerde tek bir kullanıcı için kalıcı 400'lerin klasik nedeni.
- Yanlış Content-Type başlığı, bu yüzden sunucu gövdeyi yanlış biçim olarak ayrıştırıyor.
- URL kodlama hataları: sorgu dizesinde kaçışsız boşluklar, tırnak işaretleri veya ASCII olmayan karakterler.
Bir kullanıcı olarak nasıl düzeltilir
- Sayfayı yeniden yükleyin; 400 devam ederse, o site için çerezleri temizleyin — bozuk çerezler en yaygın nedendir.
- URL'de yazım hatası veya kopyala-yapıştır sırasında bozulmuş karakterler olup olmadığını kontrol edin.
- İstekleri yeniden yazan uzantıları dışlamak için bir gizli pencere deneyin.
Bir geliştirici olarak nasıl düzeltilir
- Göndermeden önce JSON yüklerini doğrulayın; sunucunun aldığı tam istek gövdesini günlükleyin.
- Geçersiz alanı adlandıran bir yanıt gövdesi döndürün — çıplak bir 400, herkesin hata ayıklama zamanını israf eder.
- Başlık ve çerez boyutu üzerindeki sunucu sınırlarını kontrol edin (nginx large_client_header_buffers vb.).
- API'niz ikisini ayırt ediyorsa, iyi biçimlendirilmiş ama anlamsal olarak geçersiz girdi için 422 kullanın.
Örnek yanıt
HTTP/1.1 400 Bad Request
Content-Type: application/json
{"error":"validation_failed","field":"email","message":"not a valid address"}SSS
Bir 400 hatası ziyaretçi olarak benim hatam mı?
Genellikle sizin yaptığınız bir şeyden değil, eski çerezlerden veya bozuk bir bağlantıdan kaynaklanır. Site için çerezleri temizlemek çoğu durumu çözer.
400 ile 422 arasındaki fark nedir?
400, isteğin ayrıştırılamadığı veya yapısal olarak geçersiz olduğu anlamına gelir; 422 ise sorunsuz ayrıştırıldığı ama anlamsal doğrulamada başarısız olduğu anlamına gelir. Birçok API her ikisi için de 400 kullanır.
Herkes sorunsuz çalışırken neden bir kullanıcı 400 alıyor?
Neredeyse her zaman, o kullanıcının tarayıcısında sunucunun başlık sınırlarını aşan, aşırı büyük veya bozuk çerezler.