有没有其他人遇到过以下情况?我正在尝试使用运行 FastCGI/flup 服务器和 Flask 框架的 lighttpd 来提供基于 JSON 的 RESTful API。
我正在使用 Flask 的 RESTful 扩展包,它将 Python 数据编组为 JSON 对象以作为字符串返回。这很好用......“Content-Type: application/json”被放置在响应头中,JSON 字符串在响应中。
如果客户端表示它将接受它,我想做的是压缩返回的 JSON。我在 lighttpd.conf 中启用了 mod_compress,以下指令指示要压缩的 MIME 类型:
compress.filetype = ( "application/json", "text/json", "text/javascript",
"application/x-javascript", "text/css", "text/html", "text/plain" )
客户端(基于浏览器)始终发送“Accept-Type: gzip, ...”标头。当 lighttpd 返回 "text/*" MIME 类型时,它正在设置 "Content-Encoding: gzip" 标头并很好地压缩数据,客户端可以很好地处理它。
但是,这不适用于“application/json”MIME 类型,我正在摸不着头脑。即使 API 通过 Flask 路径,lighttpd 也不负责设置“Content-Encoding: gzip”标头并压缩“application/json”MIME 类型的数据吗?