我有一个反向代理的Vert.x小型实现,在功能上正常运行。
下游请求通过tryUseCompression(true)(gziped)完成,我们的服务器可以相应地对其进行回答。
为避免额外的解压缩/压缩,我们希望当我们收到一个请求压缩的请求,并且下游响应具有相同的压缩率(例如,全部在gzip中)时,HTTP代理不应尝试对下游结果进行解压缩,而应而是直接返回上游响应。
就我所能遵循的Vertx代码而言,Netty一直被要求对接收到的消息进行解码,而我们只能得到结果
请参见Http1xClientHandler :: handleMessage:
HttpObject obj = (HttpObject) msg;
DecoderResult result = obj.decoderResult();
还可以在HttpChannelConnector :: applyHttp1xConnectionOtions中找到
if (client.getOptions().isTryUseCompression()) {
pipeline.addLast("inflater", new HttpContentDecompressor(true));
}
是否可以告诉Vertx / Netty不要解压缩单个呼叫的结果?
感谢您的帮助
答案 0 :(得分:0)
不,这不可能。最好的选择是处理代码中的压缩/解压缩。