Есть php скрипт который отдает json. Я указал в нем
header('Content-type: application/json');
Смотрю в профилировщике в хроме на вкладке Network: Size: 250kb, Content: 250kb. Гугл подсказывает что size - это реальный загруженый объем данных, а content - размер моего json. Если его скопировать в файл и посмотреть размер, то файловый менеджер так и показывает - 250kb. Если убрать хедер Content-type, то Size будет 20kb, а Content так же 250kb. Причем теперь json грузится заметно быстрее. Где-то когда-то читал что http сервер проверяет, изменился ли документ с последней загрузки этим клиентом, и если нет, то клиент его не перекачивает. Гугл говорит что это работает если сервер вернул 304 статус, у меня же он - 200. Господа теоретики веба, подскажите почему так происходит.
В конфиге nginx есть параметр gzip_types, в котором перечислено несколько типов документов, которые надо сжимать, среди которых отстутствует application/json. Похоже в этом вся причина.