从输入URL到页面加载发生了什么(三次握手,页面渲染,四次挥手)

本文详细介绍了从输入URL到页面加载的完整过程,包括DNS解析、TCP三次握手建立连接、HTTP请求与响应、页面渲染以及TCP四次挥手关闭连接。深入探讨了三次握手和四次挥手的必要性和工作原理,对于理解网络通信和页面加载流程非常有帮助。
摘要由CSDN通过智能技术生成

本来只是想看一下前端的渲染和重绘回流,研究一下加载优化,然后就想着顺便过一下页面渲染前的步骤,发现涉及的东西还挺多的,就总结一下吧,下一章聊加载优化
大致步骤
1、浏览器的地址栏输入URL并按下回车。

2、浏览器查找当前URL是否存在缓存,并比较缓存是否过期。

3、DNS解析URL对应的IP。

4、根据IP建立TCP连接(三次握手)。

5、HTTP发起请求。

6、服务器处理请求,浏览器接收HTTP响应。

7、渲染页面,构建DOM树。

8、关闭TCP连接(四次挥手)。
  
先说URL,举个例子,常见的地址如:http://www.baidu.com ,一般由以下几部分组成

  • protocol,协议头,譬如有http,ftp等
  • host ,主机域名或IP地址
  • port ,端口号
  • path ,目录路径
  • query ,即查询参数
  • fragment ,即#键后面的hash值,一般用来定位到某个位置

NDS解析

按下回车,浏览器发起请求,如果URL是域名而不是IP地址,将会进行DNS解析

ip地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址
DNS是计算机域名的缩写,它是由解析器和域名服务器组成的

解析步骤

  • 浏览器先检查本地hosts文件是否有这个网址映射关系,如果有就调用,直接完成域名解析

  • 如果没找到则会查找本地DNS解析器缓存,如果查找到则返回

  • 上一步没有,浏览器会调用解析程序,并成为DNS服务器的一个客户,把待解析的域名放在DNS的请求报文中,以UDP用户数据报的方式发给本地DNS服务器,如果本地DNS服务器查找到相应的域名对应的IP地址,就把对应的IP地址放在回答报文中返回

    UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法

  • 如果还没找到,即本地DNS服务器不知道被查询域名的IP地址,由于主机向本地DNS服务器的查询是递归查询,所以此时,本地DNS服务器就会以DNS客户的身份向其他根DNS服务器继续发出查询请求报文。本地DNS服务器向根DNS服务器的查询是迭代查询,当找到相应域名的IP地址后,就会把这个结果返回给最初发起查询请求的浏览器

    递归查询:在该模式下DNS服务器接收到客户机请求,必须返回一个准确的查询结果给客户机。如果该DNS服务器本地没有存储被查询的DNS信息,那么该服务器会(替客户机)询问其他服务器,并将返回的查询结果再返回给客户机。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值