ERR_CACHE_MISS: Nguyên Nhân & Cách Khắc Phục (Chrome)

ERR_CACHE_MISS Là Gì?
ERR_CACHE_MISS là mã lỗi nội bộ của Chromium (lỗi -400), có nghĩa là trình duyệt đã cố lấy một trang từ bộ nhớ đệm cục bộ nhưng mục đó không tồn tại. Đây không phải mã trạng thái HTTP — nó không bao giờ rời khỏi trình duyệt của bạn. Lỗi được định nghĩa trong mã nguồn Chromium (net_error_list.h) là: "The cache does not have the requested entry." (Bộ nhớ đệm không có mục được yêu cầu.)
Lỗi này thường xảy ra khi bạn gửi một biểu mẫu (gửi yêu cầu POST), chuyển sang trang khác, rồi nhấn nút quay lại hoặc làm mới. Theo đặc tả HTTP (RFC 9111), phản hồi POST không được lưu vào bộ nhớ đệm theo mặc định, nên khi bạn cố quay lại, Chrome không có gì để hiển thị.
ERR_CACHE_MISS không phải là mối đe dọa bảo mật và không cho thấy bất kỳ vấn đề nào với máy chủ của trang web. Đây là cơ chế bảo vệ từ phía trình duyệt nhằm ngăn chặn việc gửi lại biểu mẫu ngoài ý muốn — điều có thể gây ra thanh toán trùng lặp, đơn hàng trùng lặp hoặc các bản ghi dữ liệu trùng lặp.
ERR_CACHE_MISS Trông Như Thế Nào
Chrome hiển thị lỗi này dưới dạng thông báo toàn trang với nội dung "Không thể truy cập trang web này" hoặc "Xác nhận gửi lại biểu mẫu." Thông báo chính xác phụ thuộc vào ngữ cảnh. Dưới đây là các biến thể phổ biến.
ERR_CACHE_MISS — trang lỗi tiêu chuẩn hiển thị trong thanh địa chỉ
net::ERR_CACHE_MISS — mã lỗi đầy đủ hiển thị trong bảng điều khiển DevTools
Xác nhận gửi lại biểu mẫu — hộp thoại Chrome hiển thị trước khi gửi lại dữ liệu POST
Trang web này yêu cầu dữ liệu mà bạn đã nhập trước đó — nội dung chi tiết bên trong hộp thoại gửi lại
err_cache_miss — biến thể chữ thường mà một số người dùng tìm kiếm
Nguyên Nhân Gây Ra ERR_CACHE_MISS
Lỗi này có cả nguyên nhân từ phía người dùng và phía máy chủ. Hiểu rõ nguyên nhân nào áp dụng cho tình huống của bạn sẽ giúp tìm ra cách khắc phục phù hợp.
Gửi biểu mẫu + quay lại/làm mới — Nguyên nhân số 1. Bạn gửi biểu mẫu (yêu cầu POST), sau đó nhấn quay lại hoặc làm mới. Chrome không thể lấy phản hồi POST từ bộ nhớ đệm vì phản hồi POST không được lưu vào bộ nhớ đệm.
Header Cache-Control quá nghiêm ngặt — Máy chủ gửi
Cache-Control: no-store, yêu cầu Chrome không bao giờ lưu phản hồi vào bộ nhớ đệm. Khi bạn quay lại, không có gì để tải.Bộ nhớ đệm trình duyệt bị hỏng — Các tệp bộ nhớ đệm cục bộ bị hư hại, thường sau khi treo máy, tắt máy đột ngột hoặc lỗi ổ đĩa.
Tiện ích mở rộng trình duyệt — Trình chặn quảng cáo, tiện ích bảo mật và VPN chặn các yêu cầu mạng và có thể ảnh hưởng đến caching. Đây là nguyên nhân phổ biến đáng ngạc nhiên.
Phiên bản Chrome cũ — Các phiên bản cũ có thể chứa lỗi xử lý bộ nhớ đệm đã được sửa trong các bản phát hành mới hơn.
Phần mềm diệt virus hoặc bảo mật — Một số chương trình bảo mật có tính năng 'bảo vệ web' hoặc 'quét HTTPS' chặn lưu lượng giữa Chrome và máy chủ, làm hỏng hành vi caching.
Mở cùng một biểu mẫu trên nhiều tab — Mở cùng một trang thanh toán hoặc biểu mẫu trên nhiều tab có thể gây xung đột bộ nhớ đệm.
Thay đổi VPN hoặc proxy giữa phiên — Chuyển đổi máy chủ VPN hoặc kết nối mạng khác làm vô hiệu hóa các mục bộ nhớ đệm từ kết nối trước.
ERR_CACHE_MISS và Xác Nhận Gửi Lại Biểu Mẫu
Hai thông báo này có liên quan nhưng xuất hiện trong các tình huống khác nhau. Hộp thoại "Xác nhận gửi lại biểu mẫu" xuất hiện khi Chrome có khả năng gửi lại dữ liệu POST — nó đang xin phép bạn. ERR_CACHE_MISS xuất hiện khi Chrome hoàn toàn không thể lấy trang đã lưu trong bộ nhớ đệm và việc gửi lại là không thể.
Trình tự điển hình là: bạn gửi biểu mẫu (POST) → Chrome hiển thị phản hồi → bạn nhấn quay lại hoặc làm mới → Chrome sẽ hiển thị hộp thoại gửi lại HOẶC hiển thị ERR_CACHE_MISS, tùy thuộc vào header cache của máy chủ và liệu dữ liệu biểu mẫu còn khả dụng hay không.
Tại sao trình duyệt làm vậy? Vì theo đặc tả HTTP, yêu cầu POST là phương thức "không an toàn". Tự động gửi lại dữ liệu POST mà không có sự đồng ý của người dùng có thể gây ra vấn đề nghiêm trọng — tính tiền thẻ tín dụng hai lần, đơn hàng trùng lặp hoặc bản ghi cơ sở dữ liệu trùng lặp. Trình duyệt đang bảo vệ bạn.
Cách Sửa Lỗi ERR_CACHE_MISS (Cho Người Dùng)
Nếu bạn gặp lỗi này khi duyệt web, hầu như luôn có thể khắc phục từ trình duyệt. Bắt đầu với cách đơn giản nhất và thử lần lượt.
Cách 1: Hard Refresh Trang
Hard refresh bỏ qua bộ nhớ đệm trình duyệt và tải bản sao hoàn toàn mới từ máy chủ. Đây là cách khắc phục nhanh nhất và giải quyết được lỗi trong hầu hết các trường hợp.
# Windows / Linux
Ctrl + Shift + R
# Mac
Cmd + Shift + R
# Alternative (all platforms)
Ctrl + F5Nếu hard refresh thông thường không hiệu quả, hãy thử nhấp chuột phải vào nút tải lại (khi DevTools đang mở) và chọn "Empty Cache and Hard Reload" để đặt lại triệt để nhất.
Cách 2: Xóa Bộ Nhớ Đệm Trình Duyệt
Nếu hard refresh không hiệu quả, hãy xóa hoàn toàn dữ liệu bộ nhớ đệm của Chrome. Thao tác này xóa tất cả các mục bộ nhớ đệm bị hỏng và buộc Chrome bắt đầu lại từ đầu.
Bước 1: Mở Cài đặt Chrome (ba dấu chấm → Cài đặt) hoặc nhập
chrome://settings/clearBrowserDatavào thanh địa chỉBước 2: Chuyển sang tab Nâng cao
Bước 3: Đặt phạm vi thời gian thành Từ trước đến nay
Bước 4: Đánh dấu Tệp và hình ảnh được lưu trong bộ nhớ đệm và Cookie và dữ liệu trang web khác
Bước 5: Nhấp Xóa dữ liệu
Cách 3: Thử Ở Chế Độ Ẩn Danh
Chế độ ẩn danh khởi động Chrome với trạng thái hoàn toàn sạch — không tiện ích mở rộng, không dữ liệu bộ nhớ đệm, không cookie. Nếu trang tải được ở chế độ ẩn danh nhưng không tải được ở chế độ thường, vấn đề do tiện ích mở rộng hoặc bộ nhớ đệm bị hỏng.
Mở cửa sổ ẩn danh bằng Ctrl+Shift+N (Windows/Linux) hoặc Cmd+Shift+N (Mac), sau đó truy cập cùng một trang. Nếu trang tải được, một trong các tiện ích mở rộng của bạn là thủ phạm.
Cách 4: Tắt Tiện Ích Mở Rộng Trình Duyệt
Các tiện ích mở rộng thay đổi cách tải trang, chặn yêu cầu hoặc chặn lưu lượng mạng là nguyên nhân phổ biến gây ra ERR_CACHE_MISS. Trình chặn quảng cáo, công cụ bảo mật và VPN là những nghi phạm chính.
Truy cập chrome://extensions/, tắt tất cả tiện ích mở rộng, sau đó tải lại trang. Nếu lỗi biến mất, bật lại từng tiện ích một để tìm ra cái nào gây ra vấn đề.
Cách 5: Cập Nhật Chrome
Các phiên bản Chrome cũ có thể chứa lỗi xử lý bộ nhớ đệm. Truy cập chrome://settings/help để kiểm tra cập nhật. Chrome thường tự động cập nhật, nhưng bản cập nhật chỉ có hiệu lực sau khi khởi động lại.
Nếu lỗi bắt đầu xuất hiện sau khi cập nhật Chrome, đó có thể là lỗi mới được đưa vào. Kiểm tra trình theo dõi lỗi Chromium để xem các vấn đề đã biết với phiên bản của bạn.
Cách 6: Xóa Bộ Nhớ Đệm DNS
Xóa bộ nhớ đệm DNS sẽ loại bỏ các mục DNS cũ có thể gây ra sự cố kết nối. Cách này giải quyết ERR_CACHE_MISS khi lỗi liên quan đến bộ nhớ đệm ở tầng mạng thay vì bộ nhớ đệm trình duyệt.
# Windows (Command Prompt as Admin)
ipconfig /flushdns
# macOS
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
# Linux
sudo systemd-resolve --flush-caches
# Chrome internal DNS cache
# Visit chrome://net-internals/#dns → Click "Clear host cache"Bạn có thể kiểm tra cấu hình DNS bằng công cụ tra cứu DNS của DNS Robot để xem tên miền có phân giải đúng không.
Cách 7: Đặt Lại Cài Đặt Mạng
Nếu không có cách nào hiệu quả, đặt lại network stack có thể sửa các sự cố kết nối sâu gây ra lỗi bộ nhớ đệm.
# Windows (Command Prompt as Admin)
netsh winsock reset
netsh int ip reset
ipconfig /release
ipconfig /renew
# Then restart your computerCách Sửa Lỗi ERR_CACHE_MISS (Cho Nhà Phát Triển)
Nếu người dùng báo cáo lỗi ERR_CACHE_MISS trên trang web của bạn, cần sửa từ phía máy chủ. Thay đổi quan trọng nhất là triển khai mẫu Post/Redirect/Get.
Mẫu Post/Redirect/Get (PRG)
Mẫu Post/Redirect/Get (PRG) là giải pháp triệt để cho ERR_CACHE_MISS. Đây là phương pháp tốt nhất trong phát triển web từ năm 2003. Ý tưởng rất đơn giản: sau khi xử lý biểu mẫu POST, phản hồi bằng chuyển hướng HTTP (302 hoặc 303) đến trang xác nhận GET thay vì hiển thị phản hồi trực tiếp.
Không có PRG, lịch sử trình duyệt kết thúc bằng yêu cầu POST. Khi người dùng nhấn quay lại hoặc làm mới, Chrome phải gửi lại dữ liệu POST (hoặc hiển thị ERR_CACHE_MISS). Với PRG, lịch sử trình duyệt kết thúc bằng yêu cầu GET an toàn có thể làm mới hoặc quay lại mà không gặp vấn đề.
# Without PRG (causes ERR_CACHE_MISS):
POST /checkout → 200 OK (render confirmation page)
# User refreshes → ERR_CACHE_MISS or "Confirm Form Resubmission"
# With PRG (no cache issues):
POST /checkout → 303 See Other → Location: /order/12345
GET /order/12345 → 200 OK (render confirmation page)
# User refreshes → Normal page reload (safe GET request)Sử dụng HTTP 303 See Other (được khuyến nghị) hoặc 302 Found cho chuyển hướng. Mã 303 chuyển đổi POST thành GET một cách rõ ràng theo đặc tả HTTP, đúng với hành vi mà bạn mong muốn.
Kiểm Tra Header Cache-Control
Các header Cache-Control quá hạn chế gây ra lỗi ERR_CACHE_MISS không cần thiết. Sử dụng Chrome DevTools (F12 → tab Network) để kiểm tra header phản hồi cho các trang của bạn.
Header Cache-Control: no-store yêu cầu Chrome không bao giờ lưu phản hồi vào bộ nhớ đệm — đây là tùy chọn nghiêm ngặt nhất. Nếu trang của bạn không chứa dữ liệu nhạy cảm (như giao dịch tài chính), hãy cân nhắc sử dụng no-cache, cho phép lưu bộ nhớ đệm nhưng yêu cầu xác thực lại trước khi sử dụng.
Bạn có thể kiểm tra header HTTP của máy chủ bằng công cụ kiểm tra HTTP Headers của DNS Robot để xem chính xác các chỉ thị Cache-Control mà máy chủ gửi đi.
| Chỉ thị | Hành vi cache | Rủi ro ERR_CACHE_MISS |
|---|---|---|
| no-store | Không bao giờ lưu phản hồi vào cache | Cao — nút quay lại luôn thất bại |
| no-cache | Lưu cache nhưng xác thực lại trước khi dùng | Thấp — Chrome phục vụ từ cache khi quay lại |
| max-age=3600 | Lưu cache 1 giờ không cần xác thực lại | Không — trang tải từ cache |
| private, max-age=0 | Lưu cache nhưng luôn xác thực lại | Thấp — tương tự no-cache |
Sửa Xung Đột Cache WordPress
Các trang WordPress sử dụng plugin cache đặc biệt dễ gặp lỗi ERR_CACHE_MISS. Xung đột giữa các quy tắc cache của plugin, lớp cache từ nhà cung cấp hosting và CDN có thể tạo ra hành vi cache không nhất quán.
Nếu bạn sử dụng WooCommerce, hãy đảm bảo plugin cache loại trừ các trang động — giỏ hàng, thanh toán và trang tài khoản không nên được cache. Hầu hết các plugin phổ biến (WP Super Cache, W3 Total Cache, LiteSpeed Cache) đều có cài đặt riêng cho WooCommerce.
Xóa toàn bộ cache — Xóa cache plugin, cache hosting (nếu có) và cache CDN cùng lúc
Tắt plugin xung đột — Không bao giờ chạy hai plugin cache toàn trang cùng lúc
Loại trừ trang động — Giỏ hàng, thanh toán và trang đăng nhập phải được loại khỏi cache
Kiểm tra cache tầng máy chủ — Nhà cung cấp hosting có thể thêm lớp cache riêng (Varnish, LiteSpeed, v.v.) xung đột với plugin của bạn
ERR_CACHE_MISS Trên Android (WebView)
Lập trình viên Android thường gặp net::ERR_CACHE_MISS khi sử dụng WebView để tải trang web bên trong ứng dụng. Đây là vấn đề phổ biến trong các dự án Android, Flutter và React Native.
Nguyên nhân phổ biến nhất là thiếu quyền INTERNET trong AndroidManifest.xml. Không có quyền này, WebView không thể gửi yêu cầu mạng và chuyển sang dùng bộ nhớ đệm — nhưng lần tải đầu tiên thì bộ nhớ đệm chưa tồn tại.
<!-- AndroidManifest.xml — Add this permission -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />Nếu quyền đã được thêm, hãy thử đặt chế độ cache của WebView thành LOAD_DEFAULT hoặc LOAD_NO_CACHE để bỏ qua các mục cache cũ. Với ứng dụng Flutter, kiểm tra xem plugin webview_flutter đã được cập nhật lên phiên bản mới nhất chưa.
ERR_CACHE_MISS Trên Các Trình Duyệt Khác
ERR_CACHE_MISS là mã lỗi riêng của Chromium. Tất cả trình duyệt dựa trên Chromium (Chrome, Edge, Brave, Opera, Vivaldi, Arc) đều hiển thị cùng một lỗi. Các engine trình duyệt khác hiển thị thông báo khác cho cùng một vấn đề gốc.
| Trình duyệt | Thông báo lỗi | Ghi chú |
|---|---|---|
| Chrome / Edge / Brave / Opera | ERR_CACHE_MISS | Dựa trên Chromium — lỗi giống hệt |
| Firefox | Document Expired | Hiển thị: "Tài liệu này không còn khả dụng" |
| Safari | Hộp thoại gửi lại biểu mẫu | Hiển thị: "Bạn có muốn gửi lại biểu mẫu không?" |
Thông báo "Document Expired" của Firefox là lỗi tương đương được biết đến nhiều nhất. Nó xuất hiện với nội dung: "This document is no longer available. The requested page contains data from a form submission (POSTDATA). This data is no longer available." (Tài liệu này không còn khả dụng. Trang được yêu cầu chứa dữ liệu từ việc gửi biểu mẫu (POSTDATA). Dữ liệu này không còn khả dụng.) Cách khắc phục giống nhau — xóa bộ nhớ đệm hoặc sử dụng mẫu PRG phía máy chủ.
Các Lỗi Cache Liên Quan Trên Chrome
Chrome có nhiều mã lỗi liên quan đến bộ nhớ đệm. Tất cả đều bắt đầu bằng ERR_CACHE_ nhưng chỉ ra các vấn đề khác nhau.
| Mã lỗi | Ý nghĩa | Nguyên nhân phổ biến |
|---|---|---|
| ERR_CACHE_MISS (-400) | Mục cache không tồn tại | POST + quay lại/làm mới, header no-store |
| ERR_CACHE_READ_FAILURE (-401) | Không thể đọc từ cache đĩa | Tệp cache bị hỏng, lỗi ổ đĩa |
| ERR_CACHE_WRITE_FAILURE (-402) | Không thể ghi vào cache đĩa | Đĩa đầy, vấn đề quyền truy cập |
| ERR_CACHE_OPERATION_NOT_SUPPORTED (-403) | Thao tác không được hỗ trợ cho mục này | Loại nội dung không được hỗ trợ trong cache |
| ERR_CACHE_CHECKSUM_MISMATCH (-408) | Dữ liệu cache không qua kiểm tra tính toàn vẹn | Cache bị hỏng, ghi bị gián đoạn |
Với tất cả các lỗi này, xóa bộ nhớ đệm trình duyệt (Cách 2 ở trên) là giải pháp phổ quát cho người dùng. Nếu lỗi vẫn tiếp tục sau khi xóa cache, vấn đề nằm ở tiện ích mở rộng hoặc cấu hình phía máy chủ.
Kiểm Tra HTTP Headers Của Bạn
Sử dụng công cụ kiểm tra HTTP Headers miễn phí của DNS Robot để kiểm tra header Cache-Control của máy chủ và các chỉ thị phản hồi khác ảnh hưởng đến caching trình duyệt.
Try Công cụ kiểm tra HTTP HeadersFrequently Asked Questions
ERR_CACHE_MISS có nghĩa là Chrome đã cố tải phiên bản được lưu trong bộ nhớ đệm của trang nhưng mục cache đó không tồn tại. Đây là lỗi phía trình duyệt (không phải lỗi máy chủ), thường xuất hiện nhất sau khi gửi biểu mẫu rồi nhấn nút quay lại hoặc làm mới.