ERR_CACHE_MISS 뜻과 해결 방법: 양식 다시 제출 확인 (Chrome·Android)
핵심 요약
ERR_CACHE_MISS는 Chrome이 페이지의 저장된 사본(캐시)이 필요했지만 없었다는 뜻입니다. 대부분 양식(POST)으로 만들어진 페이지로 뒤로 갔을 때 생기며, Chrome은 양식을 다시 보내는 대신 '양식 다시 제출 확인'을 표시합니다. 새로고침한 뒤 '계속'은 작업을 반복해도 안전할 때(결제가 아니라 검색 등)만 누르고, 그렇지 않으면 사이트에서 페이지를 다시 여세요. Android 앱에서는 대개 WebView가 네트워크를 사용할 수 없다는 뜻입니다. 사이트 운영자는 Post/Redirect/Get으로 이 오류를 막을 수 있습니다.
지금 확인하기

읽기 시작
- ERR_
CACHE_ MISS란 무엇입니까? - ERR_
CACHE_ MISS는 어떻게 표시됩니까? - ERR_
CACHE_ MISS의 원인 - ERR_
CACHE_ MISS와 '양식 다시 제출 확인'의 차이 - ERR_
CACHE_ MISS 해결 방법 (사용자용) - 방법 1: 새로고침하고, 안전할 때만 다시 제출
- 방법 2: 캐시 삭제 (계속 반복될 때만)
- 방법 3: 시크릿 모드에서 테스트
- 방법 4: 브라우저 확장 프로그램 비활성화
- 방법 5: Chrome (및 Android System WebView) 업데이트
- ERR_
CACHE_ MISS 해결 방법 (개발자용) - Post/Redirect/Get(PRG) 패턴
- Cache-Control 헤더 검토
- WordPress 캐시 충돌 해결
- Android의 ERR_
CACHE_ MISS (앱과 WebView) - 다른 브라우저에서의 ERR_
CACHE_ MISS - 관련 Chrome 캐시 오류
- 자주 묻는 질문
ERR_CACHE_MISS란 무엇입니까?
ERR_CACHE_MISS는 Chrome이 페이지의 저장된 사본(캐시)이 필요했지만 그 사본이 없었다는 뜻입니다. 가장 흔한 경우는 로그인, 검색, 결제 결과처럼 양식으로 만들어진 페이지로 뒤로 가기를 눌렀을 때입니다. Chrome은 양식을 스스로 다시 보내지 않으므로 ERR_CACHE_MISS 코드와 함께 양식 다시 제출 확인을 표시합니다.
이 오류는 브라우저 밖으로 전송되지 않으며 HTTP 상태 코드도 아닙니다. Chromium의 오류 목록에는 오류 -400 "The cache does not have the requested entry"(캐시에 요청한 항목이 없음)로 정의되어 있습니다(net_error_list.h). Chrome은 뒤로 가기로 다시 보여줄 수 있도록 양식 결과 페이지의 사본을 보관합니다. 이 사본이 없으면 페이지를 다시 만드는 유일한 방법은 양식을 다시 보내는 것이며, Chrome은 이 결정을 사용자에게 맡깁니다.
이것은 결함이나 보안 위협이 아니라 안전을 위한 정지입니다. 양식을 다시 보내면 결제, 주문, 게시물 작성처럼 그 양식이 했던 일이 반복될 수 있습니다.
페이지가 no-store를 보내는지 헤더를 확인하세요
ERR_CACHE_MISS는 어떻게 표시됩니까?
Chrome과 Edge는 다음 두 페이지 중 하나를 표시하며, 메시지 아래에 ERR_CACHE_MISS가 적혀 있습니다.
- 양식 다시 제출 확인 — 양식으로 만들어진 페이지로 뒤로 가거나 앞으로 갔을 때: "이 웹페이지를 제대로 표시하려면 이전에 입력한 데이터가 필요합니다. 이 데이터를 다시 보낼 수 있지만 이 경우 해당 페이지에서 이전에 수행한 작업이 반복됩니다." 그 아래에 "페이지 로드에 필요한 데이터를 다시 제출하려면 새로고침 버튼을 누릅니다."
- 이 사이트를 캐시에서 로드할 수 없음 — "사이트의 저장된(캐시된) 사본을 읽을 수 없습니다."라는 문구와 새로고침 버튼: Chrome이 캐시에서만 가져올 수 있던 페이지가 캐시에 없었던 경우입니다
- 다시 제출 확인 대화상자 — 첫 번째 페이지에서 새로고침을 누르면: "찾고 있는 페이지에서 사용자가 입력한 정보를 사용했습니다. 해당 페이지로 돌아가면 기존 작업을 반복할 수 있습니다. 계속하시겠습니까?"와 계속 버튼
- net::ERR_CACHE_MISS — 개발자 도구 콘솔이나 Android 앱의 WebView 로그에 나타나는 같은 오류
ERR_CACHE_MISS의 원인
모든 원인은 결국 같습니다. Chrome이 캐시를 사용하라는 지시를 받았는데, 페이지가 캐시에 없었던 것입니다.
- 양식 결과 페이지로 뒤로 가기 또는 앞으로 가기 — Chrome은 양식(POST 요청)이 만든 페이지를 뒤로 가기로 다시 보여줄 수 있도록 저장합니다. 이 사본이 사라졌다면 양식을 다시 보내야 하므로 Chrome은 멈추고 확인을 요청합니다.
- 페이지가 저장하지 말라고 지시한 경우 —
Cache-Control: no-store와 함께 전송된 결과 페이지는 저장되지 않으므로, 뒤로 가면 항상 다시 제출 확인 페이지가 나타납니다. - 삭제되거나 정리된 캐시 — 인터넷 사용 기록을 삭제하거나 Chrome이 공간을 확보하려고 캐시를 정리하면 결과 페이지의 저장된 사본도 사라집니다.
- 캐시 전용 로드 — 네트워크에 접근할 수 없는 Android WebView, 앱의 오프라인 모드, 캐시된 사본만 요청하는 스크립트는 저장된 것이 없으면 모두 ERR_CACHE_MISS로 실패합니다.
- 손상된 캐시 — Chromium 자체 설명에 따르면 캐시를 읽을 수 없게 되는 것은 대개 비정상 종료 때문입니다. 이때는 '캐시에서 로드할 수 없음' 페이지가 표시되며, ERR_CACHE_READ_FAILURE가 함께 나오는 경우가 많습니다.
- 요청을 변경하는 확장 프로그램 — 드물게 요청을 차단하거나 변경하는 확장 프로그램이 페이지의 정상적인 로드를 막을 수 있습니다. 시크릿 창에서 확인하면 원인에서 제외할 수 있습니다.
ERR_CACHE_MISS와 '양식 다시 제출 확인'의 차이
두 메시지는 관련이 있지만 나타나는 시점이 다릅니다. 양식으로 만들어진 페이지를 새로고침하면 곧바로 양식 다시 제출 확인 대화상자가 열립니다. 나중에 뒤로 가기나 앞으로 가기로 그 페이지에 돌아왔을 때 Chrome에 사본이 없으면, ERR_CACHE_MISS 코드와 함께 양식 다시 제출 확인 페이지가 표시되고, 여기서 새로고침을 누르면 같은 대화상자가 열립니다. 계속을 누르면 양식이 다시 전송되고, 취소를 누르면 그대로 머뭅니다.
Chrome이 대신 결정하지 않는 이유는 양식 제출(POST)이 HTTP 용어로 '안전한' 요청이 아니기 때문입니다. 다시 보내면 그 요청이 했던 일이 반복될 수 있습니다.
검색, 필터 또는 보기만 한 페이지라면 계속을 클릭하세요. 결제, 주문, 예약, 게시물이라면 취소를 클릭하고 대신 사이트의 주문 내역이나 이메일을 확인하세요.
ERR_CACHE_MISS 해결 방법 (사용자용)
아래 방법을 순서대로 시도하세요. 첫 번째 방법으로 흔한 경우, 즉 뒤로 가기로 돌아간 양식 페이지는 해결됩니다. 사이트 전체가 열리지 않는다면 사이트 다운 확인으로 모든 사람에게 다운된 것인지 확인하세요.
방법 1: 새로고침하고, 안전할 때만 다시 제출
양식 다시 제출 확인 페이지에서 새로고침(또는 F5)을 누르세요. Chrome이 양식을 다시 보낼지 묻는데, 반복해도 문제없을 때만 계속을 클릭하세요. 더 안전한 방법은 뒤로 가기를 쓰지 않는 것입니다. 사이트의 메뉴나 주소창에서 페이지를 다시 열면 양식 없이 새 사본이 로드됩니다.
일반 페이지에 "이 사이트를 캐시에서 로드할 수 없음"이 표시된다면 캐시를 건너뛰는 강력 새로고침을 하세요.
# Windows / Linux
Ctrl + Shift + R
# Mac
Cmd + Shift + R
# Windows / Linux alternative
Ctrl + F5 (or Shift + F5)개발자 도구를 연 상태(F12)라면 새로고침 버튼을 마우스 오른쪽 버튼으로 클릭하고 캐시 비우기 및 강력 새로고침을 선택할 수도 있습니다.
방법 2: 캐시 삭제 (계속 반복될 때만)
캐시 삭제는 양식 문제에는 도움이 되지 않습니다. 저장된 사본을 지우므로 오히려 이 오류를 일으킬 수도 있습니다. 일반 페이지에서 "이 사이트를 캐시에서 로드할 수 없음"이 계속 나타날 때는 도움이 되며, 이는 캐시가 손상되었다는 신호입니다.
- 1단계:
Ctrl+Shift+Delete(Mac:Cmd+Shift+Delete)를 눌러 인터넷 사용 기록 삭제를 엽니다 - 2단계: 기간을 전체 기간으로 설정합니다
- 3단계: 캐시된 이미지 및 파일에 체크합니다(쿠키는 선택 사항, 아래 참고)
- 4단계: 데이터 삭제를 클릭하고 Chrome을 다시 시작합니다
방법 3: 시크릿 모드에서 테스트
시크릿 창은 빈 캐시로 시작하며, 확장 프로그램도 (시크릿 모드에서 허용하지 않았다면) 실행되지 않습니다. Ctrl+Shift+N(Windows, Linux) 또는 Cmd+Shift+N(Mac)으로 연 다음, 같은 페이지를 뒤로 가기가 아닌 사이트에서 로드하세요.
시크릿 창에서는 되는데 일반 창에서는 안 된다면 확장 프로그램이나 캐시가 관련된 것입니다. 방법 2와 방법 4를 시도하세요.
방법 4: 브라우저 확장 프로그램 비활성화
요청을 차단하거나 변경하는 확장 프로그램이 드물게 페이지의 정상적인 로드를 막을 수 있습니다.
chrome://extensions/로 이동해 모든 확장 프로그램을 끈 다음 페이지를 다시 로드하세요. 오류가 사라지면 하나씩 다시 켜서 원인이 되는 확장 프로그램을 찾으세요.
방법 5: Chrome (및 Android System WebView) 업데이트
chrome://settings/help로 이동하면 업데이트가 있을 경우 설치되며, Chrome을 다시 시작하면 적용됩니다. Android에서는 웹페이지를 보여주는 앱이 WebView를 사용하므로 Play 스토어에서 Chrome과 Android System WebView를 모두 업데이트하세요.
업데이트 직후부터 오류가 나타나고 양식이 아닌 페이지에서도 발생한다면 Chromium 이슈 트래커에서 사용 중인 버전에 알려진 문제가 있는지 확인하세요.
ERR_CACHE_MISS 해결 방법 (개발자용)
방문자가 내 사이트에서 ERR_CACHE_MISS를 겪는다면, 거의 확실히 서버가 양식 POST에서 바로 렌더링한 페이지로 뒤로 가고 있는 것입니다. 해결은 서버에서 합니다. Post/Redirect/Get입니다.
Post/Redirect/Get(PRG) 패턴
Post/Redirect/Get(PRG) 패턴은 ERR_CACHE_MISS의 확실한 해결책입니다. 개념은 간단합니다. POST 양식 제출을 처리한 후 응답을 바로 렌더링하지 말고, HTTP 리디렉션(302 또는 303)으로 GET 확인 페이지로 보내는 것입니다.
PRG가 없으면 브라우저 기록이 POST 요청으로 끝납니다. 사용자가 새로고침하면 Chrome이 양식을 다시 보낼지 묻고, 뒤로 가기나 앞으로 가기로 돌아왔을 때 사본이 없으면 ERR_CACHE_MISS를 표시합니다. PRG를 쓰면 브라우저 기록이 안전한 GET 요청으로 끝나므로 아무 문제 없이 새로고침하거나 뒤로 갈 수 있습니다.
# Without PRG (causes ERR_CACHE_MISS):
POST /checkout → 200 OK (render confirmation page)
# User reloads → "Confirm Form Resubmission" dialog
# User comes back with Back/Forward, copy gone → ERR_CACHE_MISS
# 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)리디렉션에는 303 See Other(권장) 또는 302 Found를 사용하세요. RFC 9110은 303이 "주로 POST 작업의 결과로 사용자 에이전트를 다른 리소스로 리디렉션할 수 있도록 하는 데 사용된다"고 설명하며, 이것이 바로 원하는 동작입니다. 양식 엔드포인트가 실제로 반환하는 상태 코드는 DNS Robot의 리다이렉트 확인으로 볼 수 있습니다.
Cache-Control 헤더 검토
양식 결과 페이지가 무엇을 보내는지는 Chrome 개발자 도구(F12 → 네트워크 → 해당 요청 → 헤더)에서 확인하거나, 외부에서 DNS Robot의 HTTP 헤더 검사로 확인하세요.
양식으로 만들어진 페이지에서 Cache-Control: no-store는 뒤로 가기에 필요한 사본을 Chrome이 보관하지 못하게 하므로, 뒤로 갈 때마다 다시 제출 확인 페이지가 나타납니다. 개인 정보나 결제 정보가 있는 페이지에는 no-store를 유지하고 PRG를 사용해 결과 페이지가 어차피 일반 GET 페이지가 되도록 하세요.
| 양식 결과 페이지의 헤더 | 저장되는 것 | 뒤로 가기 시 표시되는 것 |
|---|---|---|
Cache-Control: no-store | 없음 | 양식 다시 제출 확인(ERR_CACHE_MISS) |
no-cache 또는 max-age=… | 기록용으로 보관된 사본 | 저장된 사본 |
| PRG: 303으로 GET 페이지로 | 일반 GET 페이지 | 페이지 자체, 새로고침도 안전 |
WordPress 캐시 충돌 해결
페이지 캐싱 플러그인이 그 자체로 ERR_CACHE_MISS를 일으키지는 않습니다. 하지만 장바구니, 결제, 로그인 페이지가 캐시되면 양식이 제대로 작동하지 않고 방문자가 페이지를 왔다 갔다 하게 되며, 바로 그때 이 오류가 나타납니다.
WooCommerce를 사용한다면 캐싱 플러그인이 동적 페이지를 제외하는지 확인하세요. 장바구니, 결제, 내 계정 페이지는 절대 캐시되면 안 됩니다. WP Super Cache, W3 Total Cache, LiteSpeed Cache 모두 이를 위한 설정이 있습니다.
- 모든 캐시 퍼지 — 캐시 플러그인, 호스팅 캐시(해당되는 경우), CDN 캐시를 동시에 삭제
- 충돌하는 플러그인 비활성화 — 전체 페이지 캐시 플러그인 두 개를 동시에 실행하지 마세요
- 동적 페이지 제외 — 장바구니, 결제, 로그인 페이지는 캐시에서 제외해야 합니다
- 서버 수준 캐시 확인 — 호스팅 업체가 자체 캐시 레이어(Varnish, LiteSpeed 등)를 추가하여 플러그인과 충돌할 수 있습니다
Android의 ERR_CACHE_MISS (앱과 WebView)
앱 안에서 이 오류가 보인다면(인앱 브라우저, 로그인이나 결제 화면 등) Play 스토어에서 Chrome과 Android System WebView를 업데이트한 다음 앱의 캐시를 지우세요. 설정 → 앱 → 해당 앱 → 저장용량 및 캐시(일부 휴대전화에서는 '저장용량') → 캐시 지우기. 그래도 계속되면 앱 자체를 고쳐야 하므로 앱 개발자에게 알리세요.
앱을 개발한다면: WebView에는 INTERNET 권한이 필요합니다. 이 권한이 없으면 Android가 기본적으로 WebView의 네트워크 로드를 차단하므로(setBlockNetworkLoads의 기본값이 true), 페이지를 캐시에서만 가져올 수 있어 net::ERR_CACHE_MISS로 실패합니다.
<!-- AndroidManifest.xml, inside <manifest> -->
<uses-permission android:name="android.permission.INTERNET" />다음으로 캐시 모드를 확인하세요. LOAD_CACHE_ONLY("Don't use the network, load from the cache", 즉 네트워크를 쓰지 않고 캐시에서 로드하며 오프라인 모드용으로 자주 설정됨)는 아직 캐시되지 않은 모든 것에서 ERR_CACHE_MISS로 실패하므로 LOAD_DEFAULT를 사용하세요. Flutter와 React Native 앱에서도 권한은 Android 프로젝트의 AndroidManifest.xml에 넣습니다.
다른 브라우저에서의 ERR_CACHE_MISS
ERR_CACHE_MISS는 Chromium의 코드이므로 Chrome, Edge, Brave, Opera, Vivaldi 모두 같은 페이지를 표시합니다. 다른 브라우저도 같은 상황에서 멈추지만 표시하는 문구가 다릅니다.
| 브라우저 | 표시 내용 | 참고 |
|---|---|---|
| Chrome / Edge / Brave / Opera | 양식 다시 제출 확인 또는 이 사이트를 캐시에서 로드할 수 없음 | 같은 Chromium 페이지와 코드(ERR_CACHE_MISS) |
| Firefox | 문서 만료(Document Expired) | "요청하신 문서는 Firefox 캐시에서 사용할 수 없습니다." |
| Safari | 양식을 다시 보내기 전에 대화상자 표시 | 양식을 다시 보낼지 묻습니다 |
Firefox의 페이지 제목은 문서 만료(영어판 "Document Expired")이며, "요청하신 문서는 Firefox 캐시에서 사용할 수 없습니다. 보안 예방책으로 Firefox는 자동으로 민감한 문서를 다시 요청하지 않습니다. 웹 사이트에서 문서를 다시 요청하려면 다시 시도를 누르세요."라고 표시됩니다. 해결 방법은 같습니다. 다시 보내도 안전할 때만 새로고침하거나, 서버에서 PRG를 사용하세요.
관련 Chrome 캐시 오류
Chrome의 캐시 오류는 모두 ERR_CACHE_ 접두사를 씁니다. 오류 페이지까지 나타나는 것은 일부뿐이며, 대부분(체크섬 불일치인 -408 등)은 캐시 내부에서만 쓰입니다.
| 오류 코드 | Chromium의 정의 | 흔한 원인 |
|---|---|---|
| ERR_CACHE_MISS (-400) | The cache does not have the requested entry(캐시에 요청한 항목이 없음) | 양식 결과 페이지로 뒤로 가기, 캐시 전용 로드 |
| ERR_CACHE_READ_FAILURE (-401) | Unable to read from the disk cache(디스크 캐시에서 읽을 수 없음) | 충돌이나 비정상 종료로 손상된 캐시 |
| ERR_CACHE_WRITE_FAILURE (-402) | Unable to write to the disk cache(디스크 캐시에 쓸 수 없음) | 디스크 용량 부족 또는 권한 문제 |
ERR_CACHE_READ_FAILURE도 같은 "이 사이트를 캐시에서 로드할 수 없음" 페이지를 표시하며, 이때는 캐시 삭제(방법 2)가 해결책입니다. ERR_CACHE_MISS라면 위의 양식 관련 방법부터 시작하세요. 다른 Chrome 오류인가요? ERR_CONNECTION_REFUSED 또는 ERR_NAME_NOT_RESOLVED를 참고하세요.
HTTP 헤더 확인하기
DNS Robot의 무료 HTTP 헤더 검사 도구를 사용하여 서버의 Cache-Control 헤더와 브라우저 캐싱에 영향을 미치는 기타 응답 지시문을 확인하세요.
출처
- net_error_list.h (CACHE_MISS -400), Chromium
- localized_error.cc (the error pages for ERR_CACHE_MISS), Chromium
- RFC 9110 §15.4.4: 303 See Other, IETF
- WebSettings (setBlockNetworkLoads, LOAD_CACHE_ONLY), Android Developers



