前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HttpClient源码阅读——探索Tcp链接建立时机及http请求发送时机

HttpClient源码阅读——探索Tcp链接建立时机及http请求发送时机

作者头像
敲得码黛
发布2021-07-22 15:59:36
8550
发布2021-07-22 15:59:36
举报
文章被收录于专栏:敲得码黛

HttpClient源码阅读——探索Tcp链接建立时机及http请求发送时机

首先说明一点:我阅读源码一般都不是通篇阅读,而是抓住某一个关键问题,然后一步步跟踪下去,所以阅读源码的过程中会忽略一些我不太关注的部分源码。文章的标题就是此次源码阅读的核心

InternalHttpClient

因为Httclient发起请求的入口是httpClient.execute(httpPost),所以就跟着这个入口进去首先发现的就是InternalHttpClient,里面doExecute()方法是这个类的核心

然后再进一步跟踪下去,发现HttpClient采用了责任链的设计模式,将执行器划分成了若干个执行链路

MainClientExec

因为我们的关注点是tcp链接建立的时机及http请求发送的时机,因此其他几个不相关的执行器暂时先不做分析,先来侧重了解一下MainClientExec这个执行器。

execute方法是MainClientExec执行器的核心方法,这里首先向链接池请求一个链接,刚开始我以为是在这里创建的TCP链接,然而抓包结果显示这里并没有(没有发起三次握手),断点一步步往下走,然后在establishRoute这个方法发起了三次握手

链接建立完毕后,接着一步步向下走,直到requestExecutor.execute(request, managedConn, context)执行完毕才发起了http请求,并拿到了response响应信息

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 敲得码黛 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HttpClient源码阅读——探索Tcp链接建立时机及http请求发送时机
    • InternalHttpClient
      • MainClientExec
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档