![Sospecho que Chrome envía una solicitud antes de que el usuario la envíe. ¿Es esto siquiera posible?](https://rvso.com/image/1595492/Sospecho%20que%20Chrome%20env%C3%ADa%20una%20solicitud%20antes%20de%20que%20el%20usuario%20la%20env%C3%ADe.%20%C2%BFEs%20esto%20siquiera%20posible%3F.png)
He estado desarrollando este sitio web y noté un comportamiento extraño en Chrome. Cuando reinicio Tomcat, recrea la base de datos (para probar propósitos) y, debido a esto, creé una URL que llena la base de datos.
La cuestión es que a veces, cuando todavía estoy escribiendo esta URL, reviso el registro de acceso de Tomcats y ahí está, la solicitud que no había enviado se envió automáticamente, de alguna manera. Los registros de salida del servidor confirman que se envió esta "solicitud fantasma".
Si envío la URL que estaba escribiendo, se repite la solicitud y luego aparece una página de error porque la base de datos tiene algunas restricciones y los valores se repiten.
¿Se espera o documenta este comportamiento de alguna manera en alguna parte (si es así, ¿por qué es inconsistente?)? ¿A alguien le ha pasado algo parecido?
Respuesta1
No sé si Chrome realiza solicitudes con anticipación, pero podría y eso no debería ser un problema.
Las solicitudes HTTP GET se consideranidempotente, lo que básicamente significa que realizar la solicitud varias veces no debería ser diferente a realizar la solicitud solo una vez. Como tal, si Chrome (o cualquier otro navegador) quisiera realizar la solicitud GET temprano para intentar precargar la página para que parezca cargarse más rápido una vez que el usuario presione Intro, no debería haber ningún efecto negativo al hacerlo.
Su secuencia de comandos para completar la base de datos no debería hacerle nada a la base de datos cuando se realiza con una solicitud GET y, en su lugar, debe esperar una solicitud POST. Para una solicitud GET, simplemente haga que genere un formulario con un botón de envío en el que puede hacer clic, lo que hará que la solicitud POST complete su base de datos.