Web applications 在浏览器中取消页面加载时,服务器中会发生什么情况?
在虚拟的web应用程序中Web applications 在浏览器中取消页面加载时,服务器中会发生什么情况?,web-applications,Web Applications,在虚拟的web应用程序中 用户单击一个链接 服务器开始准备响应,但需要几秒钟 用户取消页面加载 请求发生了什么变化? 服务器是否继续准备响应? 响应是否到达浏览器?我认为浏览器关闭了实际的TCP连接,因此web服务器将无法发送数据,除非在准备数据时专门编程检测断开的连接,否则即使用户取消,页面也将被完全处理 虽然我对这些事情知之甚少,但这是我的猜测。服务器将继续准备响应。当它尝试向客户端发送响应时,它将失败。实际发生这种情况的时间可能取决于实际的应用程序服务器实现、是否缓冲响应等 在Java E
响应是否到达浏览器?我认为浏览器关闭了实际的TCP连接,因此web服务器将无法发送数据,除非在准备数据时专门编程检测断开的连接,否则即使用户取消,页面也将被完全处理
虽然我对这些事情知之甚少,但这是我的猜测。服务器将继续准备响应。当它尝试向客户端发送响应时,它将失败。实际发生这种情况的时间可能取决于实际的应用程序服务器实现、是否缓冲响应等 在Java EE应用程序服务器(Tomcat和WebLogic,可能还有其他服务器)中,您会遇到以下异常:
java.net.SocketException: Connection reset by peer: socket write error
PHP了解三种连接状态:正常、中止和超时。您可以使用函数更改PHP关于中止连接的策略(默认情况下,脚本终止)。从注释部分: “在尝试向客户端发送信息之前,PHP不会检测到用户已中止连接。” 请注意,如果服务器的输出已缓冲,则发送可能不会立即发生
有关更多详细信息,请参阅。如果在请求完全发送到服务器之前连接中断,则不会进行响应处理 如果请求已完全发送,则会触发服务器端处理,并且尽管连接已断开,响应生成仍将继续
在ASP.NET中,如果客户端不再连接,您可以使用Response.IsClientConnected来停止处理,从而节省CPU时间并将线程立即返回到线程池,从而检测到这一点。Apache或其他WebBrowser是否向PHP发送FIN/ACK?