从 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,如果你数据太长读一次,可能还在服务器端,这时候你停止客户端程序,剩下的数据不在你的程序内存中。
while True:
data = resp.read(65536)
if not data:
break
yield data
其实我不是要代码,而是整个http连接的原理
如果我一次停止程序,例如,调试,我的 http 响应数据的其余部分在哪里?它们还在服务器中,还是在我的客户端机器的内存中?
如果是前者,程序在web server 中做了什么来防止数据一次性全部刷新到客户端?通过TCP序列控制流?
首先要看你的框架。通常,对于产生的响应,使用 Chunked HTTP Transfer。因此只有读取的数据才会发送到客户端。服务器端没有数据缓冲。
我认为这取决于你的数据长度,如果你的数据很短,客户端读取一次并全部获取,如果你停止程序,你的数据在客户端memory.Otherwise,如果你数据太长读一次,可能还在服务器端,这时候你停止客户端程序,剩下的数据不在你的程序内存中。