0

当我在 Web 浏览器中输入 URLhttp://localhost:8080/?noheaders.c时,无论使用哪种浏览器(IE、Chrome 或 Firefox),G-WAN 似乎都会在响应前 20 秒内阻塞。

  • 这是什么原因造成的?

  • 我们怎样才能避免呢?

感谢您的见解。

4

1 回答 1

1

这是什么原因造成的?

这与 G-WAN 无关:这是一个 HTTP 协议问题。

noheaders.c脚本演示了如何生成没有 HTTP 标头JSON的回复。此回复应该由浏览器中运行的代码获取,请参阅示例以获取说明。Javascriptcomet.c

当存在“Content-Length” HTTP header时,浏览器不必等待超过加载指定数据量所需的时间。

缺少“内容长度” HTTP header迫使 Internet 浏览器猜测何时停止等待更多数据(它们会等待一段时间,不显示任何内容,然后在超时后显示收到的所有内容)。

我们怎样才能避免呢?

该机制在另一个示例中进行了解释,使用流和分块编码来防止浏览器阻塞。

没有提供“Content-Length”,因为这里的长度是事先不知道的。分块编码告诉浏览器,在它们收到和 End-Of-Reply 标记之前,它们应该读取更多数据。

于 2013-01-25T17:28:45.247 回答