← Tüm yazılar

HTTP Hataları Sözlüğü: Sunucu Size Ne Anlatmaya Çalışıyor?

7 Şubat 2026 · Atakan Güloğlu

3 dk okuma~584 kelime·RSS ile takip et
Paylaş:
HTTP Hataları Sözlüğü: Sunucu Size Ne Anlatmaya Çalışıyor?

4xx hataları "İstek hatalı, parametrelerini veya yetkini kontrol et" derken; 5xx hataları "Sunucu veya kod tarafında bir şeyler patladı, loglara bak" mesajını verir. Kısacası; 400’lü kodlarda Frontend’i, 500’lü kodlarda ise Backend’i ve Sunucu ayarlarını sorgulamalısınız.

ASP.NET Core MVC ve Web API Projelerinde Karşılaşılan Tüm Hata Kodları

Bir web geliştiricisi için hayat, 200 (OK) ve diğerleri arasında geçer. Local’de her şey yolundayken, yayına çıktığınızda karşınıza çıkan o 3 haneli sayılar aslında uygulamanızın "yardım çığlığıdır."

Hangi kod ne anlama geliyor, suçu kimde aramalıyız? Gelin, HTTP hata kodlarının dilini çözelim.


1. 4xx Serisi: "Top Sende (İstemci Hataları)"

400 ile başlayan hatalar genellikle istemciden (tarayıcı, mobil uygulama veya Postman) gelen isteğin hatalı olduğunu söyler.

400 - Bad Request (Anlamadım!)

En gıcık hata kodlarından biridir. Sunucu isteği aldı ama "Sen ne diyorsun?" diyor.

  • Neden olur? Gönderdiğiniz JSON bozuk olabilir veya Backend'deki Model ile gönderdiğiniz veri tipi uyuşmuyordur (Örn: Sayı beklenen yere "yedi" yazmak).

  • Çözüm: Controller içindeki ModelState.IsValid kontrolünü debug ederek hangi alanın validasyondan geçmediğine bakın.

401 - Unauthorized (Kimsin Sen?)

"Giriş yapmadan buraya giremezsin" hatasıdır.

  • Neden olur? JWT Token eksiktir, süresi dolmuştur veya Cookie oturumu sonlanmıştır.

403 - Forbidden (Giremezsin!)

Sunucu kim olduğunuzu biliyor ama "Yetkin yok" diyor.

  • Neden olur? Sisteme giriş yaptınız ama 'Admin' değilsiniz ve 'Admin' sayfasına girmeye çalışıyorsunuz. Ya da IIS'te klasör izinleriniz eksik.

404 - Not Found (Aradım, Bulamadım)

Web dünyasının en popüler hatası.

  • Neden olur? Yanlış bir URL, hatalı bir Route tanımı veya Controller ismindeki bir harf hatası.

  • Tüyo: ASP.NET Core MVC'de bazen Controller çalışsa bile ilgili .cshtml dosyası (View) bulunamazsa da 404 dönebilir.

405 - Method Not Allowed (Yanlış Kapı)

  • Neden olur? Bir Action sadece [HttpPost] kabul ediyordur ama siz ona tarayıcıdan (GET) gitmeye çalışıyorsunuzdur.

409 - Conflict (Çakışma Var!) Sunucu diyor ki: "İsteğini anladım ama içerideki verilerle kavga ediyor."

  • Neden olur? Genelde aynı veriden iki tane eklemeye çalıştığınızda (Örn: Zaten kayıtlı olan bir e-postayı tekrar kaydetmek) veya veritabanındaki bir versiyon çakışmasında yaşanır.

  • Çözüm: Kayıt işleminden önce "Bu veri zaten var mı?" kontrolü ekleyin.

415 - Unsupported Media Type (Bunu Tanımıyorum!) "Bana gönderdiğin veri tipini desteklemiyorum" hatası.

  • Neden olur? API’ye JSON beklerken yanlışlıkla XML gönderdiniz veya isteğin Content-Type header’ını boş bıraktınız.

  • Çözüm: İstek atarken header kısmına application/json eklediğinizden emin olun.

429 - Too Many Requests (Yavaşla Biraz!) Hız sınırı (Rate Limit) hatasıdır.

  • Neden olur? Kısa süre içinde sunucuyu isteğe boğdunuz. Sunucu kendini korumaya alıp "Biraz bekle, sonra gel" diyor.

  • Tüyo: Eğer API entegrasyonu yapıyorsanız, bu hatayı aldığınızda döngüyü durdurup bekletmeniz gerekir; yoksa IP’niz tamamen engellenebilir.


2. 5xx Serisi: "Benim Hatam (Sunucu Hataları)"

500'lü kodlar gördüğünüzde bilin ki sunucu tarafında (yani kodunuzda) işler fena karışmış.


🔥 500 - Internal Server Error (Kıyamet Koptu!) İşte o meşhur, her şeyi griye boyayan hata. Kodun içinde bir yerlerde Exception patladı ama kimse yakalamadı.

  • Neden olur? Genelde o meşhur NullReferenceException. Yani kodda boş olan bir objeye erişmeye çalışıyorsunuzdur.

  • Çözüm: Debug yaparken app.UseDeveloperExceptionPage() modunun açık olduğundan emin olun veya sunucu loglarına (stdout) mutlaka bakın.

🔥 502 - Bad Gateway (Aradaki Bağlantı Koptu!) Genellikle IIS ve Kestrel arasındaki iletişim koptuğunda görülür.

  • Neden olur? Arkadaki .NET uygulaması çökmüş veya kapanmış olabilir, IIS ise önde tek başına kalmıştır.

  • Çözüm: IIS üzerinden Application Pool’un çalışıp çalışmadığını kontrol edin.

🔥 503 - Service Unavailable (Dükkan Kapalı!) Sunucu şu an isteklere cevap verecek durumda değil.

  • Neden olur? Sunucu aşırı yüklenmiş olabilir veya manuel olarak bakıma alınmıştır.

  • IIS Notu: Uygulama havuzunuz (App Pool) sürekli çöktüğü için kendini "Stopped" durumuna çektiyse tarayıcıda direkt bu kodu görürsünüz.


3. Yayılımcı Notu: Hataları Nasıl Yönetmeliyiz?

Hataları sadece kullanıcıya göstermek yetmez, onları yönetmek gerekir. ASP.NET Core MVC projelerinde mutlaka bir Global Exception Handling yapısı kurmalısınız.

Örnek bir hata yakalama middleware yapılandırması:



Sonuç

Hata kodları bizim düşmanımız değil, navigasyonumuzdur. 400 aldığınızda frontend ekibini, 500 aldığınızda ise kendinizi sorgulayın. 


Yorumlar