python - 为什么 Python httplib 读取的 block 大小硬编码为 8192 字节

标签 python http httplib

我希望进行快速流式下载 -> 上传以通过 HTTP 将大文件从一台服务器移动到另一台服务器。

在此期间,我注意到 urllib3 使用的 httplib(因此也是请求)似乎将它一次从流中获取的数据量硬编码为 8192 字节

https://github.com/python/cpython/blob/28453feaa8d88bbcbf6d834b1d5ca396d17265f2/Lib/http/client.py#L970

这是为什么? 8192 与其他尺寸相比有何优势?

最佳答案

根据我的发现, block 大小应该是资源的页面大小,但由于页面大小仅在 UNIX 上可用,因此它被硬编码为 8192,因此所有其他系统(特别是 Windows)不会被阻止。否则没有其他理由对其进行硬编码。

来源:https://bugs.python.org/issue21790

关于python - 为什么 Python httplib 读取的 block 大小硬编码为 8192 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48719893/

相关文章:

生成器的python切片分配到列表

带代理的 Python httplib.HTTPSConnection

http - 使用 Zapier Webhook 触发器访问请求 header

python - 如何将日志写入文件?

python - 网站需要一段时间才能返回 500 Internal server error

java - 是否有任何实现 maxlen 的 java Deque,如 python collections.deque?

python - 有没有办法不从 Django View 返回响应?

python - 对列表中每一对元素的操作

javascript - XMLHttpRequest 简单的 HTTP GET 不起作用?

java - 如何从http连接创建限时流