从浏览器中输入一个域名地址,我们会经历哪些过程,这篇文章不会去细化到每一个过程的具体实现,后面的文章会陆续告诉你。那么我们应该关注哪些东西呢?浏览器==》网络==》服务器 ==》浏览器
简单过程
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树,成型的几何结构。