为什么jetty的GzipHandler默认只包含GET请求?

Why does jetty's GzipHandler default to only including GET requests?

我正在通过 Jetty 为服务器配置 gzip 压缩,我想压缩 PUT/POST 个端点的响应负载。 Jetty 的默认 GzipHandler 配置专门只包括 GET;这是默认设置,但我无法找到关于 为什么 这是默认设置的文档。当方法为非 GET 时应用 gzip 是否有缺点?

原因归结为来自 PUT 的响应,POST 在一般意义上不适合放入缓存。

在首次引入 gzip 压缩时,GET 被选为默认值,(在 Jetty 迁移到 Eclipse 之前,在 Servlet 2.0 之前,在 Jetty 中被称为 GzipFilter 时)并且在那个时代如果内容无法缓存它没有被压缩。

为什么?

好吧,那时候使用系统资源一遍又一遍地压缩相同的内容被认为是消极的,服务于许多请求比少数优化请求更重要。

GzipHandler 可以配置为使用任何方法,甚至是像 HEAD 这样无意义的方法。

不要让具有历史原因的默认值阻止您使用 GzipHandler,使用它,配置它,然后开心。

欢迎在 https://github.com/eclipse/jetty.project/issues

提出问题,要求更改默认设置