假设我们有一个处理 HTTP 请求的函数,例如:
func handler(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("first piece of data"))
// do something
w.Write([]byte("second piece of data"))
}
我想知道第一次调用 w.Write() 是否刷新到客户端?
如果它被刷新,那么我们实际上对客户端响应了两次,这很奇怪,因为我们如何Content-Length在第二次调用 write 之前确定?
如果它没有被刷新(比如数据在本地缓冲),那么如果我们在第一次调用时写入大量数据怎么办?(那个堆栈会溢出吗?)
慕妹3146593
相关分类