2016-06-06 2 views
0

Я звоню в конечную точку, которая возвращает JSON. Когда я сохраняю данные в файл, общий размер составляет 500 килобайт. Я хотел сделать это, чтобы сжать JSON, но я слышал, просто включив компрессию на веб-сервере (Apache), я выполнил бы то же самое. Теперь я сделал это и включил сжатие. Но как получить размер DOWNLOAD, а не размер файла, если я его сохраню?Рассчитать размер конечной точки данных JSON?

ответ

1

Это не так просто, как просто включение сжатия на веб-сервере. HTTP-запрос, полученный сервером, должен содержать заголовок Accept-Encoding, чтобы указать, какую схему или схемы сжатия он поддерживает.

Наиболее распространенный: Accept-Encoding: gzip.

Для определения разницы в размерах полезной нагрузки при сжатии и декомпрессии вам, вероятно, потребуется использовать сниффер пакетов (скрипач или эквивалент). В большинстве библиотек HTTP я знаю, как распаковать полезную нагрузку, прежде чем передавать ее обратно на вызывающий код.

+0

Возможно, было бы лучше сжать JSON, а затем распаковать его в приложении? – coderama

+1

Определенно нет, ИМХО! Большинство реализаций протокола HTTP (например, .NET, Java, Python, Swift и т. Д.) Поддерживают сжатие на уровне библиотеки. Просто включите его. Если используемая вами библиотека HTTP не поддерживает сжатие, подумайте о ее реализации в этом проекте с открытым исходным кодом, а не в вашей частной базе кода. Поддержка сжатия выполняется на уровне сервера, но использование сжатием сервера основано на содержимом заголовка запроса. – benhorgen

Смежные вопросы