Содержание после Gzip в Tomcat Custom Valve - PullRequest
1 голос
/ 31 марта 2010

В каком-либо пользовательском Tomcat Valve есть какой-нибудь способ получить contentLength после того, как контент был разархивирован? response.getContentCountLong () возвращает предварительно упакованный размер.

1 Ответ

0 голосов
/ 31 марта 2010

При использовании GZIP общая длина сжатого содержимого заранее непредсказуема. Это известно только тогда, когда последний бит был сжат. В Tomcat ответ GZIP обычно напрямую отправляется кусками (с Transfer-Encoding: chunked) и никогда заранее полностью не буферизируется в памяти, поскольку это может быть перебор памяти. Поэтому я не вижу способов получить длину содержимого заранее, кроме подсчета байтов, записанных в выходной поток самостоятельно, или ручной буферизации всего выходного потока ответа и ручной отправки / сброса его полностью при закрытии (что может быть перегрузкой памяти).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...