使用压缩代理为网络浏览实现“极端”带宽节省

时间:2018-12-10 08:20:53

标签: go heroku proxy compression

我有一个按兆字节付费的网络连接,因此,我希望尽可能减少带宽使用,同时仍具有相当不错的浏览体验。我使用了这个出色的扩展名(https://bandwidth-hero.com/)。该扩展程序在myoku帐户上运行一个图像压缩代理,该代理接受图像URL,并返回这些图像的低质量版本。这样一来,在加载图像时,带宽使用率将降低30-40%。

为进一步减少使用量,我通常在禁用javascript和图像的情况下进行浏览(firefox / firefox-esr / google-chrome中有多种扩展名可用于此操作)。阻止大多数广告具有额外的好处(因为它们通常需要JavaScript才能运行)。

对于日常浏览,最有效的解决方案是在虚拟控制台中使用文本模式浏览器,例如在vps服务器上通过ssh(使用zlib压缩)运行的elinks / lynx / links2。但是有时候使用javascript成为必要,因为如果没有它,网站将无法呈现。Elinks是唯一一种甚至尝试支持javascipt的文本模式浏览器,甚至这种支持也是非常基本的。当我不得不重新使用firefox / chrome时,发现带宽使用率急剧上升。我想避免这种情况。

我发现bandwith部分用于获取我正在浏览的网站的“原始” html文件,但更经常用于关联的.js / .css文件。这些通常是高度可压缩的。在我的本地工作站上,使用lzma(2)压缩时,html + css + javascript文件通常压缩10倍以上。

在我看来,大幅减少带宽消耗的一种方法是使用与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找到了可能的解决方案 这几乎可以满足我的需求(使用brotli / gzip + transcode jpeg / gif / png进行压缩和压缩)。它使用go代替python,但这并不重要。在https://hub.docker.com/r/andrewgaul/compy/处也有一个docker映像。由于我对heroku不太熟悉,因此我无法弄清楚如何使用它在我的帐户上运行压缩代理服务。 heroku文档也对我没有太大帮助。任何指针都将受到欢迎。

0 个答案:

没有答案