在 JBoss 4.2.3.GA 上,我们有一个使用 transfer-encoding:chunked 生成的 JSP 响应。这会阻止我们的 Netscaler 负载均衡器允许 JSP 生成的 HTML 被缓存,因为它认为它是可变内容。
但是如果我们设置了 max-age,那么无论传输编码如何,请求是否都应该被缓存?
我决定尝试让 JSP 以固定长度返回(设置内容长度,以便将传输编码设置为固定)。. 我做了以下测试:
创建了一个 Jboss 4.2.3.GA Web 应用程序,其中包含一个包含大量内容的 test.jsp 文件。我验证了当部署这个从服务器渲染的 JSP 文件时,使用 transfer-encoding:chunked。内容的总大小为 71.00Kb。
我进入 test.jsp 并尝试了各种设置:
response.setContentLength(90000);
response.setBufferSize(90000);
验证 test.jsp 仍然传输编码:分块。
我还尝试编辑 jboss-4.2.3.GA\server\default\deploy\jboss-web.deployer\server.xml 并设置:
<Connector ... bufferSize="90000" socketBuffer="90000" />
已验证 test.jsp 仍然是 transfer-encoding:chunked。
我在这里做错了什么?如何缓存此内容?