浏览器从输入网址到打开网页的过程
一:URL解析成ip地址
名词解释:
URL :(Uniform Resource Locator)统一资源定位符,用于互联网上不同资源的标示。
urljieshi
1:浏览器本地解析URL(一般是做格式化检查以及确认用http还是https协议,默认是http协议)。
2:浏览器本地缓存查找url对应ip。
3:本地host文件查找对应ip。
4:本地路由器DNS查看对应ip。
查找顺序:浏览器缓存-系统缓存-本地路由器DNS缓存
若上面都查不到,则要请求到dns服务器查找ip。
1::服务商dns检查缓存是否存在对应ip。
2:若不存在缓存或者缓存过期 则到根域名服务商上查找对应ip。
3:根域名服务商也是先检查缓存,若无,则检查域名为哪个dns服务商负责解析。然后请求转发。获得域名对应ip。
最后:ip返回到本地服务商的dns,本地服务商dns更新缓存。客户端成功拿到ip。
查找顺序:根域名服务器-com顶级域名服务器-具体域名服务器地址-www主机地址
二:网络传输通信
1:客户端拿到ip地址后,想要进行通信,先要和对方取得联系。看对方在不在,这个通常是由三次握手来实现。
三次握手补充:客户端和服务器一共发送三个包,同步连接双方的序列号和确认号并交换 TCP) 建立tcp连接。与目标服务器建立短连接。
通俗的说就是这样:
客户端:在家么,想去你家看看你。
服务器:在呀,欢迎来玩啊。
客户端:马上到。
2:三次握手完成后,tcp和服务器之间就建立了一个可靠地虚拟通道。浏览器知道了这个消息后。就将http请求消息打包,通过tcp协议发送给了服务端。
3:服务端收到请求报文后,处理报文信息,处理完成后将数据打包返回给客户端啊。
4:通信完成后,通过四次挥手,拆除tcp连接。客户端或服务器均可主动发起挥手动作。
5:最后,客户端拿到返回数据。
三:页面渲染
1:浏览器会将返回的HTML通过深度遍历解析成一个DOM树。
2:将CSS解析成 CSS Rule Tree 。
3:根据DOM树和CSSOM来构造 Rendering Tree。
补充(CSSOM是一个建立在web页面上的 CSS 样式的映射,它和DOM类似,但是只针对CSS而不是HTML)
4:最后通过Rendering Tree,浏览器就可以知道每个节点和各节点css的关系,再算出每个节点在屏幕的位置就可以绘制出每个节点了。
上述渲染过程为从上而下,逐步完成。即浏览器绘制了一部分就会显示一部分出来,再继续计算下面的部分。
结尾:整个过程详细描述起来还有很多的知识点没有说清楚,拓展开来还有很多的分布式,数据库,负载均衡,轮询等可以聊。我作为一个技术渣,通过曹大的这次分析,结合自己的思考输出了这篇文章。写文章的目的也只是为了让自己知识点记忆更深刻。最后,感谢我的偶像曹大和帅张。