Выдает ли Apache 2 gzip json по умолчанию?

Я использую этот PHP-код для вывода json. По умолчанию apache gzip? Или, как я могу проверить, чтобы убедиться?

header('Content-type: application/json');
header('Cache-Control: max-age=0,no-cache,no-store,post-check=0,pre-check=0');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
echo json_encode($response);

Ответ 1

Вот что помогло:

(при условии, что у вас есть доступ к конфигурации Apache)

AddOutputFilterByType DEFLATE application/json

Я добавил эту строку непосредственно в /etc/apache2/mods-available/deflate.conf (поэтому она будет работать для каждого json файла на веб-сервере), возможно, где-то еще лучше подходит для вашего использования (например, если вы хотите включить json-сжатие для одного веб-приложения а не по умолчанию).

edit: в инструментах разработчика google chromes вы можете легко проверить, подан ли ваш контент сжатым или несжатым: https://webmasters.stackexchange.com/a/4613

Ответ 2

Никакой gzip обычно не используется, вы должны принудительно выполнять это самостоятельно.

В простейшем случае вам просто нужно добавить эту строку php:

ob_start("ob_gzhandler");

См. официальную документацию php.