题意分析
当我们在web浏览器的地址栏中输入: www.baidu.com, 具体发生了什么?
简述流程
- 对 www.baidu.com这个网址进行DNS域名解析,得到对应的IP地址
- 根据这个IP,找到对应的服务器,发起TCP的三次握手
- 建立TCP连接后发起HTTP请求
- 服务器响应HTTP请求,浏览器得到html代码
- 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) (先得到html代码,才能去找这些资源)
- 浏览器对页面进行渲染呈现给用户
- 服务器关闭TCP连接
进一步理解:
- DNS怎么找到域名的?
DNS域名解析采用的是递归查询的方式,过程是,先去找DNS缓存–>
缓存找不到就去找根域名服务器–>根域名又会去找下一级,这样递归查找之后,找到了,给我们的web浏览器
- 为什么HTTP协议要基于TCP来实现?
TCP是一个端到端的可靠的面相连接的协议,HTTP基于传输层TCP协议不用担心数据传输的各种问题(当发生错误时,会重传)
- 最后一步浏览器是如何对页面进行渲染的?
a) 解析html文件构成DOM树
b) 解析CSS文件构成渲染树
c) 边解析,边渲染