Go语言HTTP请求全解析:从基础到高级应用
1. 关闭响应体
HTTP/1.1支持客户端与服务器保持TCP连接以进行多次HTTP请求(即保持活动支持)。但如果前一个响应中存在未读取的字节,客户端就无法重用TCP会话。
Go的HTTP客户端在关闭响应体时会自动清空其内容。若能确保关闭每个响应体,代码就能重用底层的TCP会话。下面是一个HTTP响应示例:
HTTP/1.1 200 OK
Accept-Ranges: none
Vary: Accept-Encoding
Content-Type: text/plain
Date: Mon, 02 Jan 2006 15:04:05 MST
Expires: Mon, 02 Jan 2006 15:04:05 MST
Cache-Control: private, max-age=0
Last-Modified: Mon, 02 Jan 2006 15:04:05 MST
X-Content-Type-Options: nosniff
Server: sffe
X-XSS-Protection: 0
Transfer-Encoding: chunked
Go的HTTP客户端从网络套接字读取响应状态和头部信息,这些数据会立即作为响应对象的一部分供代码使用。但客户端不会自动读取响应体,响应体在代码显式读取或关闭它(Go会隐式清空未读字节)之前一直未被消费。
若关闭响应体而未读取其中任何字节,Go会下载整个文件。更好的做法是发送HEAD请求来获取Content-Length头部信息,这样关闭响应体时就不会产生额外开销。
若要显
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



