İletişim

500 Internal Server Error Nedir?

Kısa tanım

500 Internal Server Error, sunucunun isteği yerine getirmesini engelleyen beklenmedik bir durumla karşılaştığını bildiren genel HTTP hata kodudur. Daha belirli bir 5xx kodu uymadığında kullanılır ve sorunun istemcide değil sunucu tarafında olduğunu söyler. Google 500 aldığında siteyi daha yavaş tarar; hata sürerse dizindeki URL'ler sonunda dizinden düşer.

Diğer adları: HTTP 500, 500 hatası, sunucu hatası, iç sunucu hatası

Sunucu tarafında yakalanmayan bir veritabanı hatasının kayda yazıldığı ve tarayıcıya 500 Internal Server Error olarak döndüğü istek akışı

“Bir şeyler bozuldu” kodu ve yakın akrabaları

500, sunucunun kendi içinde beklenmedik bir şeyle karşılaştığını söyler ama ne olduğunu söylemez. Bu yüzden teşhiste ilk iş, gerçekten 500 mü yoksa daha belirli bir 5xx kodu mu döndüğüne bakmaktır; her biri farklı bir katmanı işaret eder:

KodGenellikle anlamıİlk bakılacak yer
500Uygulama ya da sunucu yapılandırması isteği işlerken çöktüUygulama hata günlüğü
502Ağ geçidi ya da proxy, arkasındaki sunucudan geçersiz yanıt aldıProxy günlüğü, uygulama süreci ayakta mı
503Hizmet geçici olarak kullanılamıyor (bakım, aşırı yük)Bakım modu, kapasite
504Proxy, arkadaki sunucudan zamanında yanıt alamadıYavaş sorgular, zaman aşımı ayarları

Hatanın izini sürmek

  1. Yeniden üretin: curl -sI URL ile hatanın her istekte mi, belirli parametrelerle mi, yoksa yalnızca yük altında mı oluştuğunu ayırın.
  2. Zaman damgasıyla günlüğe gidin: Web sunucusu erişim günlüğündeki 500 satırını bulun, aynı saniyedeki uygulama hata kaydına geçin. Yığın izi (stack trace) çoğu zaman sorunu doğrudan gösterir.
  3. İstek kimliği kullanın: Proxy'nin her isteğe eklediği ve uygulamanın kendi günlüğüne yazdığı bir X-Request-ID başlığı, katmanlar arasındaki kayıtları birleştirir. Bu, loglama ve dağıtık izleme düzeninin temelidir.
  4. Son değişikliğe bakın: Hatalar çoğunlukla bir yayından hemen sonra başlar: eksik bir ortam değişkeni, çalışmayan bir veritabanı göçü, sözdizimi hatalı bir .htaccess satırı, bellek sınırı. Sebep hemen bulunamıyorsa önceki sürüme dönmek, araştırmaya zaman kazandırır.

Kullanıcıya ne gösterilmeli?

Hata sayfası sade olmalı: bir sorun olduğunu, ekibin haberdar olduğunu ve kullanıcının ne yapabileceğini söylemeli. Yığın izi, dosya yolları, SQL sorguları ya da sürüm bilgisi asla yanıtın içinde gösterilmemelidir; bu ayrıntılar saldırganlara sistem hakkında bilgi verir ve yalnızca sunucu tarafındaki günlükte kalmalıdır. Sayfanın durum kodu da 500 olarak kalmalıdır; hata ekranını 200 ile göstermek, izleme sistemlerini ve arama motorlarını yanıltır.

Googlebot 500 aldığında

Google, 500 yanıtlarında sitenin tarama hızını düşürür ve bu düşüş, sunucu hatası veren farklı URL sayısıyla orantılıdır. Dizindeki URL'ler bir süre korunur, ancak hatayı sürekli döndüren URL'ler sonunda dizinden çıkarılır. Sunucu yeniden 2xx yanıt vermeye başladığında tarama hızı kademeli olarak eski seviyesine döner.

En kritik durum, robots.txt dosyasının 5xx döndürmesidir: Google ilk 12 saat siteyi taramayı durdurur, sonraki 30 gün son başarılı kopyayı kullanır. Yani yalnızca bu tek dosyadaki hata, sitenin tamamının taranmasını bir süreliğine kesebilir. Planlı bakım için 500 değil 503 kullanılmalı; Google'ın her kodu nasıl işlediği Google Search Central belgesinde yer alır.

İlgili terimler

← Sözlüğe dön