Mehmet

WFN Üye
Konular
1,204
Mesajlar
1,205
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
HTTP 404 hatası, istemcinin istediği URL’ye karşılık gelen kaynağın sunucu tarafından bulunamadığını belirten HTTP yanıtıdır. Örneğin https://example.com/urun/eski-model adresi silinmiş, yanlış yazılmış veya artık o konumda bulunmuyorsa sunucu 404 Not Found döndürebilir. Bu yanıt, tek başına sunucunun çöktüğü anlamına gelmez; çoğu durumda istek sunucuya ulaşmış, fakat istenen kaynak eşleştirilememiştir.

404 yanıtı nasıl oluşur?​


İstemci genellikle bir tarayıcı, arama motoru, API istemcisi veya başka bir sunucudur. İstemci bir HTTP isteği gönderir:

Kod:
GET /blog/eski-yazi HTTP/1.1
Host: example.com

Sunucu URL’yi mevcut bir dosyayla, uygulama rotasıyla veya veritabanındaki bir kayıtla eşleştirmeye çalışır. Eşleşme bulunamazsa şu tür bir yanıt verir:

Kod:
HTTP/1.1 404 Not Found
Content-Type: text/html; charset=UTF-8

Yanıttaki durum satırı teknik sonucu gösterir; gövdede görünen “Sayfa bulunamadı” tasarımı ise kullanıcıya sunulan hata sayfasıdır. Özel bir 404 sayfası hazırlanmış olması, yanıt kodunun otomatik olarak 200 OK yapılmasını gerektirmez. Sayfa bulunamadığında HTTP yanıtının da 404 kalması gerekir.

404, 410 ve soft 404 farkı​


Karar verirken asıl soru, kaynağın geçici olarak mı bulunamadığı, kalıcı olarak mı silindiği veya aslında başka bir sayfayla mı karıştırıldığıdır.
YanıtAnlamıUygun kullanım
404 Not FoundKaynak bulunamadı; geçici mi kalıcı mı olduğu belirtilmiyorYanlış URL, eksik dosya veya durumu kesinleşmemiş kaldırılmış içerik
410 GoneKaynak artık sunulmuyor ve durumun kalıcı olması bekleniyorSüresi bitmiş kampanya veya bilinçli olarak tamamen silinmiş içerik
Soft 404İçerik bulunamadığı hâlde sunucu 200 gibi başarılı bir yanıt döndürüyorKaçınılması gereken hatalı uygulama
Bir makale yeni bir URL’ye taşındıysa 404 veya 410 yerine uygun bir kalıcı yönlendirme kullanılabilir. Kaynağın artık sunulmadığı ve durumun kalıcı olduğu biliniyorsa 410 daha açıklayıcıdır. Durumdan emin değilseniz 404 kullanmak daha doğru yaklaşımdır.

Soft 404’te tarayıcıda hata mesajı görünebilir; ancak HTTP başlığında 200 OK döner. Örneğin uygulama her bilinmeyen URL’yi ana sayfaya yönlendiriyor veya “İçerik bulunamadı” metnini başarılı sayfa olarak sunuyorsa, istemci ile sunucunun verdiği anlam uyuşmaz. Bu durum hata takibini ve otomatik istemci davranışını zorlaştırır.

Bir 404 yanıtını nasıl yorumlamalısınız?​

  1. İstenen URL’yi karakter karakter kontrol edin. Büyük-küçük harf, eksik klasör, yanlış uzantı, gereksiz eğik çizgi ve kodlanmamış özel karakterler sık görülen nedenlerdir.
  2. Kaynak gerçekten taşındıysa eski ve yeni adres arasında anlamlı bir yönlendirme kurun. Alakasız biçimde ana sayfaya yönlendirmek yerine kullanıcıyı aynı içeriğin yeni adresine götürün.
  3. Kaynak silindiyse karar verin: geçici veya belirsiz durum için 404, kalıcı ve geri dönmeyecek silme için 410 kullanın.
  4. İç bağlantıları, menüleri, site haritalarını ve uygulama içindeki URL üretimini kontrol edin. Kendi sitenizin artık var olmayan adreslerine bağlantı vermeyin.
  5. Yanıtı istemci açısından doğrulayın. Tarayıcıdaki tasarıma güvenmek yerine durum kodunu ve yönlendirme zincirini inceleyin. Örneğin komut satırında curl -I https://example.com/ornek-adres bir HEAD isteği gönderir. Tarayıcıdaki sayfa yüklemesini değerlendirmek için GET isteğinin durum kodunu da ağ panelinde kontrol edin.
  6. Sunucu günlüğünde istek yolu, yanıt kodu, istemci ve istek zamanı bilgilerini inceleyin. Aynı adresin sürekli taranması, eski bir dış bağlantıdan veya hatalı URL üreten bir uygulamadan kaynaklanabilir.
Apache kullanıyorsanız kullanıcıya gösterilecek özel hata belgesi ErrorDocument ile tanımlanabilir:

Kod:
ErrorDocument 404 /errors/not-found.html

Bu ayar yalnızca hata sayfasının görünümünü değiştirir; eksik kaynağın yanıt kodu yine 404 olmalıdır. Dinamik uygulamalarda da uygulamanın gerçekten 404 durum kodu ürettiğini ayrıca kontrol edin.

Sık yapılan hatalar​


En yaygın hata, her bilinmeyen URL’yi ana sayfaya yönlendirmektir. Bu yaklaşım ziyaretçiye yardımcı görünse de eksik adres ile ana sayfanın aynı kaynakmış gibi algılanmasına ve soft 404 oluşmasına yol açabilir. İkinci hata, taşınmış içerik için 404 bırakmaktır; içerik aynıysa yeni adrese kalıcı yönlendirme daha uygundur. Üçüncü hata ise yalnızca görsel hata sayfasını test edip HTTP durum kodunu kontrol etmemektir.


Sık sorulan sorular​

403 ile 404 aynı anlama mı gelir?​

Hayır. 403, sunucunun isteği anladığı fakat yerine getirmeyi reddettiği durumu ifade eder. 404 ise istenen kaynağın bulunamadığını bildirir. Bazı sunucular korunan bir kaynağın varlığını açıklamamak için de 404 döndürebilir; yalnız durum koduyla dosyanın gerçekten silindiği sonucuna varmayın.

curl -I çıktısı tarayıcıyla neden farklı olabilir?​

Bu seçenek GET yerine HEAD isteği gönderir ve gövdeyi almaz. Standartta HEAD, karşılık gelen GET yanıtının başlıklarını temsil eder; ancak hatalı veya farklı uygulama yönlendirmeleri sonucu değiştirebilir. Teşhiste istek yöntemi, yönlendirmeler, çerez ve oturum koşullarını eşleştirerek gerçek GET yanıtını da kontrol edin.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic