美文网首页
输入网址按下回车,后面究竟发生了什么

输入网址按下回车,后面究竟发生了什么

作者: dashingqi | 来源:发表于2022-05-21 11:46 被阅读0次
Android_Banner.jpg

发什么什么了

那就抓包看看啦

使用环境以及工具

  • WIN10
  • WIN环境开启了 Telent客户端
  • 服务器 :Open resty
  • 抓包工具:WireShark

使用IP地址访问WEB服务器的抓包数据

捕获.PNG
三次握手,建立TCP链接
TCP建立连接三次握手.png

对应上述抓包红线下面的三个包,经过SYN、SYN/ACK、ACK三个包之后,浏览器与服务器的TCP连接就建立起来了;

HTTP协议工作,传输数据
HTTP传输数据.png

此次工作对应的抓包,时建立TCP连接之后的4个抓包

  1. 首先发出GET请求

  2. 服务器给个回应,说收到你的GET请求

  3. 服务器查询请求的数据,返回结果给浏览器

  4. 浏览器给服务器个回应说我收到你发来的数据;

TCP的四次挥手,关闭连接
TCP四次挥手,关闭连接.png
  1. 浏览器发出一个FIN的包,告诉服务器我要关闭TCP连接;

  2. 服务器给了个回应,告知浏览器我收到你发来的关闭TCP连接请求,发了一个ACK包,告知浏览器;

  3. 同时服务器说我要关闭TCP连接了,发出了FIN包给到浏览器;

  4. 浏览器收到服务器发来的TCP关闭连接请求后,给了个回应说我知道了;

使用域名访问WEB服务器

HTTP协议工作前提是建立在TCP/IP协议之上,我们上述是直接使用IP地址访问WEB服务器,就没有体现出IP协议的寻址和路由,下面是我们使用域名访问WEB服务器的抓包截图

域名访问WEB服务器.PNG

从抓包截图中可以看出来和IP地址直接访问没有什么区别

其实域名访问中间多了个域名解析的过程

域名解析

这里就不展开说域名解析过程,就把上述浏览器反问WEB服务器的过程描述下

  1. 从浏览器中查找缓存,就是域名对应的IP地址,拿到就直接使用

  2. 浏览器缓存中没有,就从本地DNS中查找 就是对应的hosts文件中查找

  3. 没有的话就从DNS服务器中查找(根DNS --> 顶级DNS --> 权威DNS 层层解析)

  4. 当从DNS查找到对应的IP地址后,可能CDN会从中间差一脚(CDN会缓存几分钟内访问到的资源数据,就不用千里迢迢从目标服务器中拿数据了)

  5. 当CDN中有数据就直接把数据返回,有些动态资源数据CDN还不能缓存,只能继续从目标服务器中获取到返回给浏览器

最近工作中有好多跨团队合作的需求,都是互相依赖,难以想象一个【端能力】能确认两个小时;

生活中都是问题叠加问题的,安抚好心情,积极乐观、晴天时修修屋子;

当了一年好几个月的螺丝钉,没有想象中那么简单,还是非常非常复杂;大家各司其职,各有各自的优势;

无论怎么样,眼下都是暂时,大家加油干、加油干;

后面会更新HTTP相关知识了。

相关文章

网友评论

      本文标题:输入网址按下回车,后面究竟发生了什么

      本文链接:https://www.haomeiwen.com/subject/ubrcprtx.html