好奇的不是 stream 本身的实现原理。在 golang 中 http 返回体的 body 是一个 io.Reader 类型,这里是如何实现的?在 http1.1 的前提下讨论:
-
这里是整个返回体都返回完才开始接收数据的吗?
1.1 如果是,缓冲区是在哪里?全部数据在网卡上还是内存里?
-
如果是 http 请求未完全返回就接收了数据,是如何实现的?
2.1 基于 transfer-encoding:chunked ?
2.2 基于 http 包底层的 tcp 包拆包?
还望不吝赐教