Перейти к содержимому
SEO/Опубликовано 17 октября 2026 г./5 мин

ERR_CACHE_MISS: «Подтвердите повторную отправку формы»

ERR_CACHE_MISS Chrome показывает, когда вы возвращаетесь кнопкой «Назад» на страницу после отправки формы, а сайт запретил её сохранять. Проверили на стенде, какие заголовки дают ошибку, и посчитали, у скольких сайтов она возможна.

ERR_CACHE_MISS: «Подтвердите повторную отправку формы»
N
Команда NEXFORCE
Кто пишет блог

ERR_CACHE_MISS Chrome показывает, когда вы нажимаете «Назад» и возвращаетесь на страницу, которая открылась после отправки формы, а сайт запретил браузеру её сохранять. Вместо страницы — заголовок «Подтвердите повторную отправку формы» и код ошибки внизу. Мы собрали стенд с формой и разными заголовками кэша, проверили в Chromium 149, когда появляется ошибка и что будет, если нажать «Обновить», и посчитали, у скольких сайтов Екатеринбурга она возможна.

Проверить, отвечает ли сайт вообще и с каким кодом, можно нашим сервисом проверки доступности.

Что такое ERR_CACHE_MISS

Кэш браузера — место, где Chrome хранит страницы, картинки и стили, чтобы не скачивать их заново. При ERR_CACHE_MISS браузер пошёл за страницей в кэш и не нашёл её. В исходниках Chromium, в файле net_error_list.h, у ошибки номер -400 и описание «The cache does not have the requested entry» — в кэше нет запрошенной записи.

Обычный сайт эту ошибку не вызывает: если страницы в кэше нет, браузер просто запросит её у сервера. Но есть случай, когда запросить нельзя, — страница была ответом на отправленную форму. Чтобы получить её заново, нужно повторить отправку: ещё раз создать заказ, ещё раз записаться, ещё раз заплатить. Без вашего согласия Chrome этого не делает и показывает ошибку.

Как выглядит ошибка

На русском Chrome пишет:

Подтвердите повторную отправку формы. Для корректного отображения веб-страницы требуются введенные ранее данные. Их можно отправить повторно, но в этом случае все действия на странице будут выполнены снова. Чтобы повторно ввести данные, необходимые для загрузки страницы, нажмите «Обновить».

Под текстом — код ERR_CACHE_MISS. Адрес в строке остаётся адресом страницы с результатом формы. Сообщение является частью Chrome, а не сайта: его можно увидеть на любом сайте, где есть формы. Наиболее часто оно появляется после поиска, входа в кабинет и оформления заказа.

Стенд: когда «Назад» даёт ошибку

Мы написали сервер с формой. Форма отправляет имя методом POST, сервер отвечает страницей «Принято» с разными заголовками. Со страницы результата переходим по ссылке дальше и жмём «Назад».

Ответ на форму«Назад»Повторная отправка на сервер
Без заголовка Cache-Controlстраница из историинет
Cache-Control: no-cacheстраница из историинет
Cache-Control: max-age=600страница из историинет
Cache-Control: no-storeERR_CACHE_MISSнет
Перенаправление 303 на обычную страницустраница без ошибкинет
Форма методом GET, ответ с no-storeстраница без ошибки, запрошена заново—

Что из этого следует.

Ошибку даёт именно no-store. no-cache не мешает: браузер сохраняет такую страницу и показывает из истории. Стандарт кэширования HTTP, RFC 9111, прямо разрешает истории браузера показывать прежнюю версию страницы и разрешает учитывать no-store. Chrome его учитывает.

Форма методом GET ошибку не даёт. Данные GET-формы лежат в адресе, и браузер спокойно запрашивает страницу заново.

Кэш вперёд-назад не помогает. Мы повторили опыт с включённым механизмом, который хранит целые страницы для кнопки «Назад»: ошибка та же.

«Обновить» отправляет форму второй раз. Мы обновили страницу ошибки, и сервер получил второй POST с тем же именем. Для заявки это дубль, для заказа — второй заказ.

Откуда берётся no-store: PHP-сессии

На стенде PHP 8.3 с Apache мы сделали ту же форму. Пока скрипт не открывал сессию, «Назад» работал. Как только в скрипте появился session_start(), «Назад» дал ERR_CACHE_MISS.

Причина — настройка session.cache_limiter. По умолчанию она равна nocache, и документация PHP прямо пишет, какие заголовки при этом отправляются: «Cache-Control: no-store, no-cache, must-revalidate». Ни разработчик, ни владелец сайта их не ставили — их добавил PHP, как только сайт начал запоминать посетителя.

Наш замер: у скольких сайтов ошибка возможна

17.10.2026 мы запросили главные страницы 2056 сайтов организаций Екатеринбурга с заголовком браузера Chrome. Ответили 1506. Заголовок Cache-Control с no-store прислали 438 сайтов — 29 %.

  • Cookie сессии PHP (PHPSESSID) ставят 324 сайта, и у 290 из них на главной no-store. Это и есть заголовки сессии PHP по умолчанию.

  • Самое частое значение — «no-store, no-cache, must-revalidate»: 261 сайт; ещё 93 добавляют к нему «post-check=0, pre-check=0».

  • Форма с методом POST прямо в коде главной страницы есть у 677 сайтов; у 195 из них главная отдаёт no-store.

Формы мы не отправляли, поэтому не знаем, с какими заголовками сайты отвечают на саму отправку. Но если сайт ставит no-store на главной и работает на сессиях PHP, ответ на форму почти наверняка будет таким же: сессия ставит эти заголовки на каждую страницу.

Почему возникает ошибка

Основные причины:

  • Возврат на результат формы. Вы отправили форму — заказ, вход, поиск, заявку — перешли дальше и нажали «Назад».
  • Сайт запретил хранить страницу. Заголовок no-store ставит разработчик, CMS или PHP-сессия.
  • Нет перенаправления после отправки. Если сайт после формы перенаправляет на обычную страницу, возвращаться некуда, кроме неё, и ошибки нет.

Как исправить ошибку посетителю

Не обновлять, если отправляли заказ или оплату

Процесс оплаты или оформления заказа требует особой осторожности.

Первое желание — нажать «Обновить». Браузер в этом случае отправит форму ещё раз с теми же данными. Если это был поиск или фильтр в каталоге, ничего страшного. Если заказ, заявка или платёж — вы рискуете сделать их дважды.

Открыть нужную страницу заново

Вместо возврата введите адрес раздела или перейдите по ссылке из меню сайта. Предыдущие страницы вы можете открыть заново и так: история браузера (Ctrl+H) хранит адреса, даже если сами страницы сохранены не были. Заказ, если он прошёл, будет в личном кабинете или в письме с подтверждением.

Обновить, если повтор безопасен

Если форма — поиск, вход или фильтр, нажмите «Обновить» и подтвердите повторную отправку. Страница откроется. Дополнительную проверку здесь делать не нужно: повтор поиска ничего не меняет на сайте.

Чего делать не нужно

Советы очистить кэш, сбросить сеть, переустановить Chrome или поменять DNS к этой ошибке не относятся. Страницы в кэше не было по просьбе сайта: очистка ничего туда не добавит. Сеть ни при чём: браузер даже не обращался к серверу.

Если ошибка появляется без формы

Некоторые известные советы против этой ошибки, которые можно встретить в интернете, — очистить кэш, сбросить сеть, переустановить программы — придуманы для других ситуаций. Если ошибка вызвана возвратом на форму, они не помогут. Иногда пользователи сталкиваются с ERR_CACHE_MISS на страницах, где ничего не отправляли. Такие случаи мы на стенде не воспроизвели, поэтому ниже — порядок проверки, а не готовый ответ. Следующие шаги идут от простых к сложным; после каждого откройте страницу заново и, если помогло, дальше не продолжайте.

  1. Перезагрузите страницу. Нажмите Ctrl+F5 — браузер загрузит страницу с сервером, не используя сохранённые файлы. Если ошибка была разовой, на этом всё.
  2. Откройте сайт в режиме просмотра инкогнито. Нажмите Ctrl+Shift+N или щёлкните правой кнопкой мыши по ссылке и выберите «Открыть ссылку в окне в режиме инкогнито». В этом окне по умолчанию отключены расширения и нет ваших cookie. Открылось — причина в расширениях или сохранённых данных.
  3. Проверьте расширения. В меню Chrome выберите «Расширения» → «Управление расширениями» и выключайте их по одному: блокировщики рекламы, VPN, расширения, которые меняют страницы или работают с cookie.
  4. Удалите данные одного сайта. Нажмите на значок слева от адреса → «Настройки сайтов» → «Удалить данные». Так вы не потеряете сохранённые пароли, закладки и вход на всех остальных сайтах, как при полной очистке. Если файлы кэша этого сайта оказались повреждёнными, это их удалит, и браузер загрузит страницу с её текущим содержанием.
  5. Обновите Chrome. Нажмите на три точки в правом верхнем углу и откройте «Справка» → «О браузере Google Chrome»: браузер проверит наличие обновлений и установит последнюю версию автоматически. Затем перезапустите его, чтобы завершить работу старой версии. Устаревшая версия может нормально работать с большинством сайтов, но свежая исключает ошибки, которые уже исправлены.
  6. Попробуйте другой браузер или устройство. Если на телефоне или в другом браузере страница загружается, проблема связана с вашим компьютером, а не с сервером сайта.

Сброс сетевых настроек и смена DNS-серверов в вашем случае обычно не помогут решить проблему: ERR_CACHE_MISS возникает внутри браузера, до соединения с сервером. Их стоит пробовать, только если вместе с ней появляются ошибки соединения с интернетом и проблемы с подключением к сети, например при попытке открыть и другие сайты. Если ничего не помогло, обратитесь за помощью к владельцу сайта: сообщите адрес страницы, время ошибки и версию браузера — это поможет ему найти причину.

Как исправить владельцу сайта

Post/Redirect/Get

Главное средство. После обработки формы сервер отвечает не страницей, а перенаправлением 303 на обычный адрес — например, на «Заявка принята». Браузер открывает её методом GET. На стенде после такой схемы кнопка «Назад» работала без ошибки, а обновление страницы запрашивало её заново и не отправляло форму второй раз.

// после сохранения заявки
header('Location: /zayavka-prinyata/', true, 303);
exit;

Не ставить no-store там, где он не нужен

no-store нужен страницам с личными данными: кабинет, корзина, оформление заказа. Странице «Спасибо, заявка принята» он не нужен. Если заголовок ставит PHP-сессия, а сессия на странице не нужна, не открывайте её: это особенно важно для страниц, которые видит каждый посетитель, и не мешает работе кабинета и корзины. Если нужна — session_cache_limiter() позволяет выбрать другие заголовки до session_start().

Отправлять формы без перехода

Форма, которую скрипт отправляет запросом fetch и показывает результат на той же странице, не создаёт в истории запись с POST. Возвращаться кнопкой «Назад» на ответ формы не придётся.

Защита от дублей

Какой бы схемой ни была построена форма, пользователи могут нажать кнопку дважды или вернуться и отправить её снова через определённое время. Сервер должен узнавать повторную отправку: по номеру формы, по одноразовому токену, по совпадению данных за последние минуты.

Инструменты разработчика

Во вкладке «Сеть» инструментов разработчика (F12) видно, какие заголовки получила каждая страница. Найдите запрос с методом POST и посмотрите Cache-Control в ответе: no-store там и вызывает ошибку при возврате. Например, если вы видите «no-store, no-cache, must-revalidate» и cookie PHPSESSID, заголовок поставила сессия PHP.

Как проверить, что ошибка устранена

  1. Откройте форму, отправьте тестовые данные.
  2. На странице результата перейдите по любой ссылке.
  3. Нажмите «Назад».

Убедитесь, что страница открылась: тогда ошибки нет. Затем на странице результата нажмите «Обновить»: если браузер спрашивает о повторной отправке, PRG не работает. Заголовки ответа видно во вкладке «Сеть» инструментов разработчика или командой:

curl -s -D - -o /dev/null -d imya=test https://example.ru/forma/

В ответе должен быть код 303 и заголовок Location.

Похожие ошибки

  • ERR_FAILED — общая ошибка загрузки; на одном сайте её часто даёт сбойный service worker.
  • ERR_UNKNOWN_URL_SCHEME — приложение на Android не открыло ссылку tel:, whatsapp:// или intent://.
  • Ошибка 413 — форма с файлом не отправилась, потому что файл больше лимита сервера.
  • Ошибка 400 — сервер не понял запрос: испорченный адрес или слишком большие cookie.
  • Ошибка 304 — сервер сообщил, что копия в кэше браузера ещё свежая.
  • ERR_EMPTY_RESPONSE — сервер закрыл соединение, ничего не прислав.
  • ERR_CONNECTION_RESET — соединение сброшено на полпути.

Границы замера

Стенд — Chromium 149 на Linux. Мобильный Chrome, Android WebView и другие браузеры мы не проверяли. Обновление страницы мы делали через средства автоматизации, а не руками, поэтому не проверяли, как выглядит окно подтверждения. В обходе смотрели только главные страницы и не отправляли ни одной формы.

Коротко

ERR_CACHE_MISS — это не поломка, а отказ Chrome отправлять форму ещё раз без спроса. Посетителю: не обновлять страницу, если отправлял заказ или оплату, и открыть нужный раздел заново. Владельцу: отвечать на формы перенаправлением 303 и не ставить no-store на страницы результата. Почти у трети сайтов из нашего списка главная уже отдаёт no-store, чаще всего из-за сессий PHP.

Вопросы и ответы

FAQ по теме

Что означает ERR_CACHE_MISS?+
Браузер хотел показать страницу из своего кэша, а её там нет. В исходниках Chromium у ошибки номер -400 и описание «The cache does not have the requested entry» — в кэше нет запрошенной записи. Чаще всего так бывает при возврате кнопкой «Назад» на страницу, которая открылась после отправки формы.
ERR_CACHE_MISS — это вирус или угроза безопасности?+
Нет. Это штатное поведение браузера: сайт попросил не сохранять страницу, и Chrome не стал отправлять ваши данные повторно без спроса. Ошибка защищает от двойного заказа или двойного платежа.
Почему ERR_CACHE_MISS появляется при нажатии «Назад»?+
Страница, на которую вы возвращаетесь, — ответ на отправку формы. Сайт пометил её заголовком Cache-Control: no-store, и браузер её не сохранил. Чтобы показать её снова, нужно ещё раз отправить форму, а этого Chrome без вашего согласия не делает.
Поможет ли очистка кэша?+
Против этой ошибки — нет. Страницы в кэше и так не было: её не сохранили по просьбе сайта. Очистка удалит сохранённые данные других сайтов, а ошибку не уберёт.
Безопасно ли нажимать «Обновить» на странице ошибки?+
Браузер отправит форму ещё раз с теми же данными. На стенде сервер получил второй такой же запрос. Если это была заявка, заказ или оплата, лучше не обновлять, а открыть раздел сайта заново и проверить, прошла ли первая отправка.
В чём разница между no-cache и no-store?+
no-cache разрешает сохранить страницу, но требует сверяться с сервером перед повторным использованием. no-store запрещает сохранять её вовсе. На стенде «Назад» на результат формы с no-cache показал страницу без ошибки, а с no-store — ERR_CACHE_MISS.
Как разработчики исправляют ERR_CACHE_MISS на своём сайте?+
Отвечают на отправку формы перенаправлением 303 на обычную страницу — это схема Post/Redirect/Get. На стенде после неё кнопка «Назад» работала без ошибки, а обновление не отправляло форму повторно.
Читайте также

Связанные материалы

SEO

ERR_CONNECTION_RESET: соединение сброшено

ERR_CONNECTION_RESET значит, что соединение оборвали сигналом сброса — сервер, антивирус, прокси или сеть по пути. Проверили на стенде, чем сброс отличается от закрытия, и нашли сайт, который сбрасывает всегда. Что делать посетителю и владельцу.

SEO

ERR_EMPTY_RESPONSE: сервер ничего не прислал

ERR_EMPTY_RESPONSE — сервер принял запрос и закрыл соединение, не прислав ни байта. Проверили на стенде девять вариантов «пустого» ответа в Chromium и nginx и выяснили, чем эта ошибка отличается от 502 и сброса соединения.

SEO

Ошибка 400: сервер не понял запрос

Ошибка 400 Bad Request — сервер счёл запрос испорченным. Мы отправили сайтам Екатеринбурга большие куки, длинные ссылки и кривые адреса: куки от 8 КБ не пропустили шесть сайтов из десяти. Что чинит посетитель, а что владелец.

SEO

Ошибка 413: файл слишком большой для сервера

Ошибка 413 значит, что сервер отказался принимать запрос из-за размера тела: файла или формы. Проверили на стенде nginx, Apache и PHP, где срабатывает лимит, и нашли случай хуже ошибки: форма приходит пустой с кодом 200.