假设服务器需要向客户端响应一些数据,并且数据来自本地磁盘上的文件。然后我们写,
n, err := io.Copy(w, f) // w is the ResponseWriter and f is the *os.File
我想的是,io.Copy()首先编写一个标头,然后将数据从f复制到w。
当err不是nil (例如unexpected EOF)时,客户端仍然得到一个状态代码200,尽管响应体包含一些错误。
也许本地磁盘坏了,或者客户端的网络坏了。我们怎么才能确定
err是由服务器还是客户端引起的?