假设我单击网页上的按钮来发起提交请求。然后我突然意识到我提供的一些数据是错误的,如果它被提交,那么我将面临不必要的后果(比如购物请求,我可能会被迫为这个错误的请求付款)。
所以我疯狂地点击停止按钮不止一次而是多次(以防万一)。
在这种情况下会发生什么?浏览器是否只是取消请求而不通知服务器?如果它确实通知服务器,服务器是否只是终止该进程,或者它是否还回滚作为该请求的一部分完成的所有操作?
我用 Java 编写代码。 Java 是否有任何特殊功能可用于检测 STOP 请求并回滚我们在此事务中所做的任何事情?
最佳答案
从浏览器加载网页通常需要 4 个步骤(不考虑重定向):
- 当服务器可用时,浏览器发送 HTTP 请求
- 服务器执行代码(用于动态页面)
- 服务器发送 HTTP 响应(通常是 HTML)
- 浏览器呈现 HTML,并请求其他文件(图像、css、...)
浏览器对“停止”的 react 取决于您当时请求的步骤:
- 如果您的服务器运行缓慢或过载,并且您在第 1 步中点击了“停止”,则不会发生任何事情。浏览器不发送请求。
- 不过,大多数情况下,“停止”会在第 2、3 和 4 步中被点击,并且在这些步骤中,您的代码已经执行,浏览器只是停止等待响应 (2) 或接收响应(3),或呈现响应 (4)。
HTTP 调用本身始终是一个两步操作(请求/响应),并且没有自动方式从客户端回滚执行
关于java - 当我单击浏览器上的停止按钮时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/138116/