- Konu sahibi
- #1
HTTP 400 hatası, sunucunun gönderilen isteği sunucunun istemci hatası olarak değerlendirdiği bir nedenle işleyemediğini veya işlemeyi reddettiğini belirten “Bad Request” yanıtıdır. Genellikle bozuk URL, hatalı istek gövdesi, geçersiz JSON, eksik veya çakışan başlıklar, desteklenmeyen parametreler ya da sunucunun kabul edemediği istek biçimi nedeniyle oluşur. Aynı istek değiştirilmeden tekrar gönderilirse çoğu durumda hata devam eder.
Bir tarayıcı, form, mobil uygulama veya API istemcisi sunucuya HTTP isteği gönderir. Sunucu; yöntemi, URL'yi, başlıkları, çerezleri ve varsa istek gövdesini kontrol eder. İstek sözdizimi veya içerik beklenen biçimde değilse 400 yanıtı döndürebilir. Bu kod, hatanın mutlaka ziyaretçinin yaptığı bir işlemden kaynaklandığını kanıtlamaz; hatalı istek üreten site kodu veya aradaki bir katman da incelenmelidir.
Örneğin bir API, aşağıdaki gibi geçerli JSON bekliyor olabilir:
Ancak eksik tırnak, hatalı virgül veya geçersiz karakter içeren bir gövde gönderilirse sunucu JSON'u okuyamaz ve 400 döndürebilir. Benzer şekilde URL içindeki bozuk kodlama, beklenmeyen karakterler de 400 üretebilir. İstek boyutu veya biçimi sorunlarında daha özgül kodlar da vardır: uzun adres için 414, büyük gövde için 413, desteklenmeyen içerik türü için 415 görülebilir. Uygulamanın döndürdüğü gerçek kodu ve açıklamayı birlikte okuyun.
Tablodaki nedenler birbirinden tamamen bağımsız değildir. Örneğin yanlış
Sorunun ziyaretçide mi, uygulamada mı, yoksa sunucu yapılandırmasında mı olduğunu ayırmak için şu sırayı izleyin:
400, isteğin kendisinde sorun olduğunu anlatır. 401 kimlik doğrulama gereksinimini, 403 erişim izni reddini, 404 bulunamayan kaynağı ifade eder. 500 ise genellikle sunucunun beklenmeyen bir iç hatayla karşılaştığını gösterir. Bu nedenle 400 gördüğünüzde ilk adım sunucuyu yeniden başlatmak değil, gönderilen isteği incelemektir.
Hata bir reverse proxy veya güvenlik katmanı tarafından üretiliyorsa uygulama günlüğünde kayıt bulunmayabilir. Bu durumda proxy günlükleri, istek boyutu sınırları, izin verilen başlıklar ve URL filtreleri ayrıca kontrol edilmelidir.
Genellikle hayır. Bağlantı tamamen kopuksa HTTP yanıtı alınamayabilir; 400 ise sunucunun bir HTTP isteğini alıp onu geçersiz veya işlenemez bulduğunu gösterir.
Google, 400 döndüren URL'nin içeriğini dizine eklemek için kullanmaz; önceden dizinde olan URL de zamanla kaldırılabilir. Önce hatalı URL'nin neden üretildiğini düzeltin. Hedef içerik başka bir adrese taşındıysa uygun yönlendirmeyi ayrıca değerlendirin.
HTTP 400 nasıl çalışır?
Bir tarayıcı, form, mobil uygulama veya API istemcisi sunucuya HTTP isteği gönderir. Sunucu; yöntemi, URL'yi, başlıkları, çerezleri ve varsa istek gövdesini kontrol eder. İstek sözdizimi veya içerik beklenen biçimde değilse 400 yanıtı döndürebilir. Bu kod, hatanın mutlaka ziyaretçinin yaptığı bir işlemden kaynaklandığını kanıtlamaz; hatalı istek üreten site kodu veya aradaki bir katman da incelenmelidir.
Örneğin bir API, aşağıdaki gibi geçerli JSON bekliyor olabilir:
JSON:
{
"email": "[email protected]",
"username": "demo"
}
Ancak eksik tırnak, hatalı virgül veya geçersiz karakter içeren bir gövde gönderilirse sunucu JSON'u okuyamaz ve 400 döndürebilir. Benzer şekilde URL içindeki bozuk kodlama, beklenmeyen karakterler de 400 üretebilir. İstek boyutu veya biçimi sorunlarında daha özgül kodlar da vardır: uzun adres için 414, büyük gövde için 413, desteklenmeyen içerik türü için 415 görülebilir. Uygulamanın döndürdüğü gerçek kodu ve açıklamayı birlikte okuyun.
HTTP 400 hatasının yaygın nedenleri
| Belirti | Muhtemel neden | İlk kontrol |
|---|---|---|
| Sayfa açılırken 400 | Bozuk veya aşırı uzun URL, hatalı çerez | URL'yi ve site çerezlerini kontrol edin |
| Form gönderirken 400 | Eksik, geçersiz veya beklenmeyen alan | Zorunlu alanları ve veri biçimini inceleyin |
| API isteğinde 400 | Geçersiz JSON, yanlış Content-Type veya parametre | İstek gövdesini ve başlıklarını doğrulayın |
| Yalnızca bazı istemcilerde 400 | Çerez veya istemciye özel başlık sorunu | Gizli sekme ya da farklı istemciyle deneyin |
Content-Type başlığı, aslında doğru görünen bir JSON gövdesinin sunucu tarafından okunamamasına neden olabilir.HTTP 400 hatası nasıl giderilir?
Sorunun ziyaretçide mi, uygulamada mı, yoksa sunucu yapılandırmasında mı olduğunu ayırmak için şu sırayı izleyin:
- Adresteki gereksiz, bozuk veya özel karakterleri kaldırıp URL'yi yeniden oluşturun. Bir parametre kullanılıyorsa değerini doğru biçimde URL kodlayın.
- Sayfayı gizli sekmede veya farklı bir tarayıcıda açın. Hata kayboluyorsa önce eklenti, oturum ve çerez farkını inceleyin. Gerekiyorsa yalnız ilgili sitenin çerezlerini silin; bu işlem oturumunuzu kapatabilir. Gizli sekme sonucu tek başına kesin nedeni göstermez.
- Form gönderiliyorsa zorunlu alanları, e-posta ve sayı gibi biçim kurallarını, dosya türünü ve formun hedef adresini kontrol edin.
- API isteğinde HTTP yönteminin,
Content-Typebaşlığının, yetkilendirme bilgilerinin ve istek gövdesinin API dokümantasyonuyla uyumlu olduğunu doğrulayın. - JSON gönderiyorsanız gövdeyi yerel bir JSON doğrulayıcıyla kontrol edin. Gerçek kişisel verileri veya erişim anahtarlarını herkese açık doğrulayıcılara yapıştırmayın. Eksik tırnak, son virgül, yanlış veri türü ve hatalı karakter kodlamasını düzeltin.
- Site yöneticisiyseniz web sunucusu, ters proxy ve uygulama günlüklerinde 400 yanıtının üretildiği isteği inceleyin. İstek kimliği, URL, yöntem ve hata açıklaması sorunun kaynağını belirlemeye yardımcı olur.
- Sorun yalnızca bir istemcide görülüyorsa çerez, eklenti, proxy veya istemci başlıklarını; tüm istemcilerde görülüyorsa uygulama rotasını, istek ayrıştırmayı ve sunucu kurallarını inceleyin.
400 hatası diğer hatalardan nasıl ayrılır?
400, isteğin kendisinde sorun olduğunu anlatır. 401 kimlik doğrulama gereksinimini, 403 erişim izni reddini, 404 bulunamayan kaynağı ifade eder. 500 ise genellikle sunucunun beklenmeyen bir iç hatayla karşılaştığını gösterir. Bu nedenle 400 gördüğünüzde ilk adım sunucuyu yeniden başlatmak değil, gönderilen isteği incelemektir.
Hata bir reverse proxy veya güvenlik katmanı tarafından üretiliyorsa uygulama günlüğünde kayıt bulunmayabilir. Bu durumda proxy günlükleri, istek boyutu sınırları, izin verilen başlıklar ve URL filtreleri ayrıca kontrol edilmelidir.
Sık sorulan sorular
HTTP 400 hatası internet bağlantısından kaynaklanır mı?
Genellikle hayır. Bağlantı tamamen kopuksa HTTP yanıtı alınamayabilir; 400 ise sunucunun bir HTTP isteğini alıp onu geçersiz veya işlenemez bulduğunu gösterir.
400 hatası SEO açısından ne anlama gelir?
Google, 400 döndüren URL'nin içeriğini dizine eklemek için kullanmaz; önceden dizinde olan URL de zamanla kaldırılabilir. Önce hatalı URL'nin neden üretildiğini düzeltin. Hedef içerik başka bir adrese taşındıysa uygun yönlendirmeyi ayrıca değerlendirin.