0

Browser ----> Http Proxy ----> Web server

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

代理的设计注意事项

  1. Proxy 在应该发送 200 个字节的情况下在 100 个字节后关闭与浏览器的 Http 事务是否可以?

  2. 如果你建议 Proxy 和 Browser 之间的 Http 事务应该中止,你是如何实现的呢?

4

2 回答 2

0

如果您使用的是 Servlet 容器,我认为容器会在内部使用异常处理这个问题,或者,如果您从 HttpServletResponse/HttpServletRequest 中获取了 OutputStream/InputStream,您将从流中获得写入/读取的 IOException。

如果您尝试使用普通 Java 套接字自己处理此问题,那么您将在流上获得 IOException,因为您无法向其写入任何字节。

于 2013-05-01T11:35:29.667 回答
0

很可能整个 200 字节将在标头之后写入套接字发送缓冲区,并且发送者将关闭套接字而不会注意到任何问题。在最坏的情况下,发送者会得到一个 IOException: 'connection reset',servlet 容器会捕获并忽略它。

于 2013-05-01T12:01:32.967 回答