美文网首页计算机网络面试前端测试
当你在浏览器中输入url地址之后发生了什么?

当你在浏览器中输入url地址之后发生了什么?

作者: cp_insist | 来源:发表于2016-08-31 23:25 被阅读3887次

问题提出:

相信大多数人都对我们在浏览器的地址栏中输入完成之后的一系列作用过程都很好奇,题主和大家一样,一次浏览知乎无意间看见此问题,看完之后恍然大悟,接下来题主将根据自己的理解谈谈此问题:

1:域名的解析?

其实我们在浏览器中输入的是一个网站(网页)的域名,如果我们想要获取该域名下的资源,我们必须知道该域名的地址;(一个ip地址可以对应多个域名);所以我们要做的第一步就是解析我们的域名;将其翻译成ip地址:具体的解析过程如图:

利用DNS解析域名的过程

关于DNS具体的解析过程这里再详细解述以下:如上图所示浏览器接收到你输入的域名之后会现在浏览器本地的缓存里面查询看是否有该域名,然后依次访问系统缓存,路由缓存,由这里便开始我们的递归搜索;向DNS服务器发起查询请求:

补充知识点:服务器分类:

服务器组成

具体的递归过程如下图:

DNS解析url地址的过程

拿到服务器ip地址之后我们便可以通过TCP/IP协议向服务端发起连接请求了并传输数据了:

2:建立连接

由于TCP协议是面向连接的,我们在传输数据之前,我们首先要和服务器建立好连接;具体建立连接的过程如下:

三次握手

首先,客户端先发送一个创建连接的SYN请求,告诉服务器主机“我想和你创建一条TCP连接”。当服务器主机收到SYN请求后,如果其所请求的端口号正在等待连接,则会为这一条TCP连接分配资源,并发送一个SYNACK报文段作为应答。客户主机收到SYNACK报文段后,客户机也为该连接分配资源。此时,连接已经建立起来了。客户主机还会向服务器主机发送另一个报文段,对允许连接的报文段进行确认。这就是有名的“三次握手”。

3:客户端向服务器发送响应的请求,

4:服务器处理请求,并返回一个HTML页面

5:浏览器开始显示HTML页面

6:如果网页中间包含其他资源:如图片,CSS样式,Javascript文件等,这些资源所在地址都要经历一个和HTML读取类似的过程。所以浏览器会在DNS中查找这些域名,发送请求等等…

7:浏览器可以向服务器发送异步请求(ajax)

8:断开连接:

四次握手

(1)此时TCP连接两端都还处于ESTABLISHED(established)状态,客户端停止发送数据,并发出一个FIN报文段。首部FIN=1,序号seq=u(u等于客户端传输数据最后一字节的序号加1)客户端进入FIN-WAIT-1(终止等待1)状态。

(2)服务端回复确认报文段,确认号ack=u+1,序号seq=v(v等于服务端传输数据最后一字节的序号加1),服务端进入CLOSE-WAIT(关闭等待)状态。现在TCP连接处于半开半闭状态,服务端如果继续发送数据,客户端依然接收。

(3)客户端收到确认报文,进入FIN-WAIT-2状态,服务端发送完数据后,发出FIN报文段,FIN=1,确认号ack=u+1,然后进入LAST-ACK(最后确认)状态。

(4)客户端回复确认确认报文段,ACK=1,确认号ack=w+1(w为半开半闭状态时,收到的最后一个字节数据的编号),序号seq=u+1,然后进入TIME-WAIT(时间等待)状态。

注意此时连接还没有释放,需要时间等待状态结束后(4分钟)连接两端才会CLOSED。设置时间等待是因为,有可能最后一个确认报文丢失而需要重传。

相关文章

  • 当你在浏览器中输入url地址之后发生了什么?

    问题提出: 相信大多数人都对我们在浏览器的地址栏中输入完成之后的一系列作用过程都很好奇,题主和大家一样,一次浏览知...

  • 随便聊聊一道经典的面试题

    当你在Web浏览器中输入一个URL,发生了什么? 分为8步来回答:1、浏览器(客户端)进行地址解析。 2、将解析出...

  • Java学习/web学习

    1️⃣当你在浏览器中输入 google.com 并且按下回车之后发生了什么? 参考地址:https://githu...

  • 理解浏览器与客户端通信过程

    有以下几个场景说明浏览器与客户端通信过程 1.浏览器上输入url之后发生了什么? ①url解析②获取ip地址③建立...

  • 从 URL 输入到页面展现发生了什么

    什么是URL? 在浏览器中输入的Web地址称为URL(Uniform Resource Locators).URL...

  • 当你从浏览器地址栏中输入URL回车后发生了什么

    当你从浏览器地址栏中输入URL回车后发生了什么 版权声明:本文为博主原创文章,未经博主允许不得转载。 1. 我们在...

  • 面试小知识点

    1.在浏览器中输入url后发生了什么 第一步 DNS查询,查找该域名的 IP 地址(在浏览器DNS缓存中搜索→在...

  • HTTP概述(六)

    从输入URL到页面加载发生了什么? 1, 在浏览器中输入URL 2, 浏览器通过域名去找到对应的IP 浏览器缓存 ...

  • URL到页面展现的过程

    参考-老生常谈-从url到页面展示到底发生了什么 浏览器中输入url地址 url(统一资源定位符)用于定位网上的资...

  • 2019-02-27

    从输入url到显示页面,都经历了什么 1、首先,在浏览器地址栏中输入url 2、浏览器先查看浏览器缓存-系统缓存-...

网友评论

  • prope:ur建立的不是tcp/udp的协议 是http协议!还有这是你自己理解的吗?麻烦你应该多深入理解一下整个过程
    prope:@cp_insist 你应该把原文链接贴过来!还有。我就是想告诉其他看你这篇文章的人一些初学的人。。这篇文章就是写的不对!技术文章最低的要求就是客观事实!你以为是阅读理解吗?可以随便提笔加上自己的理解就写!!没有到达某个高度就不要乱写这些技术文章!!只会误导一些外行而已!对了 估计你也还没入门吧!!
    从不放弃:@cp_insist 我觉得 知乎就不要看了 现在它已经废了
    cp_insist:@prope 前面文章已经提到过,我是看了知乎上关于此文问题的答案之后根据他们的解答以及自己的理解写的;当然自己的理解有不对地方,还请各位大神及时批评指正;还有请问“ur”是什么东东?

本文标题:当你在浏览器中输入url地址之后发生了什么?

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