从 Web 服务器产生类似文件的响应是如何工作的?

How does yield a file-like response from a web server work?

while True:
    data = resp.read(65536)
    if not data:
        break
     yield data

其实我不是要代码,而是整个http连接的原理

如果我一次停止程序,例如,调试,我的 http 响应数据的其余部分在哪里?它们还在服务器中,还是在我的客户端机器的内存中?

如果是前者,程序在web server 中做了什么来防止数据一次性全部刷新到客户端?通过TCP序列控制流?

首先要看你的框架。通常,对于产生的响应,使用 Chunked HTTP Transfer。因此只有读取的数据才会发送到客户端。服务器端没有数据缓冲。

我认为这取决于你的数据长度,如果你的数据很短,客户端读取一次并全部获取,如果你停止程序,你的数据在客户端memory.Otherwise,如果你数据太长读一次,可能还在服务器端,这时候你停止客户端程序,剩下的数据不在你的程序内存中。