16、Go语言HTTP请求全解析:从基础到高级应用

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头部信息,这样关闭响应体时就不会产生额外开销。

若要显

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值