Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何中止HTTP事务_Java_Http_Networking - Fatal编程技术网

Java 如何中止HTTP事务

Java 如何中止HTTP事务,java,http,networking,Java,Http,Networking,浏览器-->Http代理-->Web服务器 假设对于一个请求,web服务器已经指示它将使用Content-Length头发送200字节作为响应体。网络在100字节后断开,从代理服务器到Web服务器的套接字最终会出现读取超时 代理服务器的设计考虑事项 当代理应该发送200字节时,在100字节后关闭与浏览器的Http事务可以吗 如果您建议中止代理和浏览器之间的Http事务,您如何实现它 如果您使用的是Servlet容器,我认为该容器将在内部处理此异常,或者,如果您从HttpServletRespon

浏览器-->Http代理-->Web服务器

假设对于一个请求,web服务器已经指示它将使用Content-Length头发送200字节作为响应体。网络在100字节后断开,从代理服务器到Web服务器的套接字最终会出现读取超时

代理服务器的设计考虑事项

  • 当代理应该发送200字节时,在100字节后关闭与浏览器的Http事务可以吗

  • 如果您建议中止代理和浏览器之间的Http事务,您如何实现它


  • 如果您使用的是Servlet容器,我认为该容器将在内部处理此异常,或者,如果您从HttpServletResponse/HttpServletRequest获取了OutputStream/InputStream,那么您将从该流中获得IOException写入/读取


    如果您试图自己使用普通Java套接字处理此问题,然后,由于无法向流写入任何字节,因此流上会出现IOException。

    最有可能的情况是,整个200字节将在头之后写入套接字发送缓冲区,发送方将关闭套接字,而不会注意到任何错误。最坏的情况是,发送方将收到一个IOException:“连接重置”,servlet容器将捕获并忽略它。

    我已经更新了问题的描述。问题更多的是代理应该做什么?