小编use*_*097的帖子

在 Python 中通过 TCP 套接字发送 gzip 压缩数据

我正在用 Python 创建一个 HTTP 服务器,没有任何用于学习目的的 HTTP 库。现在它可以很好地提供静态文件。

我提供文件的方式是通过这段代码:

with open(self.filename, 'rb') as f:
    src = f.read()
socket.sendall(src)
Run Code Online (Sandbox Code Playgroud)

但是,我想通过发送压缩数据而不是未压缩数据来稍微优化其性能。我知道我的浏览器 (Chrome) 接受压缩数据,因为它在标题中告诉我

Accept-Encoding: gzip, deflate, sdch
Run Code Online (Sandbox Code Playgroud)

所以,我把我的代码改成了这个

with open(self.filename, 'rb') as f:
    src = zlib.compress(f.read())
socket.sendall(src)
Run Code Online (Sandbox Code Playgroud)

但这只是输出垃圾。我究竟做错了什么?

python sockets get http bzip

1
推荐指数
1
解决办法
2691
查看次数

标签 统计

bzip ×1

get ×1

http ×1

python ×1

sockets ×1