Я использую этот 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);
Вот что сделал трюк для меня:
(если у вас есть доступ к конфигурации Apache)
AddOutputFilterByType DEFLATE application/json
Я добавил эту строку непосредственно в /etc/apache2/mods-available/deflate.conf
(поэтому она будет работать для каждого json-файла на веб-сервере), возможно, где-то еще лучше подходит для вашего использования (например, если вы хотите включить json сжатие для одного веб-приложения, а не по умолчанию).
edit: В инструментах разработчика google chromes вы можете легко проверить, поддерживается ли ваш контент сжатым или несжатым: https://webmasters.stackexchange.com/a/4613
Никакой gzip обычно не используется, вы должны принудительно выполнять это самостоятельно.
В простейшем случае вам просто нужно добавить эту строку php:
ob_start("ob_gzhandler");
См. Также официальную документацию php .