Bloga geri dön

HTTP status kodları açıklandı: 200, 404, 502 izleme için ne anlama gelir

· 6 dk okuma

Kısaca: HTTP status kodu, sunucunun her isteğe yanıt verdiği üç haneli bir sayıdır. Grup kategoriyi söyler: 2xx = OK, 3xx = redirect, 4xx = istemci hatası, 5xx = sunucu hatası. Uptime izleme perspektifinden bizi en çok 5xx ve 4xx anomalileri ilgilendirir.

Kısaca: HTTP status kodu, sunucunun her isteğe yanıt verdiği üç haneli bir sayıdır. Grup kategoriyi söyler: 2xx = OK, 3xx = redirect, 4xx = istemci hatası, 5xx = sunucu hatası. Uptime izleme perspektifinden bizi en çok 5xx ve 4xx anomalileri ilgilendirir.

Yanıt kategorileri

  • 1xx Informational - geçici yanıtlar, istemci genellikle fark etmez.
  • 2xx Success - istek başarıyla tamamlandı. 200 OK varsayılandır.
  • 3xx Redirection - istemci başka yere gitmeli. 301 permanent, 302 geçici.
  • 4xx Client errors - istemci yanlış bir şey gönderdi. 404, 401, 403, 429.
  • 5xx Server errors - sunucu başarısız oldu. 500, 502, 503, 504.

2xx: başarı

200 OK - standart OK yanıtı. İzlediğiniz "healthy" durum budur.

201 Created - genellikle yeni bir resource yaratan POST'a yanıt. API istemcileri bunu bekler.

204 No Content - başarı ancak sunucunun döndürecek bir şeyi yok. DELETE endpoint'leri sıkça kullanır.

206 Partial Content - sunucu yalnızca bir parça döndürdü (range request). Video streaming veya resumable download'da.

3xx: yönlendirme

301 Moved Permanently - URL kalıcı olarak değişti. Google SEO equity'i yeni URL'ye taşır. Domain göçü, HTTP'den HTTPS'ye geçiş, www/non-www geçişinde kullanın.

302 Found / 307 Temporary Redirect - geçici yönlendirme. Google ranking taşımaz. A/B testing, bakım veya URL zamanla geri geleceğinde kullanın.

308 Permanent Redirect - 301 gibi ama HTTP metodunu korur (POST POST kalır). 301 istemci tarafından GET'e dönüştürülebilir.

304 Not Modified - istemcinin cache'i var, sunucu içeriğin değişmediğini onaylar. Bandwidth tasarrufu.

İzleme için: 3xx yanıtları kontrol ederken monitor'un redirect'i takip mi etmeli (follow) yoksa hata olarak mı kabul etmeli diye yapılandırın. Bazı DNS hijack saldırıları beklenmedik 302 olarak görünür.

4xx: istemci tarafı hatası

400 Bad Request - istekte sözdizimi hatası. Malformed JSON, eksik header vb.

401 Unauthorized - eksik veya kötü credentials. İstemci kimlik doğrulaması yapmalı.

403 Forbidden - istemci kimlik doğrulamış ama izni yok. Dikkat: bazı sunucular güvenlik nedeniyle 401 yerine 403 döner (resource'un varlığını açığa çıkarmamak).

404 Not Found - URL yok. İzleme için önemsiz, SEO için önemli (link equity sızar).

405 Method Not Allowed - URL var ama verilen metodu kabul etmiyor (örn. GET bekleyen endpoint'e POST).

408 Request Timeout - sunucu isteği çok bekledi ve bağlantıyı kapattı.

409 Conflict - istek mevcut durumla çatışıyor (örn. artık güncel olmayan bir sürümün update'i).

410 Gone - resource kalıcı olarak kaldırıldı. Google için 404'ten daha iyi (yeniden indexlemeye çalışmama sinyali).

422 Unprocessable Entity - istek sözdizimsel olarak OK ancak anlamsal olarak geçersiz veri içerir (failed validation).

429 Too Many Requests - rate limit. İstemci yavaşlamalı. Sunucu tipik olarak Retry-After header ekler.

5xx: sunucu tarafı hatası

500 Internal Server Error - jenerik hata. Backend uygulamanın yakalamadığı bir exception fırlattı. İzleme için her zaman alarm.

501 Not Implemented - sunucu HTTP metodunu bilmiyor (örn. eski sunucu PATCH desteklemiyor).

502 Bad Gateway - reverse proxy (nginx, Cloudflare) backend sunucudan yanıt almadı. Tipik olarak backend düştü veya timeout oldu.

503 Service Unavailable - sunucu aşırı yüklü veya bakımda. Sıklıkla Retry-After header ile. Bu planlı bir yanıttır, crash değil.

504 Gateway Timeout - reverse proxy backend'i timeout'tan daha uzun bekledi. Backend genellikle hâlâ çalışıyor, sadece yavaş.

520-525 Cloudflare errors - Cloudflare'e özel. 520 = backend okunamaz bir şey döndürdü, 522 = backend yanıt vermedi (connection timeout), 524 = backend çok yavaş yanıt verdi (origin timeout).

Alerting için pratik kurallar

  • Anında uyarı: 500, 502, 503 (gerçek planlı bakım değilse), 504, herhangi bir timeout
  • Tekrar uyarısı: tek seferlik 5xx race condition olabilir; aynı endpoint 2× üst üste düşerse uyarı
  • Yükseliş trendini izleyin: uzun vadeli 4xx büyümesi broken link, scraper attack veya bozuk frontend anlamına gelebilir
  • Alerting için yoksay: beklenen aralıkta 200-399 (kod yerine response time izleyin)

Status kodu + response time = tam görüntü

Yalnızca status kodunu izlemek yetmez - sunucu 200 dönebilir ama 30 saniyede, ki bu müşteri perspektifinden bir kesintidir. Kaliteli izleme şunları birleştirir:

  1. Beklenen status kodu (tipik 200)
  2. Maksimum response time (tipik 5-10 saniye)
  3. İçerikte keyword match (HTML'de olması gereken anahtar kelime)
  4. SSL geçerli + geçerlilik bitimi öncesi değil

Herhangi birinin başarısızlığı = uyarı.

Hassas hata sınıflandırması ile izleme

ePulz.io status kodu, response time, keyword match ve SSL durumunu ayırt eder. Her kontrol için log'lar.

7 gün dene →


ePulz.io'yu ücretsiz deneyin - 7 gün, kredi kartı gerekmez.

Hesap oluştur