Я подозреваю, что Chrome отправляет запрос до того, как пользователь его отправит. Возможно ли это вообще?

Я подозреваю, что Chrome отправляет запрос до того, как пользователь его отправит. Возможно ли это вообще?

Я разрабатывал этот сайт и заметил странное поведение в Chrome. Когда я перезапускаю tomcat, он пересоздает базу данных (для тестирования porpuses), и из-за этого я создал URL, который заполняет базу данных.

Дело в том, что иногда, когда я все еще набираю этот URL, я проверяю журнал доступа Tomcat, и вот он, запрос, который я не отправлял, был автоматически, каким-то образом отправлен. Журналы вывода сервера подтверждают, что этот "запрос-призрак" был отправлен.

Если я отправлю URL-адрес, который я набирал, запрос повторится, а затем я получу страницу с ошибкой, поскольку база данных имеет некоторые ограничения, а значения повторяются.

Ожидается ли такое поведение или задокументировано ли оно где-либо (если да, то почему оно непоследовательно?)? Сталкивался ли кто-то с чем-то подобным?

решение1

Я не знаю, отправляет ли Chrome запросы заранее, но это может быть проблемой.

HTTP GET-запрос считаетсяидемпотентный, что по сути означает, что выполнение запроса несколько раз не должно отличаться от выполнения запроса только один раз. Таким образом, если Chrome (или любой другой браузер) захочет сделать запрос GET заранее, чтобы попытаться предварительно загрузить страницу, чтобы она выглядела загружающейся быстрее, когда пользователь на самом деле нажмет Enter, не должно быть никаких негативных последствий от этого.

Ваш скрипт для заполнения базы данных не должен ничего делать с базой данных, когда он создан с помощью запроса GET, а вместо этого должен ждать запроса POST. Для запроса GET просто выведите форму с кнопкой отправки, которую вы можете нажать, что приведет к выполнению запроса POST для заполнения вашей базы данных.

Связанный контент