Пользовательские модули для HTTP-сервера Apache: каково поведение mod_deflate?

#apache #module #mod-deflate

#apache #модуль #mod-deflate

Вопрос:

Я написал пользовательский модуль для http-сервера apache, как описано в: http://httpd.apache.org/docs/2.4/developer/modguide.html

 ap_rprintf(r, "Hello, world!");
  

Меня спрашивали о поведении mod_deflate http://httpd.apache.org/docs/2.2/mod/mod_deflate.html .

Будет ли ответ клиенту, созданный моим модулем, сжат mod_deflate, если клиент принимает сжатие с Accept-Encoding: gzip помощью?

Если мой ответ уже загружен, могу ли я запретить mod_deflate работать?

Есть ли у вас какая-либо ссылка / ссылка на это?

Спасибо.

Ответ №1:

По умолчанию он будет сжат, если он соответствует обычным условиям. Вы можете отказаться от нескольких способов (ниже в грубом порядке навязчивости):

  • установите переменную среды no-gzip для каждого запроса (r->subprocess_env)
  • удалите выходной фильтр mod_deflate (в файле mod_proxy_wstunnel.c приведен пример перемещения фильтра)
  • перед написанием ответа снимите заголовок accept-encoding
  • задайте заголовок ответа Content-Encoding: gzip

Единственная ссылка — mod_deflate.c основы выходного фильтра.