err_cache_miss Hatası Nedir, Nasıl Düzeltilir?

Yayın tarihi:

13 dk okuma

Acar Diveroli
Yazar: Acar Diveroli
Büyük bir -400, altında ERR_CACHE_MISS ve Confirm Form Resubmission; sağda bir turu eksik, yeri kesik çizgili mavi şerit

Bir form gönderdiniz: bir sipariş, bir otel rezervasyonu, bir yorum ya da filtreli bir arama. Gelen sayfadaki bir bağlantıya tıklıyor, sonra o sayfaya yeniden bakmak için Geri düğmesine basıyorsunuz; sayfanın yerine tarayıcının kendi hata sayfası çıkıyor. Başlıkta "Yeniden Form Gönderme İşlemini Onayla", en altta da küçük puntolarla ERR_CACHE_MISS yazıyor. Sayfayı yenilediğinizde devam etmek isteyip istemediğinizi soran bir pencere açılıyor. Geliştiriciler aynı kodu başka yerlerde görür: konsoldaki Failed to load resource: net::ERR_CACHE_MISS satırında ya da yerleşik tarayıcısı bu koddan başka bir şey göstermeyen bir Android uygulamasında.

Bu yazıda kodun ne anlama geldiğini, hata sayfasının ne dediğini, Geri düğmesinin sizi bu ekrana nasıl getirdiğini ve denemelerimizde yeniden ürettiğimiz nedenleri anlatıyoruz. Ardından bir formu yeniden göndermenin ne zaman güvenli olduğunu, Chrome, Edge ve Android için çözümleri, site sahiplerinin ve uygulama geliştiricilerinin neyi değiştirmesi gerektiğini ele alıyoruz.

ERR_CACHE_MISS ne demek?

Yalnız Chrome'un önbelleğinden cevaplanabilecek bir isteğin orada hiçbir şey bulamadığı anlamına gelir. Önbellek, tarayıcının daha önce indirdiği sayfaların, resimlerin ve betiklerin kopyalarını bir sonraki açılışta daha hızlı göstermek için sakladığı klasördür. Chromium'un ağ hataları listesi koda -400 numarasını ve tek satırlık bir açıklama verir: The cache does not have the requested entry. (İstenen kayıt önbellekte yok.) -400 ile -499 arasındaki numaralar önbellek hatalarına ayrılmıştır.

Kod bağlantınız hakkında bir şey söylemez; siteden de gelmez. Chrome, Edge, Brave ve Opera, Chromium'un ağ katmanını paylaştığı için bu hatayı aynı biçimde gösterir; web sayfalarını bir web görünümünde (WebView) açan Android uygulamaları da öyle.

Chrome'un kendini önbellekle sınırlamasının olağan nedeni bir formdur. Bir form gönderdiğinizde tarayıcı bir POST isteği yapar, yani yazdığınız verileri sunucuya iletir. Sunucu da bu verilerle bir işlem yapar: odayı ayırır, yorumu yayımlar ya da karttan ödemeyi çeker. O sayfayı ağdan yeniden yüklemek verileri yeniden göndermek demektir; bu yüzden Chrome, Geri ve İleri düğmeleriyle gezinirken yalnız elindeki kopyayı kullanabilir.

Hata sayfası ne diyor?

Hatayı Chromium 145'te, kendi bilgisayarımızdaki küçük bir deneme formuyla yeniden ürettik: formu gönderdik, başka bir sayfa açtık, Geri düğmesine bastık. Türkçe arayüzde sayfada tam olarak şu satırlar vardı (İngilizce Chrome'da başlık "Confirm Form Resubmission" olarak görünür):

Ekrandaki satırAnlamı
"Yeniden Form Gönderme İşlemini Onayla"Bir form sonucunun kopyası bulunamadığında çıkan başlık
"Bu Web sayfasının düzgün şekilde görüntülenmesi için, önceden girdiğiniz veriler gerekiyor. Bu verileri tekrar gönderebilirsiniz, ancak bunu yaptığınızda bu sayfanın daha önce gerçekleştirdiği işlemler de tekrar edilir."Chrome'un formunuzu yeniden göndermesi gerekir
"Sayfayı yüklemek üzere gereken verileri tekrar göndermek için yeniden yükle düğmesine basın."Chrome'un sunduğu tek yol
ERR_CACHE_MISSKodun kendisi

Sayfanın kendine ait bir düğmesi yoktur; sözü edilen yeniden yükleme, tarayıcının Bu sayfayı yeniden yükleyin düğmesi ya da F5 tuşudur. Basınca aynı başlıklı bir pencere açılır ve şunu sorar: "Aradığınız sayfa, girdiğiniz bilgileri kullandı. O sayfaya dönmeniz, gerçekleştirdiğiniz işlemlerin tekrarlanmasına yol açabilir. Devam etmek istiyor musunuz?" Devam düğmesi formu yeniden gönderir. Pencerenin metnini Chromium'un kaynak kodundan aldık, çünkü otomasyonla çalıştırılan bir tarayıcı sayfayı bu pencereyi göstermeden yeniliyor.

Kod, bir form sonucu olmayan bir sayfada çıkarsa Chromium bunun yerine genel önbellek sayfasını kullanır: "Bu site önbellekten yüklenemiyor" başlığı, "Bu sitenin kaydedilen (önbelleğe alınan) kopyası okunamadı." satırı ve bir Yeniden Yükle düğmesi. Bu ikinci sayfa daha seyrek görülür ve bir formdan çok boşaltılmış ya da bozulmuş bir önbelleğe işaret eder.

Geri düğmesi neden ERR_CACHE_MISS ile sonuçlanır?

  1. Formu gönderirsiniz. Chrome verilerinizle bir POST isteği gönderir; sunucu işlemi yapar ve bir sonuç sayfası döndürür, örneğin "Siparişiniz alındı".
  2. Chrome bir kopya saklar. Sonuç sayfası, sekmenin geçmişindeki o kayda bağlanarak tarayıcının önbelleğine kaydedilir. Site, tarayıcılara bir sayfayı hiç saklamamalarını söyleyen Cache-Control: no-store yanıt başlığını göndermişse kopya saklanmaz.
  3. Başka bir sayfaya geçersiniz. Sonuç sayfasındaki bir bağlantıya tıklarsınız ya da aynı sekmede başka bir adres açarsınız.
  4. Geri düğmesine basarsınız. Bir formla oluşan geçmiş kaydında Chrome yalnız önbellekten okur ve daha yeni bir sürüm olup olmadığını her zamanki gibi denetlemez. HTTP önbellekleme standardı RFC 9111 tam olarak buna izin verir: tarayıcının geçmişi süresi dolmuş bir kopyayı bile gösterebilir ve no-store yönergesine uyabilir.
  5. Kopya ya vardır ya yoktur. Varsa sayfa hemen görünür ve hiçbir şey gönderilmez. Yoksa Chrome ERR_CACHE_MISS ekranında durur ve kararı size bırakır.

Deneme sunucumuzda her seferinde tek bir şeyi değiştirdik:

Sitenin sonuç sayfasıyla gönderdiğiSayfadan çıkıp Geri'ye basıncaForm yeniden gitti mi?
Önbellek başlığı yokSonuç sayfası önbellekten geldiHayır
Cache-Control: private, max-age=600Sonuç sayfası önbellekten geldiHayır
Cache-Control: no-storeERR_CACHE_MISSHayır
Önbellek başlığı yok, Geri'den önce önbellek boşaltıldıERR_CACHE_MISSHayır
Sıradan bir sayfaya 303 yönlendirmesiO sayfa yeniden yüklendiHayır

Sayfanın ne kadar süre saklanabileceği sonucu değiştirmedi; yalnız "saklamayın" talimatı ve boşaltılmış önbellek değiştirdi. Chrome'un ileri-geri önbelleği (son sayfaları bütünüyle bellekte tutan özellik) kapalıyken de ilk satır aynı kaldı: kopya disk önbelleğinden geldi.

ERR_CACHE_MISS neden çıkar?

  • Site, tarayıcıdan sayfayı saklamamasını ister. Bankalar, ödeme adımları, hesap sayfaları ve oturum açma formları, aynı bilgisayarı sonra kullanan kişi sayfayı diskten açamasın diye çoğu zaman bilerek no-store gönderir. Bu sitelerde Geri'den sonra çıkan hata beklenen davranıştır.
  • Kayıtlı kopya silinmiştir. Önbelleğe alınan resimleri ve dosyaları silmek, tarayıcı önbelleklerini belli aralıklarla boşaltan bir temizlik programı ya da önbellek dolduğunda Chrome'un eski kayıtları atması, Geri düğmesinin kullanacağı kopyayı ortadan kaldırır.
  • Bir betik yalnız önbellekten cevap istemiştir. Önbellekte olmayan bir adres için fetch() çağrısını cache: "only-if-cached" ile yapan bir web sayfası aynı kodla başarısız olur.
  • Bir Android uygulamasının web görünümü önbellekle sınırlıdır. Uygulamalar web sayfalarını Android'in WebView bileşeniyle gösterir; uygulamanın internet izni yoksa ya da web görünümü yalnız önbellekten okuyacak biçimde ayarlanmışsa, önceden kaydedilmemiş her sayfa ERR_CACHE_MISS ile başarısız olur.
  • Seyrek de olsa bozulmuş bir önbellek. Chromium geliştiricilerinin notuna göre önbellek sayfası genellikle, tarayıcının ya da bilgisayarın düzgün kapatılmaması disk önbelleğini bozduğunda çıkar.

Formu yeniden göndermek güvenli mi?

Bu, formun ne yaptığına bağlıdır ve bunu yalnız siz bilirsiniz. Yeniden gönderdiğinizde istek ilkinin tıpatıp aynısı olarak tekrarlanır; site yinelenen gönderimleri kendisi denetlemiyorsa sunucu işlemi ikinci kez yapar.

Gönderdiğiniz formYeniden gönderilir mi?
Arama, filtreleme ya da sıralamaEvet; sunucuda hiçbir şey değişmez
Oturum açmaGenellikle evet; yalnız yeniden oturum açmış olursunuz
Yorum, mesaj ya da iletişim formuİki kez yayımlanabilir ya da gönderilebilir
Sipariş, ödeme, rezervasyon ya da para transferiHesabınıza ya da e-postanıza bakmadan hayır

Emin değilseniz yeniden göndermeyin. Sitede yaptığınız işe ait sayfayı, örneğin sipariş geçmişini, gönderilen mesajları ya da rezervasyon listesini açın ve ilk denemenin gerçekleşip gerçekleşmediğine bakın.

Chrome'da ERR_CACHE_MISS nasıl düzeltilir?

Çoğu zaman ilk iki adımdan biri yeter.

  1. Zararsızsa formu yeniden gönderin. Sol üstteki Bu sayfayı yeniden yükleyin düğmesini seçin ya da F5'e basın (Windows'ta Ctrl + R de olur), ardından açılan "Yeniden Form Gönderme İşlemini Onayla" penceresinde Devam düğmesini seçin.
  2. Ya da göndermeden devam edin. Sitenin logosuna tıklayın ya da adresini yazın, sonra ihtiyacınız olan sayfayı sitenin menüsünden açın; sayfa sıradan bir istekle yüklenir ve güncel durumu, örneğin zaten verdiğiniz siparişi gösterir.
  3. Hata form sonucu olmayan sayfalarda da çıkıyorsa Gizli pencerede deneyin. Diğer > Yeni Gizli pencere komutunu seçip aynı siteyi açın; orada çalışıyorsa Diğer > Uzantılar > Uzantıları yönet sayfasında uzantıları tek tek kapatın.
  4. Önbelleğe alınan resimleri ve dosyaları silin. Diğer > Tarama verilerini sil komutunu seçin (ya da Ctrl + Üst Karakter + Delete tuşlarına basın; Mac'te ⌘ + Üst Karakter + Delete), Tüm zamanlar gibi bir zaman aralığı seçin, Önbelleğe alınan resimler ve dosyalar kutusunu işaretleyin, oturumlarınız açık kalsın istiyorsanız Çerezler ve diğer site verileri kutusundaki işareti kaldırın ve Verileri sil düğmesini seçin. Google'ın tarama verilerini silme yardım sayfası her seçeneği açıklar. Bu adım "önbellekten yüklenemiyor" hâlini düzeltir ama bir form sonucunu geri getiremez, çünkü Geri düğmesinin ihtiyaç duyduğu kopyanın ta kendisini siler.
  5. Chrome'u güncelleyin. Diğer > Yardım > Google Chrome Hakkında yolunu seçin ve görünüyorsa Yeniden başlat düğmesine basın.

Microsoft Edge'de

Edge aynı Chromium motoruyla çalışır ve aynı kodu gösterir; çözüm adımları da aynıdır. Önbelleğini temizlemek için Ayarlar ve daha fazlası > Ayarlar > Gizlilik, arama ve hizmetler yolunu açın, ardından Gözatma verilerini temizle bölümünü ve "Gözatma verilerini şimdi temizle" satırının yanındaki Nelerin temizleneceğini seçin düğmesini seçin. Zaman aralığı listesinden bir süre seçin, Önbelleğe alınan görüntüler ve dosyalar kutusunu işaretleyin ve Şimdi temizle düğmesini seçin.

Android'de

Android için Chrome'da sayfayı yenileyip onaylayın ya da siteyi adresinden yeniden açın. Önbelleği temizlemek için adres çubuğunun sağındaki Diğer simgesine, ardından Tarama verilerini sil seçeneğine dokunun; Diğer seçenekler'e dokunun, Önbelleğe alınan resimler ve dosyalar kutusunu işaretleyin ve Verileri sil'e dokunun.

Hata Chrome'da değil de başka bir uygulamanın içinde çıkıyorsa o uygulamanın web görünümünden gelir. Telefonun internete bağlı olduğuna bakın, karşılaştırmak için aynı bağlantıyı Chrome'da açın ve uygulamayı güncelleyin; hata sürüyorsa onu yalnız uygulamanın geliştiricisi düzeltebilir.

Site sahipleri ve geliştiriciler bu hatayı nasıl önler?

  1. Her formdan sonra yönlendirin (Post/Redirect/Get). Form işlendikten sonra sonuç sayfasını doğrudan döndürmek yerine, sonucu gösteren sıradan bir sayfaya yönlendiren bir 303 See Other yanıtı verin. RFC 9110, 303 durum kodunun asıl kullanım alanı olarak bunu sayar. Geri düğmesi ve yenileme o sayfayı, güvenle tekrarlanabilen bir GET isteğiyle ister. Deneme sunucumuzda form işleyicisine iki satır yetti:
js
res.writeHead(303, { Location: "/done" });
res.end();
  1. Yönlendirmeyi başka bir sayfaya verin. Kendisine ya da form işleyicisine geri yönlendiren bir sonuç adresi, Chrome bir döngü hatasıyla vazgeçene kadar döngüde kalır; böyle bir döngünün nasıl bulunacağını err_too_many_redirects Hatası Nedir, Nasıl Çözülür? yazımızda anlattık.
  2. Veriyi korumak için gereken yerde no-store başlığını bırakın. Post/Redirect/Get ile sonuç sayfası sıradan bir GET sayfası olur; böylece bir ödeme sayfası no-store başlığını koruyabilir ve Geri düğmesi onu yalnızca yeniden yükler.
  3. Tekrarı zararsız hâle getirin. Her forma tek kullanımlık bir belirteç (token) koyun ve aynı belirteçle gelen ikinci gönderimi yok sayın; böylece Devam düğmesini seçen bir ziyaretçi ikinci bir sipariş oluşturmaz.

JavaScript'te ve tarayıcı otomasyonunda

fetch(url, { cache: "only-if-cached", mode: "same-origin" }) yalnız önbellekten cevap verir. Önbellekte olmayan bir adres için Chromium 145 konsola Failed to load resource: net::ERR_CACHE_MISS yazdı ve promise'i TypeError: Failed to fetch ile reddetti; MDN ise bu durum için bir 504 cevabı tarif eder, bu yüzden ikisini de ele alın. Denememizde Playwright'ın page.goBack() çağrısı da no-store sonuç sayfasında net::ERR_CACHE_MISS ile başarısız oldu.

Android WebView'da

Bir WebView, sayfaları ağdan ancak uygulama manifest dosyasında <uses-permission android:name="android.permission.INTERNET" /> satırıyla internet izni istediğinde yükleyebilir. Android'in WebSettings başvuru sayfası bu izin yoksa ağ yüklemelerinin varsayılan olarak engellendiğini söyler; Chromium'un WebView kodu da bu engeli yalnız önbellekten yüklemeye çevirir, bu yüzden daha ilk sayfa ERR_CACHE_MISS ile başarısız olur.

Bakılacak ikinci şey setCacheMode ayarıdır. LOAD_CACHE_ONLY, belgedeki tanımıyla Don't use the network, load from the cache (ağı kullanma, önbellekten yükle) demektir; çevrimdışı bir mod için uygundur ama henüz kaydedilmemiş her şeyde başarısız olur. Normal ayar LOAD_DEFAULT değeridir.

ERR_CACHE_MISS benzer hatalardan nasıl ayrılır?

KodNumaraAnlamı
ERR_CACHE_MISS-400Yalnız kayıtlı kopyaya izin verilen yerde kopya yok
ERR_CACHE_READ_FAILURE-401Kayıtlı kopya var ama okunamadı
ERR_INTERNET_DISCONNECTED-106Cihazın ağ bağlantısı yok
ERR_TOO_MANY_REDIRECTS-310Yönlendirmeler bir döngüye girdi
ERR_PROXY_CONNECTION_FAILED-130Chrome cihazda ayarlı proxy sunucusuna ulaşamadı

Önce hata sayfasının en altındaki koda bakın; sorunu başlıktan daha kesin adlandırır. Bir proxy kodu, cihazınızdaki bir proxy ayarına işaret eder; bu durumu err_proxy_connection_failed Hatası Nedir, Nasıl Çözülür? yazımızda anlattık.

Proxy ERR_CACHE_MISS hatasına yol açmaz: kayıtlı kopya sizin tarayıcınızda durur, HTTPS bir sitede proxy de yalnız okuyamadığı ve saklayamadığı şifreli trafiği iletir. Proxy'nin değiştirebileceği şey tekrarın kendisidir. Adresi sık sık değiştiren rotating oturumlu bir Residential Proxy kullanıyorsanız yeniden gönderdiğiniz form ilk seferden farklı bir IP adresinden çıkabilir; bu yüzden oturum açma ve ödeme işlemlerinde aynı adresi 1 ile 60 dakika arasında koruyan sticky oturum kullanın.

Bu hatayla nerede karşılaşılır?

  • Ödeme, rezervasyon ya da sipariş sayfasından sonra Geri düğmesine basınca.
  • Diske hiç kaydedilmeyen banka ve hesap sayfalarında.
  • Verilerini POST ile gönderen alışveriş ve iş ilanı sitelerinin arama ve filtre formlarında.
  • Web sayfalarını bir web görünümüyle gösteren uygulamaların içinde açılan bağlantılarda.

Sık yapılan hatalar

  • Bir form sonucunu geri getirmek için önbelleği temizlemek. Geri düğmesinin göstereceği kopyayı siler.
  • Bir ödemeden sonra kontrol etmeden Devam'ı seçmek. Site işlemi iki kez yapabilir.
  • Ağı sıfırlamak ya da DNS değiştirmek. Bu hata ağa hiç ulaşmaz.
  • Chrome'u yeniden kurmak. Tarayıcı zaten tasarlandığı gibi çalışıyordur.
  • Hassas sayfalardan no-store başlığını kaldırmak. Bunun yerine formdan sonra bir yönlendirme ekleyin.
  • Bir WebView uygulamasını internet izni olmadan yayımlamak. Önbellekte olmayan her sayfa başarısız olur.

Karar rehberi

DurumNe yapmalı?
Geri'den sonra, bir arama ya da filtre sonucundaYenileyin ve Devam'ı seçin
Geri'den sonra, bir sipariş ya da ödemedeHesabınıza ya da e-postanıza bakın; yeniden göndermeyin
Form sonucu olmayan sayfalardaGizli pencerede deneyin, sonra önbelleğe alınan dosyaları silin
"Bu site önbellekten yüklenemiyor"Önbelleğe alınan dosyaları silin, Chrome'u güncelleyin
Bir Android uygulamasının içindeChrome'da karşılaştırın, uygulamayı güncelleyin, geliştiricisine bildirin
Kendi sitenizde bir formdan sonra çıkıyor303 ile Post/Redirect/Get
WebView uygulamanız ilk sayfada hata veriyorİnternet iznini ekleyin, önbellek modunu kontrol edin

Sıkça sorulan sorular

ERR_CACHE_MISS tehlikeli mi?

Hayır. Bir saldırı ya da virüs değil, Chrome'un bilerek koyduğu bir güvenlik önlemidir: yaptığınız bir şeyi size sormadan tekrarlamaz. Tek risk, para çeken ya da mesaj gönderen bir formu yeniden göndermektir.

ERR_CACHE_MISS neden YouTube'da ya da Facebook'ta çıkıyor?

Kodun bu hizmetlerle özel bir ilgisi yoktur. Tarayıcıda karşılaştığınız durum, her sitede olduğu gibi bir formdan sonra Geri düğmesine basmaktır; bir uygulamanın içindeyse uygulamanın web görünümü sayfayı ağdan yükleyememiş ve kayıtlı bir kopya da bulamamıştır. Sayfayı yenileyin, bağlantınızı kontrol edin ve karşılaştırmak için bağlantıyı Chrome'da açın.

Android'de ERR_CACHE_MISS nasıl düzeltilir?

Chrome'da sayfayı yenileyip onaylayın ya da siteyi adresinden yeniden açın. Hata başka bir uygulamanın içinde çıkıyorsa o uygulamayı güncelleyin; kodundaki eksik bir izni ya da yalnız önbellekten yükleme ayarını ancak geliştiricisi düzeltebilir.

Microsoft Edge de ERR_CACHE_MISS gösterir mi?

Evet. Edge Chromium üzerinde çalışır, aynı kodu aynı nedenlerle gösterir ve aynı çözümler geçerlidir.

Bir ödeme formunu yeniden gönderirsem iki kez ödeme alınır mı?

Alınabilir. Bazı siteler yinelenen bir siparişi fark edip durdurur, ama bunu dışarıdan bilemezsiniz; Devam düğmesini seçmeden önce bankacılık uygulamanıza, e-postanıza ya da sipariş geçmişinize bakın.

Önbelleği temizlemek ERR_CACHE_MISS hatasını düzeltir mi?

Yalnız sitenin önbellekten yüklenemediğini söyleyen, daha seyrek görülen hâlini düzeltir. "Yeniden Form Gönderme İşlemini Onayla" sayfasında tersini yapar, çünkü Chrome'un göstereceği kopyayı siler.

Özet

ERR_CACHE_MISS, Chrome'un bir sayfanın kayıtlı kopyasına ihtiyaç duyduğu ama elinde bulunmadığı anlamına gelir; o sayfa neredeyse her zaman Geri ile dönülen bir form sonucudur. Zararsız formları yeniden gönderin, sipariş ve ödemelerde önce kontrol edin, önbelleği yalnız hata bir formla ilgili değilse temizleyin. Site sahipleri her formdan sonra bir 303 yönlendirmesiyle bu hatayı önler; Android geliştiricileri internet iznine ve WebView önbellek moduna bakar. Proxy ile çalışıyorsanız rotating ve sticky oturumları proxy sayfamızda anlattık.

ChatGPT'ye sorClaude'a sor