浏览器从URL输入到页面展现到底发生了什么? 回流、重绘


1、浏览器上输入url

  • 用户输入url,例如http://www.baidu.com。
  • 其中http为协议,www.baidu.com为网络地址,及指出需要的资源在那台计算机上。
  • 一般网络地址可以为域名或IP地址,此处为域名。
  • 使用域名是为了方便记忆,但是为了让计算机理解这个地址还需要把它解析为IP地址。

2、应用层DNS解析域名

什么是DNS?

  • DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
  • 通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。

通俗的讲,我们更习惯于记住一个网站的名字,比如www.baidu.com,而不是记住它的ip地址,比如:167.23.10.2。而计算机更擅长记住网站的ip地址,而不是像www.baidu.com等链接。因为,DNS就相当于一个电话本,比如你要找www.baidu.com这个域名,那我翻一翻我的电话本,我就知道,哦,它的电话(ip)是167.23.10.2。

DNS解析过程:

  1. 浏览器先检查自身缓存中有没有被解析过的这个域名对应的 IP 地址。
  2. 浏览器缓存中没有命中,浏览器会检查操作系统缓存中有没有对应的已解析过的结果。(在 Windows 中可通过 C 盘里一个叫 hosts 的文件来设置,如果你在这里指定了一个域名对应的 IP 地址,那浏览器会首先使用这个 IP 地址。)
  3. 至此还没有命中域名,会请求本地域名服务器(LDNS)来解析这个域名,这台服务器一般在你的城市的某个角落,距离你不会很远,并且这台服务器的性能都很好,一般都会缓存域名解析结果,大约 80% 的域名解析到这里就会完成。
  4. LDNS 仍然没有命中,就直接跳到 Root Server 域名服务器请求解析。
  5. 根域名服务器返回给 LDNS 一个所查询域的主域名服务器(gTLD Server,国际顶尖域名服务器,如.com .cn .org 等)地址。
  6. 此时 LDNS 再发送请求给上一步返回的 gTLD Server。
  7. 接受请求的 gTLD Server 查找并返回这个域名对应的 Name Server 的地址,这个 Name Server 就是网站注册的域名服务器。
  8. Name Server 根据映射关系表找到目标 IP,返回给 LDNS。LDNS 缓存这个域名和对应的 IP。
  9. LDNS 把解析的结果返回给用户,用户根据 TTL 值缓存到本地系统缓存中,域名解析过程至此结束。

3、应用层客户端发送HTTP请求

互联网内各网络设备间的通信都遵循TCP/IP协议,利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。

分层由高到低分别为:应用层、传输层、网络层、数据链路层。发送端从应用层往下走,接收端从数据链路层网上走。

在这里插入图片描述

得到 IP 地址后,浏览器会开始构造一个 HTTP 请求,应用层客户端向服务器端发送的HTTP请求包括:请求行请求头请求正文

请求消息格式:

请求行(方法 空格/URL 空格 协议/版本号)
消息报头 可选
空行 发送回车符和换行符,通知服务器以下不再有请求头。
消息正文 可选

在这里插入图片描述
在这里插入图片描述

请求行

  • 包括:请求方法开头,以空格分开,后面跟着请求的URI和协议的版本。

eg:
GET /index.html HTTP/1.1
POST /index.html HTTP/1.1
Delete /index.html HTTP/1.1

请求的方法

  • GET 请求获取URI所标识的资源
  • POST 请求URI所标识的资源,并请求服务器接收附加在请求后面的数据,常用于表单提交。
  • HEAD 请求获取由URI所标识的资源的响应消息报头
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南栀~zmt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值