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ır | Anlamı |
|---|---|
| "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_MISS | Kodun 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?
- 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ı".
- 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-storeyanıt başlığını göndermişse kopya saklanmaz. - 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.
- 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-storeyönergesine uyabilir. - Kopya ya vardır ya yoktur. Varsa sayfa hemen görünür ve hiçbir şey gönderilmez. Yoksa Chrome
ERR_CACHE_MISSekranında durur ve kararı size bırakır.
Deneme sunucumuzda her seferinde tek bir şeyi değiştirdik:
| Sitenin sonuç sayfasıyla gönderdiği | Sayfadan çıkıp Geri'ye basınca | Form yeniden gitti mi? |
|---|---|---|
| Önbellek başlığı yok | Sonuç sayfası önbellekten geldi | Hayır |
Cache-Control: private, max-age=600 | Sonuç sayfası önbellekten geldi | Hayır |
Cache-Control: no-store | ERR_CACHE_MISS | Hayır |
| Önbellek başlığı yok, Geri'den önce önbellek boşaltıldı | ERR_CACHE_MISS | Hayır |
| Sıradan bir sayfaya 303 yönlendirmesi | O sayfa yeniden yüklendi | Hayı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-storegö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_MISSile 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 form | Yeniden gönderilir mi? |
|---|---|
| Arama, filtreleme ya da sıralama | Evet; sunucuda hiçbir şey değişmez |
| Oturum açma | Genellikle 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 transferi | Hesabı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.
- 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.
- 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.
- 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.
- Ö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.
- 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?
- 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:
res.writeHead(303, { Location: "/done" });
res.end();- 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.
- Veriyi korumak için gereken yerde
no-storebaşlığını bırakın. Post/Redirect/Get ile sonuç sayfası sıradan bir GET sayfası olur; böylece bir ödeme sayfasıno-storebaşlığını koruyabilir ve Geri düğmesi onu yalnızca yeniden yükler. - 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?
| Kod | Numara | Anlamı |
|---|---|---|
ERR_CACHE_MISS | -400 | Yalnız kayıtlı kopyaya izin verilen yerde kopya yok |
ERR_CACHE_READ_FAILURE | -401 | Kayıtlı kopya var ama okunamadı |
ERR_INTERNET_DISCONNECTED | -106 | Cihazın ağ bağlantısı yok |
ERR_TOO_MANY_REDIRECTS | -310 | Yönlendirmeler bir döngüye girdi |
ERR_PROXY_CONNECTION_FAILED | -130 | Chrome 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-storebaş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
| Durum | Ne yapmalı? |
|---|---|
| Geri'den sonra, bir arama ya da filtre sonucunda | Yenileyin ve Devam'ı seçin |
| Geri'den sonra, bir sipariş ya da ödemede | Hesabınıza ya da e-postanıza bakın; yeniden göndermeyin |
| Form sonucu olmayan sayfalarda | Gizli 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çinde | Chrome'da karşılaştırın, uygulamayı güncelleyin, geliştiricisine bildirin |
| Kendi sitenizde bir formdan sonra çıkıyor | 303 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.




