İnternette gezinirken karşınıza çıkan 404 Sayfa Bulunamadı veya gizemli 500 İç Sunucu Hatası gibi mesajlar size hiç yabancı gelmiyor, değil mi? Bu sayılar aslında web’in görünmez dilini konuşan HTTP Durum Kodları‘dır ve her biri tarayıcınızla sunucu arasında geçen kritik bir diyaloğu temsil eder. Anlamlarını çözdüğünüzde, bir web sitesinin arka planında neler olup bittiğini anlayabilir, karşılaştığınız sorunları çözebilir ve hatta kendi projelerinizde daha iyi bir kullanıcı deneyimi sunabilirsiniz.
Bu rehberde, bu gizemli kodların dünyasına dalıyoruz. En yaygın karşılaşılan kodlardan, nadir görülenlere kadar hepsini basit bir dille açıklayacağız. Örneğin:
- 2xx Başarılı kodlar neyin yolunda gittiğini,
- 3xx Yönlendirme kodları trafiğin nasıl yönlendirildiğini,
- 4xx İstemci Hatası kodları sizin tarafınızda neyin ters gittiğini,
- 5xx Sunucu Hatası kodları ise web sitesinin arka planındaki sorunları nasıl işaret ettiğini öğreneceksiniz.
Hazır mısınız? Bu sayısal mesajların ardındaki hikayeyi keşfetmeye ve onları nasıl çözebileceğinizi öğrenmeye başlayalım.
HTTP Durum Kodları Nedir ve Nasıl Çalışır?

İnternette gezinirken bir web sayfasına erişmeye çalıştığınızda, tarayıcınız ile sunucu arasında görünmez bir diyalog gerçekleşir. Bu iletişimin temelini oluşturan protokol, Hypertext Transfer Protocol yani HTTP’dir. Sunucu, tarayıcınızdan gelen her isteğe yanıt olarak, durumun ne olduğunu belirten sayısal bir kod döndürür. Bu kodlar, işlemin başarılı olup olmadığını veya bir sorunla karşılaşıldıysa bunun ne tür bir sorun olduğunu anlamamızı sağlar.
Bu üç haneli sayılar, web’in arka plandaki sessiz dili ve her isteğin kaderini bildiren evrensel bir iletişim sistemidir.
Bu kodlar, ilk rakamlarına göre beş ana sınıfa ayrılır. 1xx kodları bilgilendirici nitelikte olup, işlemin devam ettiğini gösterir. 2xx sınıfı, isteğin başarıyla alınıp işlendiğini ifade eden başarı kodlarıdır; en bilinen örneği “200 OK”dir. 3xx kodları, istemcinin işlemi tamamlamak için ek bir işlem yapması gerektiğini (örneğin bir başka adrese yönlendirilme) belirtir. 4xx sınıfı, isteği gönderen taraftan (istemciden) kaynaklanan bir hatayı, örneğin yanlış yazılmış bir URL’yi temsil eder. Son olarak, 5xx kodları ise sunucu tarafında meydana gelen ve isteğin yerine getirilemediği hataları bildirir.
Bir kullanıcı olarak, en sık 404 (Sayfa Bulunamadı) veya 500 (Dahili Sunucu Hatası) gibi kodlarla karşılaşabilirsiniz. Geliştirici ve site yöneticileri içinse bu kodlar, sistemin sağlığını izlemek ve olası sorunları hızla teşhis edip çözmek için vazgeçilmez bir araçtır. Doğru yorumlandığında, web sitelerinin performansını ve kullanıcı deneyimini iyileştirmenin anahtarı haline gelirler.
1xx Bilgilendirici Yanıtlar

HTTP protokolünde, 1xx sınıfındaki durum kodları, sunucunun istemciden gelen bir isteği aldığını ve işleme devam ettiğini bildiren geçici yanıtlardır. Bu kodlar nihai bir yanıt değil, devam eden bir sürecin bilgilendirici ara sinyalleridir ve genellikle tarayıcılar tarafından kullanıcıya gösterilmez.
- 100 Continue: Sunucu, istemcinin göndermeyi planladığı istek gövdesini kabul etmeye hazır olduğunu belirtir. İstemci, ön bilgileri (başlıkları) gönderdikten sonra bu kodu alırsa, geri kalan büyük veriyi (örneğin bir dosya yükleme içeriğini) göndermeye devam edebilir. Bu, kaynak israfını önleyen önemli bir optimizasyondur.
- 101 Switching Protocols: Sunucu, istemcinin “Upgrade” istek başlığında belirttiği protokol değişikliğini (örneğin HTTP’den WebSocket‘e geçiş) kabul ettiğini bildirir. Bu yanıttan sonra iletişim, anlaşılan yeni protokol kuralları üzerinden devam eder.
- 102 Processing (WebDAV): Sunucu, isteği aldı ve işliyor, ancak henüz bir yanıt hazır değil. Bu, istemcinin bağlantıyı zaman aşımına uğratmaması için uzun süren işlemlerde (örneğin büyük bir dosya işleme sırasında) gönderilir.
- 103 Early Hints: Sunucu, nihai yanıtı hazırlamadan önce, istemcinin bazı kaynakları önceden yüklemeye başlaması için yararlı ipuçları (örneğin stil sayfası veya script dosyalarına ait bağlantılar) gönderir. Bu, sayfa yükleme performansını artırmayı hedefler.
2xx Başarılı İstekler

Bir web sunucusu, bir istemciden gelen isteği başarıyla işlediğinde ve yanıtladığında 2xx serisi kodlar döndürür. Bu kodlar, işlemin sorunsuz tamamlandığını gösteren olumlu yanıtlardır. İşte en yaygın kullanılan başarı kodları ve anlamları:
- 200 OK: En sık karşılaşılan başarı kodudur. İstek tamamen başarılı olmuş, sunucu gerekli kaynağı bulmuş ve yanıt gövdesinde istemciye döndürmüştür. Bir web sayfasının normal yüklenmesi veya bir API çağrısından beklenen verinin alınması bu kodla sonuçlanır.
- 201 Created: İstek başarılı olmuş ve sunucuda yeni bir kaynak oluşturulmuştur. Genellikle POST metoduyla yapılan ve veritabanına yeni bir kayıt eklenen isteklerde görülür. Yanıt, genellikle oluşturulan yeni kaynağın konumunu belirten bir ‘Location’ başlığı da içerir.
- 204 No Content: İstek başarıyla işlenmiştir, ancak istemciye döndürülecek bir yanıt gövdesi yoktur. Bu, özellikle silme (DELETE) işlemlerinde veya sunucunun işlemi gerçekleştirdiği ancak ek bilgi iletmesine gerek olmadığı durumlarda kullanılır. Tarayıcı sayfayı değiştirmez.
- 206 Partial Content: Sunucu, istemcinin isteği üzerine kaynağın yalnızca bir bölümünü gönderir. Bu kod, dosya indirme yöneticilerinin devam ettirilmesinde veya video/audio akışı yapılırken büyük dosyaların parçalar halinde alınmasında kullanılır ve bant genişliğinden tasarruf sağlar.
3xx Yönlendirme Mesajları

Sunucunun istemciye, istenen kaynağın başka bir konumda olduğunu veya işlemin devam etmesi için ek bir adım gerektiğini bildirdiği durum kodlarıdır. Bu kodlar, kullanıcıyı veya tarayıcıyı otomatik olarak yeni bir URL’ye yönlendirir.
- 301 Moved Permanently: Kaynağın kalıcı olarak yeni bir adrese taşındığını belirtir. Arama motorları için en önemli yönlendirme tipidir, çünkü eski URL’nin SEO değeri ve tüm bağlantılar yeni adrese aktarılır.
- 302 Found: Kaynağın geçici olarak farklı bir adresten sunulduğunu ifade eder. Arama motorları, orijinal URL’yi indekslemeye ve sıralamaya devam eder, yönlendirmeyi geçici olarak kabul eder.
- 307 Temporary Redirect: 302 koduna çok benzer, ancak önemli bir ek kural getirir. İstemciden, yönlendirme sırasında orijinal istekte kullanılan HTTP metodunun (örneğin POST) değiştirilmeden kullanılmasını şart koşar. Bu, güvenlik ve veri bütünlüğü açısından kritiktir.
- 308 Permanent Redirect: 301 kodunun 307’deki gibi geliştirilmiş halidir. Kaynak kalıcı olarak taşınmıştır ve istemci, yönlendirmede aynı HTTP metodunu kullanmak zorundadır.
Bu kodların doğru kullanımı, kullanıcı deneyimini korumanın, sayfa otoritesini kaybetmemenin ve web sitesi yapısındaki değişiklikleri sorunsuz yönetmenin temelini oluşturur.
4xx İstemci Hataları ve Çözümleri
İstemci tarafından yapılan isteğin hatalı olduğunu veya sunucu tarafından yerine getirilemediğini belirten kodlar, 4xx sınıfına girer. Bu hatalar genellikle kullanıcının veya istemci uygulamanın düzeltmesi gereken sorunlardan kaynaklanır.
- 400 Bad Request (Kötü İstek): Sunucu, isteğin sözdizimindeki bir hata nedeniyle anlayamadı. Genellikle yanlış biçimlendirilmiş bir istek gövdesi, geçersiz bir istek mesajı çerçevelemesi veya hatalı yönlendirme sebebiyle oluşur. Çözüm için istemci tarafında gönderilen verilerin formatı ve bütünlüğü kontrol edilmelidir.
- 401 Unauthorized (Yetkisiz): İstek, kimlik doğrulama gerektiren bir kaynağa erişim için geçerli kimlik bilgileri içermiyor. Kullanıcı adı/şifre gibi bilgiler eksik veya yanlış olabilir. Çözüm, doğru kimlik bilgileriyle yeniden istekte bulunmaktır.
- 403 Forbidden (Yasaklı): Sunucu isteği anladı ancak yetkilendirme reddedildi. Kimlik doğrulaması başarılı olsa bile, kullanıcının ilgili kaynağa erişim izni yoktur. Bu, genellikle sunucu tarafındaki izin (permission) ayarlarıyla ilgilidir.
- 404 Not Found (Bulunamadı): Sunucu, istenen kaynağı bulamadı. Bu, en yaygın karşılaşılan istemci hatasıdır. Sebebi genellikle yanlış yazılmış bir URL, silinmiş bir sayfa veya bozuk bir bağlantıdır. Çözüm için URL’nin doğruluğu ve kaynağın varlığı kontrol edilmelidir.
- 429 Too Many Requests (Çok Fazla İstek): Kullanıcı belirli bir zaman diliminde çok fazla istek gönderdi. Sunucu, istek hızını sınırlandırmak (rate limiting) için bu yanıtı döner. Çözüm, istek hızını düşürmek ve sunucunun belirttiği süreyi beklemektir.
Web sunucusunun bir isteği yerine getiremediği durumlarda 5xx sınıfı hatalar oluşur. Bu hatalar, genellikle ziyaretçinin değil, sunucu tarafındaki bir sorunun göstergesidir ve hızlıca çözülmesi site erişilebilirliği için kritiktir.
- 500 Internal Server Error (Dahili Sunucu Hatası): En genel hatadır. Sunucu, tam olarak neyin yanlış gittiğini belirleyemediğinde bu kodu döndürür. Çözüm için sunucu hata loglarını kontrol etmek ilk adımdır.
- 502 Bad Gateway (Kötü Ağ Geçidi): Sunucu, bir yük dengeleyici veya ters proxy olarak çalışırken, aldığı isteği işlemek için iletişime geçtiği başka bir sunucudan (örn. bir uygulama sunucusu) geçersiz yanıt aldığında görülür. Arka uç sunucusundaki sorunlar veya ağ bağlantı problemleri yaygın nedenleridir.
- 503 Service Unavailable (Hizmet Kullanılamıyor): Sunucu geçici olarak aşırı yüklenmiş veya bakım nedeniyle kullanılamıyor demektir. Genellikle geçici bir durumdur. Sunucu yükünü azaltmak veya önbellek mekanizmalarını optimize etmek faydalı olacaktır.
- 504 Gateway Timeout (Ağ Geçidi Zaman Aşımı): Bir üst sunucu (ağ geçidi), ihtiyaç duyduğu başka bir sunucudan belirli bir süre içinde yanıt alamadığında oluşur. Bu, arka uç sunucusunun çok yavaş çalıştığını veya tamamen kapandığını gösterir. Zaman aşımı sürelerini ve arka uç hizmetlerinin durumunu kontrol etmek gerekir.
Bu hatalarla karşılaşıldığında, sunucu ve uygulama log kayıtlarını incelemek, barındırma sağlayıcınızla iletişime geçmek ve sunucu kaynaklarını (CPU, bellek) izlemek temel çözüm yaklaşımlarıdır.
En Sık Karşılaşılan HTTP Durum Kodları ve Anlamları

Bir web sitesine veya API’ye yapılan her isteğin sonucu, sunucu tarafından bir durum kodu ile bildirilir. Bu kodlar, işlemin başarılı olup olmadığını veya bir hata durumunda sorunun kaynağını anlamamızı sağlayan üç basamaklı sayılardır. İşte en yaygın karşılaşılanları ve ne anlama geldikleri:
Bu sayısal mesajlar, web’in diliyle konuşmanın ilk adımıdır.
- 200 OK: İstek başarıyla tamamlandı. Sunucu, tarayıcıdan veya istemciden gelen talebi işledi ve beklenen yanıtı (örneğin bir web sayfası) gönderdi. Tüm sistemlerin sorunsuz çalıştığını gösteren ideal durum.
- 301 Kalıcı Yönlendirme: İstenen kaynağın kalıcı olarak yeni bir adrese taşındığını belirtir. Tarayıcılar ve arama motorları bu kodu görünce, gelecekteki tüm istekleri doğrudan yeni URL’ye yönlendirir.
- 404 Bulunamadı: Sunucu, istenen kaynağı (sayfa, dosya veya resim) bulamadı. Genellikle silinmiş, taşınmış veya yanlış yazılmış bir bağlantıdan (link) kaynaklanır.
- 500 Dahili Sunucu Hatası: Bu, genel bir sunucu tarafı hata kodudur. Sunucu, beklenmedik bir durumla karşılaştı ve isteği yerine getiremedi. Sorun genellikle sunucu tarafındaki bir yazılım hatasından (örn. hatalı betik) kaynaklanır.
- 403 Yasaklı: Sunucu isteği anladı ancak yetkilendirme reddetti. Kullanıcının, erişmeye çalıştığı kaynak için gerekli izinlere sahip olmadığı anlamına gelir.
HTTP Durum Kodları ile Web Sitesi Sorunlarını Giderme
Bir web sitesini ziyaret ettiğinizde tarayıcınız, sunucudan bir yanıt alır. Bu yanıt, sayfanın başarıyla yüklendiğini, bir hata olduğunu veya başka bir işlem gerektiğini bildiren sayısal kodlardan oluşur. Bu kodları anlamak, bir site sahibi veya geliştirici olarak karşılaştığınız sorunları hızla teşhis etmenin ilk adımıdır.
Sunucunun sessiz dilini çözmek, her teknik sorunun kapısını aralar.
Kodlar, 100’den 500’e kadar beş ana sınıfa ayrılır. 200 serisi başarılı işlemleri, örneğin 200 “OK” kodunu temsil eder. 300 serisi yönlendirmeleri gösterir; 301 kalıcı, 302 geçici bir yönlendirme anlamına gelir. En sık karşılaşılan ve kullanıcı deneyimini doğrudan etkileyen hatalar ise 400 ve 500 serilerinde yer alır.
404 “Bulunamadı” hatası, istenen sayfanın sunucuda olmadığını belirtir. Bu genellikle bozuk bir bağlantı veya yanlış bir URL’den kaynaklanır. 500 “Dahili Sunucu Hatası” ise sunucu tarafında beklenmeyen bir sorun olduğunu gösterir ve genellikle sunucu yapılandırması veya uygulama kodundaki bir hatadan kaynaklanır. Bu iki kod, sorun giderme sürecinde en çok odaklanılması gerekenlerdir.
Bir hata kodu aldığınızda, ilk yapmanız gereken kodun tam numarasını ve hatanın ne zaman oluştuğunu not etmektir. Ardından, sorunun kaynağını daraltmak için ilgili sunucu günlüklerini kontrol etmek ve bağlantıları veya komut dosyalarını doğrulamak gerekir. Bu kodları doğru yorumlamak, web sitenizin sağlığını korumanın ve kullanıcılarınıza kesintisiz bir deneyim sunmanın temelidir.