我的ASP.NET应用程序将JSON对象返回给用户,它包含二进制编码数据。因此我决定启用HTTP压缩,问题始于Content-Length。
如果我启用压缩,则会忽略Content-Length标头,而响应的发送和连接不会立即关闭。在发送所有数据后,连接仍然打开约15秒。
我想启用HTTP压缩,但不知道如何使用Content-Length标头来解决问题。
context.Response.AddHeader("Content-Length", jsonObject.ToString().Length.ToString());
context.Response.Write(jsonObject);
context.Response.Flush();
context.Response.Close();
答案 0 :(得分:2)
Content-Length
表示在您的情况下传输的数据的长度,它是压缩的字节。请参阅此SO问题,其答案链接到相关RFC:content-length when using http compression
如果HTTP压缩是通过Web服务器(而不是您的代码)发生的,那么我建议您尝试自己添加内容长度标头。希望Web服务器能够正确添加它。
如果您查看开发人员控制台,您会看到Content-Length
远小于实际未压缩页面的字节数。