我的ASP.NET应用程序将JSON对象返回给用户,它包含二进制编码的数据。由于这一点,我决定启用HTTP压缩,问题从内容长度开始。
如果我启用了压缩,Content-Length报头将被忽略,而response的send和connection不会立即关闭。发送完所有数据后,连接仍保持打开状态约15秒。
我想启用HTTP压缩,但不知道如何解决内容长度标题的问题。
context.Response.AddHeader("Content-Length", jsonObject.ToString().Length.ToString());
context.Response.Write(jsonObject);
context.Response.Flush();
context.Response.Close();发布于 2011-10-03 18:33:28
Content-Length表示正在传输的数据的长度,在您的情况下,它是压缩字节。请看这个SO问题,它的答案链接到相关的RFC:content-length when using http compression
如果HTTP压缩是通过web服务器发生的(而不是通过你的代码),那么我会建议你尝试自己添加content-length头部。希望web服务器能正确地添加它。
在http://httpd.apache.org/上使用Chrome可以验证这一点,如果你查看开发人员控制台,你会看到Content-Length比实际的未压缩页面小得多。
https://stackoverflow.com/questions/7632789
复制相似问题