我想这是以前曾被问及的答案,但我不知道要搜索什么才能找到它。这发生在我身上,作为您在计算机网络大学课程中学习的东西 - 我从来没有拿过的东西。如果有人能指出我的答案,那会很好。网络/ Golang - 对“GET”请求的解析
所以,问题是:
在许多语言中,像围棋和JavaScript,它是相对简单的做一个“GET”请求通过HTTP/HTTPS的API。但是表面之下发生了什么,在一个相对较高层次的描述中呢?
我问,因为我需要一个更好的理解,以掌握如何处理各种错误,我收到时,事情不应该如他们应该的行为。
对于我打算回答的一种想法,我会参考Golang的http调用方法。在Golang中,您可以导入net/http
包并拨打电话http.Get("http://www.example.com")
。但是你也可以指定一个“客户端”,你可以配置它来拥有特定的定制头文件等等。你可以在客户端中指定一些更复杂的东西,比如使用的传输器等等,而我对它并不感兴趣的东西除非它解决了我的问题。
基本上,这归结为:Go是完全并发的,在我的情况下是并行的。我每秒向一个API发出约300个请求。 golang docs的建议是客户端对于并发使用是安全的,所以应该只实例化一次 - 实质上,我有一个全局客户端,通过它来传输每个请求。
如果我得到一个错误,指出连接已被杀死,是否会影响一个请求,很多请求,我是否必须对客户端做任何事情以获得另一个连接?
此外,它是一次一个连接请求,还是有一个新的连接为每个请求?请求之间的连接是否持续,什么决定了它们何时死亡?
这个问题可能很漫长,可能没有意义。如果任何人都可以回答它的任何部分,那将非常感激。
你似乎只是问“http工作如何”? go客户端处理http/1.1(和go1.6中的http/2)。如果你了解协议,客户的行为就会如此。这不是http的细节教程的地方。如果你想讨论如何使用客户端,讨论一下*邮件列表就是一个更好的论坛,但在这里你应该提出具体的问题。 – JimB