Реализация «экстремальной» экономии полосы пропускания для просмотра веб-страниц с помощью прокси сжатия - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть сетевое соединение, где я плачу за мегабайт, поэтому я заинтересован в максимально возможном сокращении использования полосы пропускания, сохраняя при этом достаточно хороший опыт работы в Интернете.Я использую это замечательное расширение (https://bandwidth -hero.com / ).Это расширение запускает прокси-сервер сжатия изображений в моей учетной записи heroku, который принимает URL-адреса изображений и возвращает некачественную версию этих изображений. Это уменьшает использование полосы пропускания на 30-40% при загрузке изображений.

Для дальнейшего использованиячтобы уменьшить использование, я обычно просматриваю и отключенные javascript и изображения (для этого есть различные расширения в firefox / firefox-esr / google-chrome).Это дает дополнительный бонус - блокирует большинство объявлений (поскольку для их запуска обычно требуется JavaScript).

Для ежедневного просмотра наиболее эффективным решением является использование браузера в текстовом режиме в виртуальной консоли, такой как elinks / lynx /.links2 работает по ssh (со сжатием zlib) на vps-сервере.Но иногда использование javascript становится необходимым, так как сайты не будут отображаться без него .Elinks - единственный браузер в текстовом режиме, который даже пытается поддерживать javascipt, и даже эта поддержка довольно элементарна.Когда мне приходится возвращаться к использованию Firefox / Chrome, я обнаруживаю, что мой трафик увеличивается.Я бы хотел этого избежать.

Я считаю, что пропускная способность частично используется для получения «сырых» html-файлов сайтов, которые я просматриваю, но чаще для связанных файлов .js / .css.Они обычно очень сжимаемы.На моей локальной рабочей станции файлы html + css + javascript обычно сжимаются более чем в 10 раз при использовании сжатия lzma (2).

Мне кажется, что один из способов радикально сократить потребление полосы пропускания - использовать тот же шаблон, что и расширение bandwith-hero, то есть запустить сжатый прокси-сервер либо на vps, либо на моем аккаунте heroku, но сделайте это.для текстового содержимого (.html / .js / .css).

В идеале я хотел бы запустить сжатый прокси на моей локальной машине.Когда я открываю сайт (например, www.stackoverflow.com), браузер должен отправить запрос на этот локальный прокси.Затем этот локальный прокси-сервер отправляет запрос на сервер, работающий на heroku / vps.Серверная часть heroku / vps на самом деле получает весь контент и сжимает его (lzma / bzip / gzip).Сжатый контент отправляется обратно на мой локальный прокси.Локальный прокси-сервер распаковывает содержимое и, наконец, передает его браузеру.

В этом ответе упоминается нечто подобное (https://stackoverflow.com/a/42505732/10690958) для node.js. Я думаю о том же для Python.

Из того, что показывают поиски Google, HTTP может "автоматически" запрашивать версии страниц gzip. Но относится ли это также к связанным файлам, загружаемым JavaScript, и к файлам css? Возможно, яДумать о том, что уже реализовано по умолчанию?

Любые указатели приветствуются. Я думал о написании локального прокси на python, поскольку я достаточно свободно в нем владею. Но я мало знаю о heroku или тонкостях http.

спасибо.

Обновление: я нашел здесь возможное решение https://github.com/barnacs/compy, которое делает почти точно то, что мне нужно (minify + сжатие с помощью brotli / gzip + транскодирование jpeg / gif /png). Он использует go вместо python, но это не имеет большого значения. Здесь также есть изображение докера https://hub.docker.com/r/andrewgaul/compy/. Так как я не очень знаком с heroКу, я не могу понять, как использовать это для запуска службы сжатия прокси в моей учетной записи.Документы на Герою также не сильно помогли мне.Любые указатели приветствуются.

...