使用G-WAN /?noheaders.c时的20秒响应

时间:2013-01-25 17:16:52

标签: http-headers browser latency g-wan

当我在网络浏览器中输入网址http://localhost:8080/?noheaders.c时,无论浏览器(IE,Chrome或Firefox)如何,G-WAN似乎都会在响应前20秒内阻止。

  • 造成这种情况的原因是什么?

  • 我们如何避免这种情况?

感谢您的见解。

1 个答案:

答案 0 :(得分:1)

  

造成这种情况的原因是什么?

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

noheaders.c脚本演示了如何在没有HTTP标头的情况下生成JSON回复 。此回复应该由浏览器中运行的Javascript代码提取,请参阅comet.c示例进行说明。

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

“Content-Length”的缺少 HTTP header迫使互联网浏览器猜测何时停止等待更多数据(他们等待一段时间) ,没有显示任何内容,然后,在超时后,它们显示他们收到的所有内容。)

  

我们怎样才能避免这种情况?

使用流式传输和分块编码在this other example中解释了该机制,以防止浏览器阻塞。

未提供“Content-Length”,因为此处的长度未提前知道。 chunked-encoding告诉浏览器,在收到和End-Of-Reply标记之前,他们应该读取更多数据。