Ruby 网络请求长字符串有没有什么方法压缩?

xiaolang · 发布于 2017年01月09日 · 最后由 hiveer 回复于 2017年01月14日 · 653 次阅读
96

目前场景是通过API请求返回一个数万个openid,每个openid有28个字节,请教各位同仁怎么更快更好的respond. 目前只是通过Zlib::Deflate做压缩然后再用base64加密。目前能减少1/3的数据量。先谢谢各位了

共收到 11 条回复
2880

最简单的解决办法是: 夹沟一下减少些请求量, 或者让它不需要返回这么多

96

base64,会变长,这一步完全不需要,http协议是可以直接收二进制的,收到后zip解压即可。

775

传输的时候选择gzip或者deflate就够了,不需要额外工作。

9442

感觉问题主要在数据传输上,没好的idea,如果有更好的压缩算法且客户支持,加个tunnel client -> tcptun_or_kcptun ------------ tcptun_or_kcptun -> server 如果压缩比大,中间的开销可以忽略不计了。

96

#1楼 @luikore 因为一个openid代表一个用户,这个减少不了

96

#2楼 @nouse o @guange 好的,确实会长,我再看一下效果

7楼 已删除
6829

#3楼 @nouse 怎么选择,没搞过,能不能细说下

5767

#8楼 @hiveer nginx上配置gzip就好了,示例 https://gist.github.com/anvyzhang/d3d0c17d5e62256fa79e gzip_comp_level可以设置到9,最高压缩级别,但是比较慢

96

#9楼 @zhangrentian 压缩效果如何?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册