让我试着澄清一下我的问题,我不确定如何说出标题。这纯粹是出于好奇。
在通过互联网连接传输的原始字节与浏览器之间,有许多层。每个层都为数据添加了更多结构,最终成为HTML标记。我假设HTML数据的最终长度未知,并且在文档完成之前正在流式传输字节。如果这个假设是错误的,请纠正我。
您已经不耐烦了,并在浏览器中点击“停止”。这些层内发生了什么?套接字是否在客户端关闭,并允许异常条件通过层升级?在这个链中至少有一点,必须有一个阻塞操作,它正在等待它下面的层并且不再阻塞,那么这是怎么回事?
如果不清楚,我道歉。我无法理解我脑海中的画面。
答案 0 :(得分:0)
由于HTTP通过TCP进行操作,因此应用程序知道连接何时终止,并可能呈现收到的内容。
当然,您可能始终不正确地终止连接,例如通过物理移除连接到Internet的电缆。在这种情况下,任何TCP应用程序都会等待几秒钟,然后声明连接已超时 - 如果是浏览器,通常不会显示任何内容。
至于处理异常,取决于应用程序。从套接字读取是阻塞的,当它完成时,应该检查它是否收到了什么,并且没有发生错误。