【发布时间】:2015-06-15 16:59:44
【问题描述】:
我目前正在开发的 webApp 需要客户端请求的大型 JSON 文件,使用 Python 在服务器上构建并发送回客户端。该解决方案是通过 CGI 实现的,并且在各个方面都正常工作。 在这个阶段,我只是使用各种技术来最小化返回给客户端的 JSON 对象的大小,大约为 5-10mb(不详细说明,这或多或少是固定的,并且不能在任何情况下延迟加载大大地)。 我们使用的主机不支持 mod_deflate 或 mod_gzip,所以虽然我们无法将 Apache 配置为使用 .htaccess 在服务器上自动创建 gzip 压缩的内容,但我认为我们仍然可以在客户端接收和解码只要正确设置 Content-encoding 标头即可。
我想知道的是,实现这一目标的最佳方法是什么。在 Python 中压缩某些东西是微不足道的。我已经知道该怎么做,但问题是: 如何以这样一种方式压缩数据,将其打印到输出流以通过 CGI 发送将被压缩并可供客户端读取?
这些文件必须根据输入数据动态创建,因此不能存储预制和预压缩文件,它们必须通过 webApp 中的 xhr 接收。
我最初的实验是使用 gzip 和 io.stringIO 压缩 JSON 字符串,然后将其打印到输出流,导致它以 Python 的正常字节格式打印,例如:b'\n\x91\x8c\xbc\xd4\ xc6\xd2\x19\x98\x14x\x0f1q!\xdc|C\xae\xe0 等,将请求膨胀到正常大小的两倍......
我想知道是否有人可以在这里为我指明正确的方向,告诉我如何实现这一点,如果确实有可能的话。 我希望我已经正确地表达了我的问题。 谢谢。
【问题讨论】:
标签: python json xmlhttprequest cgi gzip