7

チャンクエンコーディング応答をサポートする、十分にサポートされているマルチスレッド Python HTTP サーバーを探しています。(つまり、応答の「Transfer-Encoding: chunked」)。この目的のために開始するのに最適な HTTP サーバー ベースは何ですか?

4

5 に答える 5

2

Twisted はチャンク転送をサポートし、透過的に行います。つまり、リクエスト ハンドラでレスポンスの長さが指定されていない場合、twisted は自動的にチャンク転送に切り替え、Request.write への呼び出しごとに 1 つのチャンクを生成します。

于 2012-02-17T10:00:40.540 に答える
0

これを serve 関数に追加することで、Python の HTTPServer を使用して単純なチャンク サーバーを実装できます。

    def _serve(self, res):
        response = next(res)

        content_type = 'application/json'

        self.send_response(200)
        self.send_header('Content-Type', content_type)
        self.send_header('Transfer-Encoding', 'chunked')
        self.end_headers()

        try:
            while True:
                r = response.encode('utf-8')
                l = len(r)
                self.wfile.write('{:X}\r\n{}\r\n'.format(l, r).encode('utf-8'))

                response = next(it)
        except StopIteration:
            pass

        self.wfile.write('0\r\n\r\n'.encode('utf-8'))

本番環境での使用はお勧めしません。

于 2021-09-17T07:59:01.243 に答える