范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

GoHTTP何时才会复用TCP连接

  几乎每个IT的同学都知道 HTTP底层是 TCP,也知道多个HTTP请求可以复用一个TCP连接,但究其细节又不甚了解。
  那么HTTP 请求何时才能复用一个TCP连接呢?我们先做个例子func main() { 	// 创建一个带 trace的客户端 	clientTrace := &httptrace.ClientTrace{ 		GotConn: func(info httptrace.GotConnInfo) { log.Printf("conn was reused: %t", info.Reused) }, 	} 	traceCtx := httptrace.WithClientTrace(context.Background(), clientTrace)  	// 第一次请求 	req, err := http.NewRequestWithContext(traceCtx, http.MethodGet, "http://example.com", nil) 	if err != nil { 		log.Fatal(err) 	} 	_, err = http.DefaultClient.Do(req) 	if err != nil { 		log.Fatal(err) 	} 	// 第二次请求 	req, err = http.NewRequestWithContext(traceCtx, http.MethodGet, "http://example.com", nil) 	if err != nil { 		log.Fatal(err) 	} 	_, err = http.DefaultClient.Do(req) 	if err != nil { 		log.Fatal(err) 	} }
  输出的结果如下2022/04/20 14:17:57 conn was reused: false 2022/04/20 14:17:58 conn was reused: false
  也就是说底层并没有复用。也可以通过命令行查看连接,的确是建立了两条连接。# netstat -ant|grep 93.184.216.34 tcp        0      0 172.31.0.59:57836       93.184.216.34:80        TIME_WAIT   tcp        0      0 172.31.0.59:57828       93.184.216.34:80        TIME_WAIT
  仔细阅读 go的http包,可以发现
  只有当前一次的请求的数据被读完并且关闭请求后,才能复用
  我们改造一下这个例子func main() { 	// 创建一个带trace的客户端 	clientTrace := &httptrace.ClientTrace{ 		GotConn: func(info httptrace.GotConnInfo) { log.Printf("conn was reused: %t", info.Reused) }, 	} 	traceCtx := httptrace.WithClientTrace(context.Background(), clientTrace)  	// 第一次请求 	req, err := http.NewRequestWithContext(traceCtx, http.MethodGet, "http://example.com", nil) 	if err != nil { 		log.Fatal(err) 	} 	res, err := http.DefaultClient.Do(req) 	if err != nil { 		log.Fatal(err) 	}   // 读完返回的数据 	if _, err := io.Copy(ioutil.Discard, res.Body); err != nil { 		log.Fatal(err) 	}   // 关闭请求 	res.Body.Close() 	// 执行第二次请求 	req, err = http.NewRequestWithContext(traceCtx, http.MethodGet, "http://example.com", nil) 	if err != nil { 		log.Fatal(err) 	} 	_, err = http.DefaultClient.Do(req) 	if err != nil { 		log.Fatal(err) 	} }
  输出的结果如下2022/04/20 14:25:03 conn was reused: false 2022/04/20 14:25:03 conn was reused: true
  通过Linux系统查看也只有一个连接。netstat -ant|grep 93.184.216.34 tcp        0      0 172.31.0.59:57862       93.184.216.34:80        TIME_WAIT

重磅推荐开源中文版设计模式,通俗易懂文章首发于微信公众号GitHub黑板报,欢迎大家关注。打开微信,使用搜一搜,搜索GitHub黑板报,即可关注。大家好,我是章鱼猫。今天给大家推荐的开源项目是Designpatterwin7精简版中电脑显示器屏幕亮度怎么调的方法有不少深度技术用户都不知道电脑屏幕亮度如何调整,这是一个非常重要的问题。电脑屏幕的亮度不仅关系到电脑的节能和使用寿命,而且对我们的眼睛也有很大的影响。很多游戏迷,上班族或学生,整天车内空气无烦恼Teqoya得康氧车载负离子净化发生器上手体验前言大家好,我是小猴。熟悉汽车的小伙伴近一定知道新车买回来之后都会有很大的味道。而中高档品牌汽车都会多一项选配功能负离子净化发生器。尤其大家在各大旗舰系列车型上都能够选配这一功能。开源基于Python3和Keras2(TensorFlow后端)人脸表情识别系统一开源项目简介使用卷积神经网络构建整个系统,在尝试了GaborLBP等传统人脸特征提取方式基础上,深度模型效果显著。在FER2013JAFFE和CK三个表情识别数据集上进行模型评估开源社区团购直播秒杀分销拼团砍价群接龙多商户小程序一开源项目简介开源社区团购微商城小程序,直播,秒杀,分销,拼团,砍价,群接龙,多商户小程序。系统采用电商专用Yii2框架php7。2,后台采用elementvue。js开发,前后端国家开始整顿算法推荐了文章首发于微信公众号非著名程序员,欢迎大家关注。大家好,我是校长。前天,看到一条新闻,国家正准备出台政策,整顿算法推荐了。大概内容如下国家互联网信息办公室27日就互联网信息服务算法简单快乐相伴,记录与大唐的日常这个颜值真的是要爆棚了,前脸非常有冲击力,而且全新的比亚迪唐最突出的地方就是车灯了,在外观方面确实是很下功夫。后面这个贯穿式尾灯晚上真的是很漂亮,这个车漆也是非常厚的,那一次我都蹭机不可失,时不再来文章首发于微信公众号涩郎,欢迎大家关注。大家好,我是涩郎,一名知识挖掘师兼知识布道师。周末了,本周我在读书和学习的过程当中,又有了一些新的思考和顿悟,希望我自己在读书和学习过程当中牛逼,微软又干了一件好事文章首发于微信公众号非著名程序员,欢迎大家关注。大家好,我是校长。GitHub被微软收购之后,又更新一个牛逼功能。我感觉GitHub被微软收购之后,开源之路走得真的是越来越好了。这收藏癖就是一种认知阑尾文章首发于微信公众号涩郎,欢迎大家关注。大家好,我是涩郎,一名知识挖掘师兼知识布道师。今天我们来聊一聊收藏癖这件事,其实,收藏癖就是一种认知阑尾。松鼠症我们先讲一个故事吧,先从一个成功即使不能复制,其实也可以迁移文章首发于微信公众号涩郎,欢迎大家关注。大家好,我是涩郎,一名知识挖掘师兼知识布道师。今天是周六,跟大家聊一聊心里话吧,是最近的一点感慨。大家都知道,我写公众号已经坚持写了8年了,
国产动画超级小熊布迷腾讯视频独播播放量破50亿近日,由上游动漫和企鹅影视联合出品,知名作家插画家赖嘉晟担任总导演与执行制片人的中国原创3D动画片超级小熊布迷在腾讯视频平台独播播放量突破50亿大关!超高热度的背后,是优质的内容加雷克萨斯雷克萨斯惊奇主题永恒概念车雷克萨斯已经与漫威工作室合作,合作开发了10款基于即将上映的永恒电影中的超级英雄的角色主题概念车。在电影11月5日上映之前,雷克萨斯透露了定制包装的车辆灵感来自装甲设计,肖像,和超丰田在赛车中测试氢发动机东京(美联社)丰田公司周一表示,它正在测试赛车上的氢发动机,因为它正致力于在商用产品中使用氢发动机。这类发动机以氢代替汽油燃烧氢,就像火箭一样。这家日本汽车制造商说,在赛车上测试这价值250万美元的兰博基尼康塔赫已经售罄这款限量版混合动力超级跑车的最高时速为每小时211英里,灵感来源于1970年代同名的原装,它在发布后几天就销售一空了。蒙特雷汽车周加州的事件。兰博基尼将只生产112辆每辆售价约25周朝阳同一天发生的4件小事刚才还风和日丽,这会儿电闪雷鸣,刚才瓢泼大雨,这会儿阳光灿烂,深圳的天气就是这样,下完雨过天晴,该上班的上班,该回家的回家,该游玩的继续游玩,总之该干嘛干嘛。有一个客人说了一个不是为应对COVID19,IIoT的采用正在加速卫星巨头Inmarsat的研究发现,为应对COVID19,IIoT部署迅速加速。超过四分之三(77)的受访组织现在至少部署了一个物联网项目。从2020年第二季度开始的12个月内,这智慧空间设计师研学营首站结束,下站广州据悉,由千家智客创始人向忠宏亲自发起组织的智慧空间设计师研学营的首站已于2021年9月18日9月19日在武汉成功举办,来自武汉成都深圳常州等地的8名学员参与了两天两晚的研学课程,本方块3办公楼综合布线设计方案综合布线系统设计方案第一部分系统设计方案1系统概述1。1工程概况某办公楼(以下简称某办公楼)位于北京市海淀区木樨地玉渊潭南路1号,东临永定河引水渠,南临玉渊潭南路。大楼共15层,地当2G3G网络关闭时,您的物联网能正常工作吗?在过去的几年里,我们看到了很多与5G网络相关的头条新闻人们担心支撑它的基础设施的外国所有权,以及新兴技术的潜在安全隐患。在这种猜测中,我们可能错过了一个事实,那就是这个十年将给物联VR可穿戴设备智能家居支出高达5000亿美元到2025年底,全球可穿戴设备智能家居设备以及AR和VR耳机的支出预计将达到5250亿美元左右,IDC将更广泛的选择和更低的价格列为增长的一些关键驱动因素。在这三个类别中,智能家居周朝阳关于网络赚钱的12条真相1网赚圈吹牛逼的人超多,特别有目的的吹,也就是为了达到什么目标而吹,只是一种营销手段,反正吹完也不用负责,没有人查。如果相信了,你就凌乱了。2有新手进到一个行业赚钱了,那是因为人家