输入完成url地址到进入网站的过程

当我们输入一个url,按下回车之后发生了什么

这道题按理来说其实并不难,但是它经典在它是一个引子,通过这个例子可以引出任何面试官想要问你的问题

  • 总体来说分为以下几个过程:
    • 输入地址
    • DNS解析
    • TCP连接
    • 发生http请求
    • 返回http响应
    • 浏览器解析渲染页面
    • 断开连接
  1. 输入地址
    当我们在浏览器输入完地址的时候,浏览器已经在智能的匹配可能得到的url了,它会从历史记录,书签等地方,找到可能的url,来彰显智能
  2. DNS解析
    • DNS(Domain Name System)是域名系统的缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络。它主要职责是用来将主机名和域名转换为IP地址
    • 我们常说的网址,域名并非是计算机的唯一标识,计算机的唯一标识是IP地址。但是IP地址很难记住,因此我们搜索网址,DNS服务器自动解析成IP地址,进而查找到目标主机
    • 其过程如下:
      • 首先查找浏览器缓存:看看是否含有该网址的IP地址缓存记录
      • 查找系统缓存:浏览器找不到缓存就会去访问本地磁盘中的hosts文件,看看里面是否记录了该网址的IP缓存
      • 如果仍然没找到,浏览器会发送一个DNS请求到本地DNS服务器
      • 同样的,本地DNS服务器也会先查找它的缓存记录,此过程是递归的方式进行查询。如果没有则向DNS根服务器进行查询
      • 根DNS服务器如果查不到会告诉本地DNS服务器,你可以去域服务器查询,并给出域服务器地址。这种是迭代的过程。
      • 因为域名解析是从右往左开始的,因此对于www.baidu.com (准确的来说应该是www.baidu.com. ,最后一个点我们一般都会省略) 来说,先查找.com域服务器,.com域服务器同样会告诉本地DNS服务器去.baidu域服务器查找,这个过程会依次持续下去
      • 最后,本地DNS服务器向顶级域名服务器发出请求,这时就能收到一个域名和IP地址对应关系,本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问
  3. TCP连接
    主机浏览器通过DNS解析得到了目标服务器的IP地址之后,开始与其建立TCP连接
    TCP连接的建立需要三次握手:
    • 第一次握手:客户端将标志位SYN置为1,随机产生seq=j的数据包到服务器,客户端进入SYN-SENT状态,等待服务端确认
    • 第二次握手:服务端收到数据包后,由标志位SYN=1知道客户端需要请求建立连接,服务端将标志位SYN和ACK都置为1,ack=j+1,随机产生一个seq=K,并将该数据包发送给客户端以确定连接请求,服务端进入SYN_RCVD状态
    • 第三次握手:客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务端,服务端检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,完成三次握手,随后客户端A与服务端B之间可以开始传输数据了
  4. 发送http请求
    建立TCP连接之后,发起http请求。一个典型的http request header 一般需要包括请求的方法,例如get,post
  5. 返回http响应
    服务器接受处理完请求,返回http响应,一个响应报文格式基本请求报文,由响应行,响应头,空行,实体组成
  6. 浏览器解析渲染页面
    浏览器是一个边解析边渲染的过程。首先浏览器解析html生成DOM树,然后解析css生成渲染树,最后绘成render树并绘制到屏幕上去,
  7. 断开连接
    四次挥手实现连接中断
    • 第一次挥手:客户端发送一个FIN,用来关闭客户端到服务器的数据连接,客户端进入FIN_WAIT_1状态
    • 第二次挥手:服务器收到FIN,发送一个ACK给客户端,确认序号确认序号为收到的序号+1,服务器进入CLOSE_WAIT状态
    • 第三次挥手:服务器发送了FIN,用来关闭服务器到客户端数据连接,服务器进入LAST_ACK状态
    • 第四次挥手:客户端收到FIN后,客户端进入TIME_WAIT状态,接着发送ACK给服务器,确认序号为收到序号+1,服务器关闭,完成挥手。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容