我正在使用码头服务器来处理 http 请求。我想知道是否有任何方法可以检查响应是否成功发送回客户端。是否有我可以检查的错误代码或状态,或者如果传输到客户端因任何原因失败,我可以捕获异常?
谢谢
是否有我可以检查的错误代码或状态,或者如果传输到客户端因任何原因失败,我可以捕获异常?
听起来您希望服务器能够知道响应是否已完全传递给客户端。
简单的答案是没有办法知道这一点。TCP/IP 不支持,HTTP 不支持,Servlet API 也不支持。
在某些情况下,如果服务器注意到客户端提前关闭了连接,则可能会引发异常。但是不能保证它会注意到,或者它会导致应用程序 servlet 代码可见的异常。实际上,在 servlet 调用返回之前,很可能不会注意到关闭(如果有的话)。
如果您想为网页实现某种“响应交付”确认,您可以在网页中嵌入一些“onload”Javascript,将 AJAX 请求发送回服务器。但是,您必须考虑用户禁用 Javascript 或原始请求是由非浏览器应用程序发出的情况。