在Jetty中应用GZipHandler以获取特定路径

时间:2019-02-22 09:17:34

标签: jetty jetty-9

如何仅包含与Jetty 9.4中的GZipHandler模​​式匹配的特定路径。例如,我有一个映射到路径/api/employees/{id}/payments的请求。我只需要将GZip压缩应用于此路径。 Jetty仅在包含路径中支持完全匹配或前缀(/*)或后缀(*.)。我可以配置GZipHandler仅压缩对路径/api/employees/{id}/payments的请求,例如/api/employees/1/payments/api/employees/42/payments等吗?

1 个答案:

答案 0 :(得分:1)

Jetty GzipHandler支持标准的Servlet URL-模式映射。

您的/api/employees/{id}/payments的“请求映射”不是有效的servlet url模式字符串。

它看起来像一个REST API字符串,完全在您的REST库中完成,而没有真正涉及servlet规范或servlet api。

与其尝试从路径(包括/排除)中控制GzipHandler,不如考虑设置它应该响应的Mime-Type映射。这样,您可以设置/api/*的包含路径,并让mime-types include决定应压缩或不压缩哪些内容。请记住,如果http客户端未指示它可以处理gzip(它会检查AcceptAccept-Encoding请求标头),则GzipHandler将不会压缩,因此可以放心投射更大的网络。

还可以考虑设置最小尺寸配置setMinGzipSize(int),以使微小的响应不会不必要地被压缩。

相关问题