最近在学习 http ,看到 Transfer-Encoding: chunked 这个 header ,感觉和 JavaScript 中的 stream 很像,但又有些搞不明白的地方,想请教下大家。
在 http 长连接中,对于响应 body 的数据传输由两种方式:
- 使用 Content-Length header 标注数据结束位置,来区分一个 tcp 连接中的多个响应
- 使用流模式,即分块传输(Transfer-Encoding: chunked),把数据分块传输,并在块的起始位置标注块长度,最后一个块长度为 0 ,表示数据结束来区分一个 tcp 连接中的多个响应
我想问下,按理说不是只有第二种模式下的 response 才部署有 stream 接口吗?为啥使用 fetch api 请求到第一种 response 部署有 stream 接口呢?