Browser ----> Http Proxy ----> Web server
假设对于请求,Web服务器已指示它将使用Content-Length头发送200个字节作为响应主体。 100字节后网络中断,最终从代理服务器到Web服务器的套接字读取超时。
代理的设计注意事项
代理是否可以在100字节之后用浏览器关闭Http事务,它应该发送200字节?
如果您建议中止代理和浏览器之间的Http事务,您是如何实现的?
答案 0 :(得分:0)
如果您使用的是Servlet容器,我认为容器会在内部使用Exception处理它,或者,如果您从HttpServletResponse / HttpServletRequest中获取了OutputStream / InputStream,您将从流中获取IOException写入/读取
如果您尝试使用普通Java套接字自行处理此问题,那么您将在流上获得IOException,因为您无法向其写入任何字节。
答案 1 :(得分:0)
最有可能的是,在标题和发送方将关闭套接字之后,整个200字节将被写入套接字发送缓冲区,而根本不会发现任何错误。在最坏的情况下,发送方将获得IOException:'connection reset',servlet容器将捕获并忽略它。