5

他の誰かが次のことに遭遇しましたか? JSON ベースの RESTful API を提供するために、FastCGI/flup サーバーと Flask フレームワークを実行している lighttpd を使用しようとしています。

私は 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 タイプのデータを圧縮する責任も負っていませんか?

4

0 に答える 0