Http 网络/戈朗-a的解剖;获得;要求

Http 网络/戈朗-a的解剖;获得;要求,http,go,https,network-programming,connection,Http,Go,Https,Network Programming,Connection,我想这是以前问过的问题,也得到了回答,但我不知道要搜索什么才能找到它。在我看来,这是作为大学计算机网络课程的一部分,你会学到的东西——这是我从未学过的东西。如果有人能告诉我答案,那就太好了 因此,问题是: 在许多语言中,如Go和JavaScript,通过http/https向API发出“GET”请求相对简单。但在相对较高的层次上,表面下发生了什么 我这样问是因为我需要更好地理解如何处理我在事情不正常时收到的各种错误 对于我想要的答案,我将参考Golang进行http调用的方法。在Golang中,

我想这是以前问过的问题,也得到了回答,但我不知道要搜索什么才能找到它。在我看来,这是作为大学计算机网络课程的一部分,你会学到的东西——这是我从未学过的东西。如果有人能告诉我答案,那就太好了

因此,问题是:

在许多语言中,如Go和JavaScript,通过http/https向API发出“GET”请求相对简单。但在相对较高的层次上,表面下发生了什么

我这样问是因为我需要更好地理解如何处理我在事情不正常时收到的各种错误

对于我想要的答案,我将参考Golang进行http调用的方法。在Golang中,您可以导入
net/http
包并以
http.Get(“http://www.example.com)
。但是你也可以指定一个“客户机”,你可以将它配置为具有特定的自定义头等内容。你可以在客户机内部指定一些更复杂的内容,比如所使用的传输,以及更多我不感兴趣的内容,除非它解决了我的问题

基本上,它归结为:Go是完全并发的,在我的例子中是并行的。我每秒向一个API发出大约300个请求。来自的建议是,客户机对于并发使用是安全的,因此应该只实例化一次——本质上,我有一个全局客户机,每个请求都可以通过它进行处理

如果我收到一个错误,说一个连接被终止了,这会影响一个请求吗,许多请求,我需要对客户端做些什么才能获得另一个连接吗

另外,每次是每个连接一个请求,还是每个请求都有一个新的连接?请求之间的连接是否持久,是什么决定了它们何时死亡

这个问题可能相当杂乱无章,可能没有意义。如果有人能回答其中的任何部分,我们将不胜感激。

网络:

dns->ip->tcp->http。DNS将域解析为ip地址;tcp添加端口(如HTTP默认值80)等;http添加头、表单数据和其他。最后,您的http加载ip数据包从网络适配器发送,经过Internet路由器的良好处理,并将到达正确的http服务器

net/http:

我们主要在golang文档中回答了您所有的传输层问题。请仔细阅读

更新:

连接错误只影响一个请求。即使多个请求使用相同的tcp连接,因为请求-响应对是一对一,所以一个连接错误永远不会使两个请求失败。

网络:

dns->ip->tcp->http。DNS将域解析为ip地址;tcp添加端口(如HTTP默认值80)等;http添加头、表单数据和其他。最后,您的http加载ip数据包从网络适配器发送,经过Internet路由器的良好处理,并将到达正确的http服务器

net/http:

我们主要在golang文档中回答了您所有的传输层问题。请仔细阅读

更新:

连接错误只影响一个请求。即使多个请求使用相同的tcp连接,因为请求-响应对是一对一,所以一个连接错误永远不会使两个请求失败。

网络:

dns->ip->tcp->http。DNS将域解析为ip地址;tcp添加端口(如HTTP默认值80)等;http添加头、表单数据和其他。最后,您的http加载ip数据包从网络适配器发送,经过Internet路由器的良好处理,并将到达正确的http服务器

net/http:

我们主要在golang文档中回答了您所有的传输层问题。请仔细阅读

更新:

连接错误只影响一个请求。即使多个请求使用相同的tcp连接,因为请求-响应对是一对一,所以一个连接错误永远不会使两个请求失败。

网络:

dns->ip->tcp->http。DNS将域解析为ip地址;tcp添加端口(如HTTP默认值80)等;http添加头、表单数据和其他。最后,您的http加载ip数据包从网络适配器发送,经过Internet路由器的良好处理,并将到达正确的http服务器

net/http:

我们主要在golang文档中回答了您所有的传输层问题。请仔细阅读

更新:


连接错误只影响一个请求。即使多个请求使用相同的tcp连接,因为请求-响应对是一对一,所以一个连接错误永远不会导致两个请求失败。

好的,谢谢!但有一个问题是,当错误声明“连接已关闭”时,是单个请求的连接更持久,还是处理多个“GET”时的连接更持久?@bawjensen:连接可能是持久的,也可能不是持久的。这取决于客户端在协议级别上的处理,您不必担心。您是对的,我不必担心。但是,由于我在连接方面遇到了错误,并且我花费了大量时间围绕HTTPS连接建立加密,如果我可以根据我的具体情况优化连接的行为,我可以消除这些错误并加快代码的速度。好的,谢谢!但有一个问题是,当错误声明“连接已关闭”时,是单个请求的连接更持久,还是处理多个“GET”时的连接更持久?@bawjensen:连接可能是持久的,也可能不是持久的。这取决于客户端在协议级别上的处理,您不必担心。您是对的,我不必担心。但是因为我在连接上出错,我花了很多钱