@IvanN777

Как оптимизировать трафик http помимо gzip заголовков?

Дергую нещядно api.
Боюсь перегрузить канал, использую gzip сжатие.
Не могу использовать вебсокеты, так-как апи не мое.
Есть ли заголовки, помимо архивирования которые могут помочь оптимизировать запрос.
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
@rPman
Универсально никак.
С чужим сервером - тем более никак.

Перейди на бинарные версии протокола (популярен protobuf), само собой сервер должен быть твой.

Часто бывает что содержимое запроса (и ответа, их эффективнее сжимать) в большей степени состоит из служебной информации (например имена атрибутов) а так же очень часто соседние запросы почти идентичны, и отличаются только некоторыми полями, тогда можно вместо передачи всего объекта, передавать только те части что изменились. Это лучше делать на уровне, где формируешь запрос из объекта, либо брать уже сформированный массив данных и вычислять diff с предыдущим (того же типа например, тогда данные будут выглядеть - идентификатор сохраненных данных и дифф их с текущими, для реализации нужно на обоих сторонах хранить одни и те же запросы/ответы в кеше и синхронно их пополнять/удалять) - это проще для реализации но не так эффективно.

Я достаточно давно очень коряво реализовывал прокси для передачи веб странички по медленному каналу, дергая просто консольную утилиту bdiff, сравнивая текущий вывод с предыдущим и отправлял только разницу, классические веб странички были под сотню килобайт html но после bdiff приходил только разница текста, т.е. контента, в считанные килобайты (страничка грузилась полностью только первый раз).

Есть упаковщики, библиотеки (например для zstd), работающие со внешним словарем, которые сами же дополняют, делают то же самое в автоматическом режиме и гораздо эффективнее... не пользовался.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы