HTTP 304 Not Modified (değiştirilmemiş) durum kodu, bir kullanıcının tarayıcısı ile bir web sitesinin sunucusu arasında bir iletişim sorunu olduğunu gösterir. Siz veya kullanıcılarınız sitenizde bu durum koduyla karşılaşırsanız, bu durum kodu içeriğinize erişimi tamamen engelleyebilir.
Sunucu tarafında veya istemci tarafında olabileceğinden, sorunun kaynağını bulmak biraz zaman alabilir. Neyse ki, sorunu gidermek için birkaç teknik var.
Bu yazıda, HTTP durum kodlarını tartışacağız ve HTTP 304 durum kodunun ne olduğunu açıklayacağız. Ardından, Size bu hatayı nasıl düzelteceğinizi öğreteceğiz.
HTTP Durum Kodları
HTTP 304’ü anlamak için öncelikle durum kodlarını anlamak yardımcı olabilir. Basitçe söylemek gerekirse, belirli bir web sitesine erişmek gibi tarayıcınıza her istekte bulunduğunuzda, bilgi alışverişi için tarayıcınız ve sunucu arasında bir HTTP durum kodu gönderilir.
Bu iletişime dahil olabilecek 40’tan fazla farklı durum kodu vardır. Ancak, muhtemelen doğrudan karşılaşacağınız birkaç tane var. Bir durum koduyla karşılaştığınızda, bu genellikle bir şeylerin ters gittiği anlamına gelir.
HTTP durum kodları, 100’ler ile 500’ler arasında numaralandırılmış beş kategoriden birine girer. Her seri farklı bir problem tipini gösterir. Örneğin, 404 hatası ve 401 hatası gibi 400’lere düşen hata kodları, genellikle istekle ilgili bir sorun olduğu ve söz konusu web sitesine veya sayfaya erişilemediği anlamına gelir.
Öte yandan, 300’lerdeki kodlar – bu yazıda odaklanacağımız HTTP 304 durum kodu gibi – yönlendirme kodlarıdır. 300’ler, talep edilen bilgilerin geçici veya kalıcı olarak başka bir kaynakla değiştirildiğini açıkça ortaya koyuyor.
HTTP 304 Not Modified Nedir?
HTTP 304 Not Modified (HTTP 304 değiştirilmemiş) durum kodu, talep ettiğiniz web sitesinin son erişiminizden bu yana güncellenmediği anlamına gelir. Tipik olarak, tarayıcınız aynı bilgileri tekrar tekrar indirmek zorunda kalmamak için web sayfalarını kaydeder (veya önbelleğe alır). Bu, sayfa yüklenmesini hızlandırma girişimidir. Ancak bu durum sitenizin başına gelirse, ziyaretçilerin web sayfalarınıza erişmesi engellenebilir.
Bir web sayfasına veya URL’ye tıkladığınızda, tarayıcınız bir web sunucusundan bu sayfaya erişim talep eder. Web sayfası son erişiminizden bu yana değiştirilmemişse, web sunucusu tarayıcınıza web sayfasının önbelleğe alınmış bir sürümünü kullanması gerektiğini bildiren bir 304 Not Modified durum kodu gönderir.
Arama motorları web sitelerini dizine eklediğinden ve önbelleğe aldığından, genellikle bu hata kodunu yalnızca bir arama motorundaysanız görürsünüz.
Tarayıcınız bu kodu alırsa, size sayfanın kaydedilmiş bir sürümünü göstermeye çalışır. Ancak bazen eski olduğu için URL’ye erişmenizi engelleyebilir.
Tarayıcılar için bu, kaynağın önbelleğe alınmış sürümünün kullanıcıya gösterilebileceği anlamına gelir. Googlebot gibi crawlerlar için bu, sayfada hiçbir değişiklik olmadığı için sayfayı yeniden taramaya gerek olmadığı anlamına gelir.
304 Not Modified Durum Kodu Kullanmanın Faydaları
304 Not Modified durum kodunu kullanmanın çeşitli faydaları vardır:
Azaltılmış Bant Genişliği Kullanımı: Gerçek kaynağı değil, yalnızca 304 Not Modified yanıtını göndererek, web sunucuları bant genişliğinden tasarruf edebilir ve sunucu yükünü azaltabilir. Bu, özellikle popüler resimler veya JavaScript dosyaları gibi sık istenen kaynaklar için önemlidir.
Daha Hızlı Sayfa Yükleme Süreleri: Bir kaynağın önbelleğe alınmış sürümünü kullanarak, istemciler kaynağın yeniden indirilmesindeki gecikmeyi önleyebilir ve bu da daha hızlı sayfa yükleme süreleri sağlar.
İyileştirilmiş Kullanıcı Deneyimi: Daha hızlı sayfa yükleme süreleri, kullanıcıların yavaş yüklenen sayfalardan sıkılma olasılığı daha düşük olduğundan, daha iyi bir kullanıcı deneyimine yol açabilir.
Geliştirilmiş Google Tarama Verimliliği: Google, 304 durum kodunu destekler.
304 Not Modified (Değiştirilmemiş) Durum Kodu Nasıl Uygulanır?
304 Not Modified durum kodunu web sitenize uygulamak için yapmanız gereken birkaç adım vardır:
- Kaynaklarınızda Last-Modified başlığını ayarlayın: Last-Modified başlığı, kaynağın en son değiştirildiği tarih ve saate ayarlanmalıdır. Bu genellikle HTML sayfalarınızın <head> kısmındaki lastmod öğesi kullanılarak veya sunucu tarafı kodunuzdaki Last-Modified başlığı ayarlanarak yapılabilir.
- İstemci isteklerinde If-Modified-Since başlığını kontrol edin: Bir müşteri bir kaynak için istekte bulunduğunda, kaynağın son talep edildiğinden beri değiştirilip değiştirilmediğini görmek için If-Modified-Since başlığını kontrol edin. Değiştirilmemişse Last-Modified başlığıyla birlikte “304 Not Modified” yanıtı gönderin.
- Cache-Control başlığını ayarlayın: Cache-Control başlığı, bir kaynağın istemciler tarafından ne kadar süreyle önbelleğe alınması gerektiğini belirtmek için kullanılabilir. Örneğin, kaynağın maksimum yaşını belirtmek için max-age yönergesini kullanabilirsiniz, bundan sonra müşteri kaynağın yeni bir sürümünü talep etmelidir. Bu, istemcilerin kaynaklarınızın en güncel sürümünü kullanmasını sağlamaya yardımcı olabilir.
- Sunucu tarafı önbelleğe almayı kullanın: Sunucu tarafı önbelleğe alma, sık istenen kaynakları bellekte depolamak için kullanılabilir ve bu kaynakları diskler gibi daha yavaş depolama sistemlerinden alma ihtiyacını azaltır. Bu, web sitenizin performansını iyileştirmeye ve sunucu yükünü azaltmaya yardımcı olabilir. Bu konuda daha fazla bilgi edinmek için cache nedir makalesini okuyabilirsiniz.
304 Not Modified Durum Kodu Ne Zaman Kullanılmamalıdır?
304 Not Modified durum kodunu kullanmak istemeyebileceğimiz birkaç durum vardır:
Sıklıkla Değişen Kaynaklar: Bir kaynağın sık sık değişmesi muhtemelse, müşterilerin düzenli olarak kaynağın yeni bir sürümünü talep etmesi gerekeceğinden, “304 Değiştirilmemiş” durum kodunu uygulama çabasına değmeyebilir.
Önbelleğe Alınamayan Kaynaklar: Dinamik sayfalar veya kullanıcıya özel içeriğe sahip sayfalar gibi bazı kaynaklar önbelleğe alma için uygun olmayabilir. Bu durumlarda, yanıtta tam kaynağı göndermek daha uygun olabilir.
Kimlik Doğrulaması Gerektiren Kaynaklar: Bir kaynak kimlik doğrulaması gerektiriyorsa, istemci kaynağın önbelleğe alınmış sürümüne erişmek için gerekli kimlik bilgilerine sahip olmayabileceğinden “304 Değiştirilmedi” durum kodu uygun olmayabilir.
304 HTTP Hatası Nedenleri
Tarayıcınız bir kaynağı önbelleğe aldığında, “Last-Modified başlığı” adı verilen bilgileri depolar. Bu bilgi sunucudan gönderilir. Bir tarayıcı, bir kopyası kaydedilmiş bir web sayfası için bir istek alırsa, ancak en son sürüme sahip olup olmadığını bilmiyorsa, sunucuya bir “koşullu kimlik doğrulama” isteği gönderir.
Tarayıcı, kaynağın kopyası için “son değiştirilme” tarihini ve saatini “If-Modified-Since” veya “If-None-Match” başlığı aracılığıyla sunucuya gönderir. Sunucu bu başlıkları kontrol eder ve ayrıca ETag değerine bakar. İkincisi, belirli bir kaynağın sürümünü tanımlamak için kullanılan benzersiz bir tanımlayıcıdır.
Bu dosyalardaki değerler aynı ise (hatamızın konusu), sunucu HTTP 304 Not Modified yanıt başlığını gönderir ve tarayıcı kaynağın önbelleğe alınmış kopyasını kullanır. Tarayıcının kopyası eskiyse, dosyanın son istekten bu yana değiştiği, HTTP 200 kodu göndereceği ve yeni bir kopya kullanılacağı anlamına gelir.
Ne yazık ki, olmaması gerektiği halde bir HTTP 304 yanıtı görmenize neden olabilecek birkaç sorun var. En yaygın nedenler şunlardır:
- Sunucu veya Etki Alanı Adı Sunucusu (DNS) yapılandırma sorunları
- Virüs bulaşmış veya bozulmuş (ör. kötü amaçlı yazılım veya tarayıcıyı etkileyen virüsler) önbelleğe alınmış bir kaynak
304 durum kodu, sunucu tarafındaki veya istemci tarafındaki bir sorundan kaynaklanabilir.
304 Not Modified HTTP Hatası Nasıl Düzeltilir
HTTP 304 durum kodunu çözmek için kullanabileceğiniz yöntemler, basitten oldukça teknik yöntemlere kadar değişir. Bildiğiniz gibi, arama motorları web sitelerinin indekslenmesinden ve saklanmasından sorumludur, bu nedenle bu sorun genellikle siteye erişmek için kullanılan tarayıcıda izlenir.
Bir web sitesinin sahibi olarak, bir kullanıcı 304 not modified durum kodu görürse fazla bir şey yapamasanız da, kullanıcılar web sayfasının tarayıcılarında görünmesini sağlamak için birkaç şey deneyebilir.
1. Tarama verilerini temizleme
Tarama verilerinizin temizlenmesi, önbelleğinizin temizlenmesini sağlar, böylece istediğiniz URL’ye erişmeyi deneyebilir.
Tarama verilerinizi temizlemek için Geçmişinize gidin ve ardından ” Clear browsing data”yi tıklayın. Chrome’da şöyle görünür:
Bunu tıkladığınızda, üç seçeneği de işaretlediğinizden emin olun. Ardından, zaman çerçevesini ” All Time” olarak değiştireceksiniz. Bu şöyle görünmelidir:
2. Tarayıcı Uzantılarınızı Geçici Olarak Devre Dışı Bırakın
HTTP 304 durum kodundan üçüncü taraf bir araç veya tarayıcı uzantısı sorumlu olabilir. Bu nedenle, bağlantınızı kesintiye uğratan araçları tam olarak tespit edip edemeyeceğinizi görmek için bu araçları geçici olarak devre dışı bırakmayı deneyebilirsiniz.
Her uzantıyı tek tek kapatmanızı ve artık erişilebilir olup olmadığını görmek için siteyi her birinden sonra kontrol etmenizi öneririz. Bu araçlardan birini kapatmak HTTP 304 sorununu çözerse, eklentiyi tamamen silmeniz (muhtemelen virüs bulaşmış olduğundan) ve gerekirse yenisini bulmanız gerekir.
3.Malware Scan Gerçekleştirin
HTTP 304 hata koduna neden olabilecek başka bir sorun, Chrome’un eski bir sürümünü kullanıyor olmanızdır. Tarayıcınızı bozan kötü amaçlı yazılım veya sorunlu yazılım olabilir. Bu nedenle, sitenizde kötü amaçlı yazılım taraması yapmanızı ve Chrome’un yerleşik temizleme (built-in) aracını kullanmanızı öneririz.
İlk olarak, Chrome’un en son sürümünü kullandığınızdan emin olmanız (ve kullanmıyorsanız güncellemeniz) en iyisidir. Bunu yapmak için settings menüsüne gidebilir ve ardından Help > About Google Chrome seçeneği üzerine tıklayabilirsiniz:
Tarayıcı, mevcut bir güncelleme olup olmadığını kontrol etmeye başlayacaktır. Varsa, Chrome’u güncellemek için Yeniden Başlat’a basabilirsiniz.
Ardından, tarayıcınızın arama çubuğuna “chrome://settings/cleanup” yazıp Enter tuşuna basabilirsiniz.
Tarayıcınız herhangi bir zararlı yazılım olup olmadığını kontrol etmeye başlayacaktır. Varsa, tamamen devre dışı bırakabilir veya tamamen silebilir ve ardından HTTP 304 hatasının devam edip etmediğini kontrol edebilirsiniz.
Son olarak, bilgisayarınıza yüklediğiniz herhangi bir kötü amaçlı yazılım tarayıcısını çalıştırmayı da deneyebilirsiniz. Bu, İşletim Sisteminizden (OS) bağımsız olarak önerdiğimiz bir şeydir. Ancak Firefox, Safari veya yerleşik bir temizleme aracıyla birlikte gelmeyen Chrome dışında başka bir tarayıcı kullanıyorsanız bu önemlidir.
4. DNS ve TCP/IP Ayarlarınızı Sıfırlayın
Hâlâ HTTP 304 durum hata koduyla karşılaşıyorsanız, deneyebileceğiniz bir sonraki adım DNS’nizi temizlemektir. Bunu yapmak için, tarayıcınızın arama çubuğuna “chrome://net-internals/#dns” yazıp Enter tuşuna basabilirsiniz:
Ardından, DNS sekmesi altında bulunan Clear host cache düğmesine tıklayın. İşiniz bittiğinde, URL’ye yeniden erişmek için tarayıcınızı yeniden başlatmayı deneyin.
Bu işe yaramazsa Google Public DNS’e geçmeyi de deneyebilirsiniz. Bunu, Windows arama çubuğuna “ncpa.cpl” yazarak ve ardından Tamam düğmesine tıklayarak yapabilirsiniz.
Açılan Ağ Bağlantıları penceresinde, mevcut ağ bağlantınıza tıklayın ve Özellikler’i seçin:
Ardından, Internet Protocol Version 4’e çift tıklayın. Açılan pencerede, “Use the following DNS server address” yazan seçeneğe tıklayın:
Tercih edilen değer alanının yanına “8.8.8.8” girin. Ardından, Alternatif alanına “8.8.4.4” girin. İşiniz bittiğinde, Tamam’a tıklayın. Bilgisayarınızı yeniden başlattıktan sonra siteye tekrar erişmeyi deneyin.
macOS kullanıyorsanız Apple > System > Preferences > Network’a giderek DNS ayarlarınızı değiştirebilirsiniz. Ardından, Advanced > DNS’ye tıklayın. Bundan sonra IPv4 veya IPv6 adreslerinin yanındaki (+) simgesini seçebilirsiniz. Yukarıdakiyle aynı Google Genel DNS değerlerini girebilir ve ardından Tamam’ı tıklayabilirsiniz.
5. Check Your Server Configuration Files
HTTP 304, istemci tarafı sorunu (tarayıcınız) veya sunucu tarafı sorunu (web siteniz) olabilir. HTTP 304 durum kodunu üreten sitenin sahibiyseniz, deneyebileceğiniz son düzeltme, sunucu yapılandırma dosyalarınızı kontrol etmektir. Bunu yapmak için gereken adımlar, sunucunuzun Apache mi yoksa NGINX mi kullandığına bağlı olarak değişir.
Apache kullanıyorsanız, sunucu yapılandırma dosyanızın adı .htaccess olacaktır, yani ” hypertext access “in kısaltması. Muhtemelen sitenizin kök dizininde, genellikle public_html klasöründe bulunur. .htaccess dosyaları, yönlendirmeler de dahil olmak üzere çok çeşitli istekleri işlemekten sorumludur.
Bu dosyaya FileZilla gibi bir FTP (Dosya Aktarım Protokolü) istemcisi veya web barındırıcınızın dosya yöneticisi aracılığıyla erişebilirsiniz. htaccess dosyanızı bulup açtığınızda, “mod_cache” etiketli bir bölüm aramalısınız. Bu, şöyle bir şeye benzeyecek:
Bu bölümü tamamen silmek yerine, kodu yorumlayarak geçici olarak kapatabilirsiniz. Bunu yapmak için her satırın önüne bir “#” koyun.
NGINX kullanıyorsanız, nginx.config dosyasını aramak isteyeceksiniz. Ancak, NGINX genellikle yerleşik önbelleğe alma ile birlikte geldiğinden, bu yapılandırma dosyasının HTTP 304 kodlarının kaynağı olması yaygın değildir.
Ayrıca wordpress hosting hizmetinizi güçlü ve deneyimli destek ekibine sahip bir sağlayıcıdan alıyorsanız 304 durum kodu hatasını (web sitenizden) düzeltme işini onlara bırakabilirsiniz.
Son Söz
Bir web sitesine erişmeye çalışırken hata ve yönlendirme mesajlarıyla karşılaşmak son derece sinir bozucu olabilir. Ancak, belirli durum kodlarının ne anlama geldiğini anlamak, sorunu çözmenize yardımcı olabilir.
Örneğin, HTTP 304 durum koduyla karşılaşırsanız, bunun tarayıcı ayarlarınız veya DNS yapılandırmanızla ilgili bir sorun olduğunu varsayabilirsiniz. Bu yazıda, HTTP 304 durum kodunun kavramını ve işlevini, avantajlarını ve dezavantajlarını ve HTTP 304 durum kodu hatasının nedenlerini tanıttıkev bu sorunu çözmek için deneyebileceğiniz bazı olası çözümleri açıkladık.
HTTP 304’ün düzeltilmesi hakkında herhangi bir sorunuz var mı? Aşağıdaki yorumlar bölümünde bize bildirin.
Sıkça Sorulan Sorular
En sık sorulan sorulardan bazılarının yanıtları
304 Kodu Ne Anlama Geliyor?
HTTP 304 not modified status kodu, talep ettiğiniz web sitesinin son erişiminizden bu yana güncellenmediği anlamına gelir.
304 Bir Hata mı?
Bir kullanıcı kodu gördüğünde 304 kodu bir hataya dönüşür. 304 kodunu görebilmek, tarayıcı ile sunucu arasında kullanıcının istediği web sayfasına erişmesini engelleyen bir iletişim sorunu olduğunu gösterir.
304 Yanıt Kodu Neden Önemlidir?
Küçük web siteleri için 304 HTTP kodunun sağladığı önbelleğe alma fırsatları o kadar da önemli değildir.
Ancak, büyük web siteleri için 304 yanıt kodu, tarama bütçesinden tasarruf etmek için harika bir fırsattır. Google’ın tarayıcısı, değiştirilmemiş sayfaları yeniden taramaz ve bunun yerine daha yeni ve güncellenmiş sayfaları tarayabilir.
304 SEO İçin Kötü mü?
Bu tür kodları gören arama motoru botları söz konusu olduğunda, bu SEO’nuz için bir sorundur. Bir HTTP 304 yönlendirmesi, arama motoruna web sitenizin son taranmasından bu yana güncellenmediğini ve yeni bilgi olmadığını söyler. Yukarıda bahsedildiği gibi bu kodun kullanıcılar tarafından görüldüğü durumlar dışında genel olarak bu kodun kullanılması SEO optimizasyonuna olumlu etki yapmaktadır.