404 Not Found hatası istenilen kaynağın bulunamadığını gösteren bir HTTP durum cevabı kodudur. HTTP cevap kodlarının önemli bir kısmında olduğu gibi bu hatada da problemin nerede olduğunu bulmak ve çözmek zor olmaktadır. İstemci, web uygulaması, sunucu ve üçüncü parti web servisleri arasındaki kompleks bağlantının içerisinde potansiyel olarak 50’den fazla cevap kodu bulunmaktadır. Bu nedenle tek bir hata kodunun neden olduğu durumu belirlemek oldukça zordur. 404 Not Found (Sayfa Bulunamadı) hatasına neden olan durumu belirlemek ve bu durumu ortadan kaldırmak hatanın da ortadan kaldırılması anlamına gelmektedir. Ancak bu durumu bulmak için kontrol etmek gereken birçok yer bulunmaktadır.
404 Hatası Neden Kaynaklanır?
400’le başlayan tüm HTTP cevap kodları istemci tarafında bir hata olduğunu göstermektedir. 500’lü hata kodları ise sunucu tarafında kaynaklanan problemlerden ortaya çıkmaktadır. Diğer taraftan 400’le başlayan hata kodlarının istemci tarafında olması sunucuda hiç bir problem olmadığı anlamına gelmemektedir. Herhangi bir şey yapmadan önce güvende olmak için ilk olarak tam bir sistem yedeği alınması tavsiye edilmektedir. Bu hata kodu sadece internet sitelerinde meydana gelmemektedir. Aynı zamanda arka planda bir web uygulaması çalıştıran mobil uygulamalarda da 404 Not Found hatası meydana gelebilmektedir. Bu nedenle bir değişiklik yapmadan önce herseyini yedeğini almak tavsiye edilmektedir.
İstemci Tarafında 404 Hatası
404 Not Found hatası istemci tarafından kaynaklanan bir hata olduğu için ilk olarak istemci tarafında meydana gelebilecek problemleri gözden geçirmek gereklidir. İstemci tarafında 404 hatası çözümü için kontrol edilmesi gereken nokta sayısı daha fazladır.
Linki Kontrol Etmek
404 Sayfa Bulunamadı hatasının en sık karşılaşılan nedeni linkin yanlış olmasıdır. Alan adları büyük küçük harfe duyarlı değildir. Bu nedenle alan adının bir kısmını büyük harfle yazmak bir probleme neden olmaz. Ancak alan adından sonra gelen bir yol, sorgu ya da parçacık adresi büyük küçük harfe duyarlıdır. “LimoNHoSt.net” adresi herhangi bir hata vermese de “LimoNHoSt.net/BlOg” adresi 404 hatası vermektedir.
Çerezleri Temizlemek
HTTP çerezleri yerel cihazda depolanan küçük veri parçalarıdır. Bu parçalar internet siteleri ya da uygulamalar tarafından cihaz ya da tarayıcıyı hatırlamak için kullanılmaktadır. Kullanıcıların gelecekte aynı siteyi daha hızlı bir şekilde ziyaret edebilmesi için de cookie’ler kullanılmaktadır. Bu sayede verilerin bir kısmı yerel cihazdaki çerezlerden getirilmektedir. Yerel depolama alanında bulunan çerezlerin bozulması ya da eksik olması 404 Not Found hatasına neden olabilmektedir. Çerezler internet sitesinin domaini altında saklanmaktadır. Bu nedenle belirli bir domainin çerezlerini silmek mümkündür. 404 Sayfa Bulunamadı hatası veren sitenin çerezlerini silmek durumun düzelmesini sağlayabilmektedir.
Uygulamaya Tekrar Girmek
Uygulamanın bir çeşit kullanıcı doğrulaması içermesi durumunda yapılabilecek bir diğer işlem hesaptan çıkış yapmak ve aynı hesaba tekrar girmektedir. Yakın zamanda tarayıcı çerezleri temizlendiğinde özellikle bu durum meydana gelebilmektedir. Bu işlemden sonra her şey olduğu gibi çalışmaya devam edebilmektedir. Bunun en büyük nedeni de uygulamada eski oturum açıktır ve girildiğinde sunucu istemciye gelecekteki istekleri için bir string gönderir. Diğer veriler ile beraber oturum token’ı yerel depolamada tutulduğu ve her istekte tekrar gönderildiği için eğer sunucu bu token’ı tanımazsa geçersiz olarak kabul eder ve 404 HTTP durum kodunu gönderir.
Sunucu Tarafında Yapılması Gerekenler
404 hata kodu her ne kadar istemci tarafında yer alan bir problemden dolayı meydana gelse de sunucu tarafında da bir şeyler yanlış olabilir. Genellikle modern web sunucuları bir ya da birden fazla ayar dosyasına izin verir ve geniş çaplı kullanım alanı sunar. Örneğin bir sunucu belirli bir dizine ya da linke gelen isteklerin hepsini reddedebilir ve bu da 404 hatasının meydana gelmesini sağlamaktadır. Sunucu uygulamasına bağlı olarak bu ayarlara bakmak 404 hatasının çözümüne yardımcı olmaktadır.
Kayıtları Kontrol Etme
Hemen hemen tüm web uygulamaları sunucu tarafında bir kayıt defteri tutar. Bu uygulama kayıtları uygulamanın yaptıklarını gösteren bir geçmiş gibidir ve hangi sayfaların istendiği, hangi sunucuların bağlandığı, hangi veritabanının sonuç sağladığı gibi kayıtları içermektedir. Sunucu kayıtlarını gözden geçirmek hangi sayfaların ya da linklerin 404 cevabı gönderdiğini bulma konusunda yardımcı olabilmektedir.
Uygulama Linklerini Doğrulama
Uygulamanın ya da spesifik bazı kaynakların linklerinin 404 hatası verip vermediğini kontrol etmeyi sağlayan birçok araç bulunmaktadır. Başlangıç için Google Search Console’a sitenin kaydını yapmak bu konuda yardımcı olabilmektedir. Bu araç ile Google’ın kendi web crawler botları siteyi gezmektedir. Kayıtlı uygulamalarda meydana gelebilecek bir hata ise bu araç ile kontrol edilebilmektedir. Basit bir kaynağı ya da linki kontrol etmek için ise W3C Link Checker gibi araçlar kullanılmaktadır. Çevrimiçi olarak çalışan bu araçlar gönderilen linkleri ziyaret ederek 404 hatası verip vermediğini kontrol etmektedir.