共计 1041 个字符,预计需要花费 3 分钟才能阅读完成。
从浏览器中输入一个域名地址,我们会经历哪些过程,这篇文章不会去细化到每一个过程的具体实现,后面的文章会陆续告诉你。那么我们应该关注哪些东西呢?浏览器 ==》网络 ==》服务器 ==》浏览器
简单过程
1、浏览器解析 url
http:// www. polarisjack.top /blog/webDetail ?id=1
协议名称 服务器名 域名 资源路径 参数
浏览器客户端解析好我们输入的地址以后,解析出域名,再根据域名解析出 IP 地址
2、浏览器根据解析得到的域名获取服务器的 IP 地址
将域名解析成服务器的 IP 地址这个步骤是由 DNS 服务器完成的,首先客户端根据你输入的域名去找浏览器 dns 缓存是否有对应的 ip,如果没有会去寻找本地的 hosts 文件 (windows 系统 dns 缓存),检查文件中是否有域名和 IP 的对应关系。如果有,则根据这个 IP 地址建立连接。如果没有,再去 DNS 服务器寻找。具体详情可参加另外一篇博客:浏览器的域名解析
3、建立 TCP 连接
找到目标 IP 地址以后,客户端主动尝试与服务器进行连接,三次握手。第一次是客户端主动连接服务器,此时服务器知道客户端需要建立连接了。第二次是服务器到客户端,此时客户端知道服务器收到连接请求了。第三次是客户端到服务器,此时服务器知道客户端收到了自己的回应。到这里,就认为客户端与服务器已经建立连接了。具体详情可参考另外一篇博客:TCP 的三次握手和四次挥手。
4、发送 http 请求
服务器根据客户端发送的请求,根据后台服务逻辑做出相应的响应具体详情可参考另外一篇博客:http
5、得到响应结果
客户端根据服务响应得到后台服务响应的数据,因为此处为浏览器中输入域名的情况,假设后台返回的是一个普通的 html 页面,浏览器得到此 html 页面以后会进行解析。
6、浏览器解析 HTML
渲染引擎解析 html 是从上到下解析,渲染引擎解析 html 的过程中,把标签内容转化为 dom 节点,映射成为 DOM 树。具体详情可参加另外一篇文章:浏览器工作原理
7、请求 HTML 中需要加载的资源
渲染引擎在解析 html 的过程中,遇到外部资源(如:css、js), 会请求外部资源
8、render 渲染
渲染引擎把 html 映射成为 DOM 树,根据加载的 css 资源,构建为 render 树,再布局为 render 树,最后绘制 render 树,通过呈现引擎展示给用户。渲染引擎解析 html 的过程中,把标签内容转化为 dom 节点,如果遇到 css 文件或者 style 标签,会把这些样式和 dom 节点构建成另外一棵 render 树, 成型的几何结构。