İnternette yeterince uzun süre gezindiyseniz mutlaka “404 Not Found” yazan bir sayfayla karşılaşmışsınızdır. Adresi yanlış yazdığınızda, eski bir bağlantıya tıkladığınızda veya açmak istediğiniz içerik silindiğinde tarayıcı sizi çoğu zaman bu meşhur üç basamaklı kodla karşılar.
404 o kadar tanınır hâle geldi ki artık internet kültürünün bir parçası. Şirketler kendi 404 sayfalarına oyunlar, espriler ve özel tasarımlar bile ekliyor. Fakat sayının kökeni konusunda internette yıllardır anlatılan ilginç bir hikâye var. İddiaya göre 404, World Wide Web'in geliştirildiği CERN'deki bir odanın numarasından geliyor. Gerçek hikâye ise bundan farklı.
İçerikten Görseller
+3
404 Not Found aslında ne anlama geliyor?

404'ün nereden geldiğini anlamak için önce tarayıcı ile internet sitesi arasında neler yaşandığına bakmak gerekiyor.
Bir internet adresini açtığınızda tarayıcınız ilgili sunucuya HTTP üzerinden bir istek gönderir. Sunucu bu isteği işler ve tarayıcıya bir yanıt döndürür. Yanıtın içerisinde işlemin nasıl sonuçlandığını anlatan üç basamaklı bir HTTP durum kodu bulunur.
Her şey yolundaysa genellikle 200 kodu kullanılır. Bu, isteğin başarıyla işlendiğini ifade eden kodlardan biridir. Başka bir adrese yönlendirme yapılması veya sunucuda problem yaşanması gibi durumlarda farklı kodlarla karşılaşırsınız.
404 ise istemcinin sunucuya ulaşabildiği ancak sunucunun istenen kaynağı bulamadığı durumu ifade eder.
Yani 404 gördüğünüzde internet bağlantınızın tamamen kesildiğini düşünmeniz gerekmez. Sunucu yanıt vermiştir. Problem, istediğiniz sayfanın o adreste bulunamamasıdır.
Bunun nedeni yanlış yazılmış bir URL olabilir. Daha önce var olan sayfa silinmiş, bağlantı değiştirilmiş veya içerik başka bir adrese taşınmış da olabilir.
“Not Found” ifadesi tam olarak buradan gelir. Sunucu çalışıyor fakat istediğiniz kaynak bulunamıyor.
404 sayısındaki ilk 4 neyi ifade ediyor?

HTTP durum kodlarında rakamlar gelişigüzel seçilmiyor. Kodlar ilk basamaklarına göre belirli sınıflara ayrılıyor.
404'ün başındaki 4, istemci hatalarıyla ilişkili durum kodları grubunu gösterir. Tarayıcının yaptığı istekte veya istenen kaynağa erişme biçiminde sorun bulunduğunda 4xx ailesindeki kodlardan biri kullanılabilir.
Bu yüzden 404 yalnız değil. İnternette gezinirken 400 Bad Request, 401 Unauthorized, 403 Forbidden ve 429 Too Many Requests gibi başka 4xx kodlarıyla da karşılaşabilirsiniz.
Aralarındaki fark problemin türüdür.
403 kodunda sunucu isteği anlar ancak kaynağa erişime izin vermeyebilir. 404'te ise istenen kaynak bulunamamıştır. 429 ise kısa süre içerisinde çok fazla istek gönderildiğini belirtmek için kullanılabilir.
Sunucu kaynaklı problemlerde ise başka bir aile devreye girer. 500 Internal Server Error ve 503 Service Unavailable gibi kodların 5 ile başlamasının nedeni budur.
404'ün ilk rakamı böylece kodun hangi genel kategoriye ait olduğunu anlatır. Geri kalan rakamlar ise bu kategori içerisindeki belirli durumu ayırır.
Dolayısıyla 404, tek başına seçilmiş gizemli bir sayıdan ziyade HTTP'nin sistematik durum kodu yapısının parçasıdır.
Peki neden tam olarak 404 seçildi?

İşin merak edilen kısmı tam burada başlıyor. “Bulunamadı” durumu için neden 404 kullanıldı da 417 veya 492 gibi başka bir sayı kullanılmadı?
HTTP'nin erken döneminde durum kodları protokolün farklı sonuçlarını standart biçimde ifade edebilmek için düzenlendi. 4xx aralığı istemciyle ilişkili hata durumlarına ayrıldı ve bu grup içerisinde farklı anlamlara sahip kodlar tanımlandı. “Not Found” da 404 olarak yerini aldı.
HTTP/1.0'ın 1996'da yayımlanan RFC 1945 belgesinde 404, “Not Found” durum kodu olarak açık biçimde tanımlanmıştı. Daha sonraki HTTP standartlarında da kod kullanılmaya devam etti.
Buradaki 404 sayısının her basamağı için ayrı bir kelime veya gizli anlam aramak gerekmiyor. İlk 4 kodun genel sınıfını belirlerken “04” bu sınıf içerisindeki tanımlanmış kodlardan biridir.
Benzer mantığı diğer HTTP kodlarında da görmek mümkün. Başarılı yanıtlar 2xx, yönlendirmeler 3xx, istemci hataları 4xx ve sunucu hataları 5xx gruplarında toplanır.
Bu düzen geliştiricilerin yalnızca mesaj metnine bağlı kalmadan sunucunun verdiği cevabı yazılımsal olarak değerlendirebilmesini sağlar.
Kısacası 404'ün gerçek kökenini HTTP protokolünün durum kodu sınıflandırmasında aramak gerekiyor.
CERN'deki 404 numaralı oda hikâyesi gerçek mi?

404 hakkında internette dolaşan en ünlü hikâye çok daha eğlenceli. Anlatıya göre World Wide Web üzerinde çalışan ekip CERN'de 404 numaralı bir odada bulunuyordu.
Hikâyenin farklı versiyonları var. Bazılarında web sunucularının 404 numaralı odada bulunduğu, bazılarında ise kullanıcıların istedikleri dosyaları almak için bu odaya başvurduğu anlatılıyor. Bir dosya bulunamadığında da odanın numarası olan 404'ün hata koduna dönüştüğü iddia ediliyor.
Güzel bir internet efsanesi fakat bunu destekleyen güvenilir tarihsel kanıt bulunmuyor.
World Wide Web'i CERN'de geliştiren Tim Berners-Lee'nin çalışmaları elbette HTTP'nin doğuşunun merkezinde. Ancak “404 Not Found” kodunun CERN'deki 404 numaralı bir odadan geldiği anlatısı web tarihine ilişkin kaynaklarla doğrulanmış değil.
Hatta CERN'in bu hikâyeyi ele alan açıklamalarında söz konusu oda anlatısının bir efsane olduğuna dikkat çekildi.
Bu tür hikâyelerin yayılmasının nedeni anlaşılır. Teknik standartların oluşturulma süreçleri çoğu kullanıcı için sıkıcı gelebilirken gizemli bir oda ve onun numarasının tüm internete yayılması çok daha akılda kalıcı.
Gerçek açıklama daha sade. 404, HTTP durum kodlarının sınıflandırılması sırasında “Not Found” yanıtına verilen standart kod.
HTTP hata kodları nasıl ortaya çıktı?

HTTP'nin hikâyesi World Wide Web'in ilk yıllarına uzanıyor. Tim Berners-Lee, CERN'de çalışırken farklı bilgisayarlardaki belgelerin bağlantılar üzerinden birbirine bağlanabildiği bir bilgi sistemi üzerinde çalışıyordu.
Web'in çalışabilmesi için yalnızca HTML ve URL yeterli değildi. Tarayıcı ile sunucu arasında nasıl iletişim kurulacağını belirleyen bir protokole de ihtiyaç vardı. HTTP bu görevi üstlendi.
İlk HTTP sürümleri bugünkü protokolden çok daha basitti. Web geliştikçe tarayıcı ve sunucu arasındaki iletişim de daha ayrıntılı hâle geldi. Bir isteğin başarılı olduğunu, başka adrese yönlendirildiğini veya başarısız olduğunu standart şekilde ifade etmek gerekiyordu.
Durum kodları bu iletişimin önemli parçalarından biri oldu.
Üç basamaklı yapı sayesinde yazılımlar sonucu hızlı biçimde yorumlayabiliyordu. 2 ile başlayan bir kod genel olarak başarılı yanıt sınıfını, 3 ile başlayanlar yönlendirmeleri, 4 ile başlayanlar istemciyle ilişkili hata durumlarını ve 5 ile başlayanlar sunucu hatalarını ifade ediyordu.
Bu sistem bugün de web'in temel parçalarından biri. Kullanıcı bunların büyük bölümünü hiçbir zaman görmüyor çünkü tarayıcı işlemleri arka planda gerçekleştiriyor.
404 ise farklı bir kader yaşadı. İstenen sayfanın bulunamadığı durum kullanıcıya doğrudan yansıdığı için teknik bir protokol kodu olmaktan çıkıp herkesin tanıdığı bir ifadeye dönüştü.
Silinen her sayfada neden 404 görmüyoruz?

Bir internet sayfası artık mevcut olmadığında her zaman 404 koduyla karşılaşmayabilirsiniz. Bunun nedeni web sitelerinin farklı durumlar için başka HTTP kodları kullanabilmesi.
Bir içerik yeni bir adrese taşındıysa sunucu kullanıcıyı otomatik olarak yeni sayfaya yönlendirebilir. Kalıcı yönlendirmelerde 301 gibi kodlar bu amaçla kullanılır. Tarayıcı işlemi otomatik yaptığı için kullanıcı çoğu zaman kodun kendisini görmez.
Kalıcı olarak kaldırılmış bir kaynak için 410 Gone kodunun kullanılması da mümkündür. 404 ile arasındaki fark ince fakat anlamlıdır. 404, sunucunun istenen kaynağı bulamadığını belirtirken 410, kaynağın kaldırıldığının bilindiğini daha açık şekilde ifade eder.
Gerçek internet sitelerinde her sistem bu ayrımı aynı titizlikle uygulamaz. Silinen pek çok içerik doğrudan 404 döndürür.
Bir de “soft 404” adı verilen durum bulunur. Sayfa kullanıcıya “içerik bulunamadı” mesajı gösterirken sunucu teknik olarak 200 OK yanıtı verebilir. Kullanıcı açısından sayfa yoktur fakat HTTP açısından istek başarılı görünür. Bu durum arama motorlarının sayfayı yorumlama biçimini de etkileyebilir.
Yani ekranda “Sayfa bulunamadı” yazması ile sunucunun gerçekten HTTP 404 kodu döndürmesi her zaman aynı şey değildir.
404 nasıl internet kültürünün parçası oldu?

HTTP yüzlerce farklı durum kodu içeriyor ancak sıradan internet kullanıcısının bunların büyük bölümünü bilmesine gerek yok. 404 bu açıdan büyük bir istisna.
Bunun temel nedeni kullanıcıların kodla doğrudan ve sık sık karşılaşması. İnternet siteleri büyüdükçe bağlantılar değişiyor, eski içerikler kaldırılıyor ve yanlış adresler paylaşılabiliyor. Sonuçta 404 sayfaları web deneyiminin kaçınılmaz parçalarından biri hâline geliyor.
Web tasarımcıları zamanla standart hata mesajını daha yaratıcı kullanmaya başladı. Bazı siteler 404 sayfalarına küçük oyunlar ekledi, bazıları esprili görseller kullandı, bazıları ise ziyaretçiyi arama kutusu veya ana sayfa bağlantısıyla doğru içeriğe yönlendirdi.
Böylece “404” ifadesi teknik anlamının dışına çıktı. İnternet kültüründe kaybolan, bulunamayan veya ortada olmayan şeyleri anlatmak için kullanılan bir şakaya bile dönüştü.
İlginç olan, bu kadar tanınan sayının arkasında gizemli bir oda veya unutulmuş bir CERN hikâyesinin bulunmaması. 404'ün gerçek hikâyesi çok daha teknik. Kod, web'in farklı sonuçları düzenli ve makinelerin anlayabileceği şekilde sınıflandırma ihtiyacından doğdu.
Belki CERN'deki gizemli bir oda hikâyesi daha eğlenceli. Fakat bir sonraki kez “404 Not Found” gördüğünüzde aslında sunucunun size oldukça net bir mesaj verdiğini bileceksiniz: “Buradayım, isteğini aldım ama aradığın şeyi bu adreste bulamadım.”