如何仅包含与Jetty 9.4中的GZipHandler模式匹配的特定路径。例如,我有一个映射到路径/api/employees/{id}/payments
的请求。我只需要将GZip压缩应用于此路径。 Jetty仅在包含路径中支持完全匹配或前缀(/*
)或后缀(*.
)。我可以配置GZipHandler仅压缩对路径/api/employees/{id}/payments
的请求,例如/api/employees/1/payments
,/api/employees/42/payments
等吗?
答案 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(它会检查Accept
和Accept-Encoding
请求标头),则GzipHandler将不会压缩,因此可以放心投射更大的网络。
还可以考虑设置最小尺寸配置setMinGzipSize(int)
,以使微小的响应不会不必要地被压缩。