天天都用浏览器的你知道输入网址后发生了什么吗?

本文首发于个人博客

前言

浏览器是如今必不可少的工具之一,每天都有无数人通过浏览器获取自己需要的信息。那么当你在浏览器中键入一行网址后究竟发生了什么?我们下面一起捋一捋。

图解

输入url到加载页面

具体分析

DNS解析

所谓解析就是把方便人类记忆的域名翻译成计算机的ip地址。比如输入的url是www.baidu.com,首先在本地域名服务器中寻找ip地址,如果没找到,本地域名服务器会请求根域名服务器寻找,如果还是没找到,本地域名服务器会请求com顶级域名服务器,如果还找不到,那么本地域名服务器继续请求baidu.com域服务器

在linux命令行中输入dig baidu.com +trace可以详细看到dns解析过程。

1、查询了根域名服务器 ,返回了13个根域名服务器的主机名。(目前全球一共13个根域名服务器)

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> baidu.com +trace
;; global options: +cmd
.			5	IN	NS	g.root-servers.net.
.			5	IN	NS	a.root-servers.net.
.			5	IN	NS	h.root-servers.net.
.			5	IN	NS	f.root-servers.net.
.			5	IN	NS	k.root-servers.net.
.			5	IN	NS	j.root-servers.net.
.			5	IN	NS	e.root-servers.net.
.			5	IN	NS	i.root-servers.net.
.			5	IN	NS	d.root-servers.net.
.			5	IN	NS	m.root-servers.net.
.			5	IN	NS	c.root-servers.net.
.			5	IN	NS	b.root-servers.net.
.			5	IN	NS	l.root-servers.net.
;; Received 239 bytes from 192.168.142.2#53(192.168.142.2) in 4047 ms

2、返回com.顶级域名服务器信息

com.			172800	IN	NS	e.gtld-servers.net.
com.			172800	IN	NS	c.gtld-servers.net.
com.			172800	IN	NS	i.gtld-servers.net.
com.			172800	IN	NS	f.gtld-servers.net.
com.			172800	IN	NS	k.gtld-servers.net.
com.			172800	IN	NS	j.gtld-servers.net.
com.			172800	IN	NS	m.gtld-servers.net.
com.			172800	IN	NS	l.gtld-servers.net.
com.			172800	IN	NS	g.gtld-servers.net.
com.			172800	IN	NS	b.gtld-servers.net.
com.			172800	IN	NS	d.gtld-servers.net.
com.			172800	IN	NS	h.gtld-servers.net.
com.			172800	IN	NS	a.gtld-servers.net.
com.			86400	IN	DS	30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.			86400	IN	RRSIG	DS 8 1 86400 20210226050000 20210213040000 42351 . sKLysaJvml4IZAj8fgWq+Kx5mNwc/K7vEzqlyRqT1xqQqMLajvy4N+cB 4yEK4P7tRZmus5iJ2n1F8ejG90NonpdxrZMZM5XoiqktGHSUt4cA+9bh 5Howi3VOBE94BEyuPOC7S0PZIO41J8kCASOlQRKwn/JgDJ3fxwM3JJU7 hn8OmZ4cQwI8GuBNf2rrdzr7JaywDTAHGPleTR+aHpxbKN/pIQwQqQN4 cv8OaDY1wxonAuDaFrAUKW4Gl3ekNmFKvmo5a2jybDF+wu14NwRX57Ho hAefWTraAeqQLdm1JJ5IM0B+wokDqpOyZG/9hCBPklqhWL8USLeWr//c uUzkig==
;; Received 1169 bytes from 202.12.27.33#53(m.root-servers.net) in 133 ms

3、返回baidu.com.域服务器信息

baidu.com.		172800	IN	NS	ns2.baidu.com.
baidu.com.		172800	IN	NS	ns3.baidu.com.
baidu.com.		172800	IN	NS	ns4.baidu.com.
baidu.com.		172800	IN	NS	ns1.baidu.com.
baidu.com.		172800	IN	NS	ns7.baidu.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20210217054119 20210210043119 58540 com. FD+n+fO9jI2LoVi9ULqvx6lIp8ZP5yC/0HzfnJqiqgTTubTJiVzoVT29 xai2LSeepPqzS/+sehbGHpqOgj21uJoOLePqmaVx/f73ZGcP6Ud2tlkQ QIE++OwDlcQK6P/BM96xdHmGEnG/RaMrFiHV919Xog+sFZddMpjVTtYR q9nST68IU2gLDcNTFeeM7P3CaUdaSRl3LIRz8iuWMrYNSg==
HPVUSBDNI26UDNIV6R0SV14GC3KGR4JP.com. 86400 IN NSEC3 1 1 0 - HPVVN3Q5E5GOQP2QFE2LEM4SVB9C0SJ6 NS DS RRSIG
HPVUSBDNI26UDNIV6R0SV14GC3KGR4JP.com. 86400 IN RRSIG NSEC3 8 2 86400 20210217071943 20210210060943 58540 com. N5kC7xBpBiXE1kFHNz0QrRWRsebQhrT+zL+oO8yaR0tRQfIhHR1QMNCl Nf6jGiV+W518OfSN16Ypw54wiKf5esFFNChS0LKgp522CUzp8mYYiI5D c8elJwUrD1mYqzLXTjTQF8v2IK3bi/NwWzCasM3K5YEnP2ihO9aLRATU 3l7MdCQC9kajJ8CzkLtA+JsnK0jTP3YsrClYZmS5jKmz4Q==
;; Received 757 bytes from 192.43.172.30#53(i.gtld-servers.net) in 276 ms

4、最终查到了ip地址

baidu.com.		600	IN	A	39.156.69.79
baidu.com.		600	IN	A	220.181.38.148
baidu.com.		86400	IN	NS	ns3.baidu.com.
baidu.com.		86400	IN	NS	ns7.baidu.com.
baidu.com.		86400	IN	NS	dns.baidu.com.
baidu.com.		86400	IN	NS	ns4.baidu.com.
baidu.com.		86400	IN	NS	ns2.baidu.com.
;; Received 240 bytes from 180.76.76.92#53(ns7.baidu.com) in 22 ms

找到ip地址后会将其存入DNS缓存方便下次查询。

DNS负载均衡

如果一个网站用户很多,那么一台机器显然无法满足大量的请求。DNS负载均衡可以在DNS服务器中为一个域名配备多个ip地址,从而引导用户访问到不同的机器。CDN就是负载均衡技术的体现,它把和用户最近的服务器ip返回给用户。

浏览器进行http请求 服务器返回响应

http是使用tcp作为传输协议的,关于tcp协议可以参考我的另一篇文章。这一段传输过程可以参考《图解HTTP》中的下图。

image-20210213165353534

浏览器渲染页面

浏览器首先解析HTML构建DOM树,然后解析CSS构建CSS规则树,将DOM树和规则树合成渲染树。之后遍历渲染树开始布局,计算每个节点的位置大小信息,将渲染树每个节点绘制到屏幕。具体过程可以参考这篇文章

image-20210213193103625

参考文章

https://segmentfault.com/a/1190000006879700

https://zhuanlan.zhihu.com/p/133906695

https://juejin.cn/post/6844903565610188807

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值