从输入URL到页面加载发生了什么
2017-12-31 本文已影响0人
自由落体_4deb
1、DNS解析
我们一般在浏览器的地址栏直接输入一个URL地址,计算机实际上是不能根据这个地址去寻找我们所要的页面。它是要根据IP地址(如127.0.0.1)去寻找的,所以需要把URL地址转化成IP地址,这个过程就是DNS解析。
那为什么我们不直接输入IP地址呢?原因是难记,一连串数字很容易忘记,与之相比www.baidu.com
好记得多。
DNS的解析是从右往左进行的。如www.baidu.com
这个地址,解析过程是这样的:
一、先问本地的服务器有没有百度的域名,本地服务器说没有,则继续查找。
二、问根服务器有没有百度的域名,www.baidu.com的根是.,注意一个细节,其实百度的真正网址是www.baidu.com.,
最后面的.,大多数人因为偷懒会省略掉。根服务器说没有,则继续查找。
三、问com顶级服务器有没有百度的域名,com顶级服务器也说没有,则继续查找。
四、问baidu.com服务器有没有百度的域名,这个服务器回答说有,然后就把IP地址给计算机了。
五、浏览器把辛苦拿到的IP地址给缓存起来,下次要用的时候直接那出来即可,不必再次查找。
DNS解析就像是一个翻译软件,把URL地址翻译成计算机能听懂的IP地址。
2、TCP连接,传输层的一种协议。
3、发送http请求。
4、服务器接受请求,并返回http报文。
5、浏览器解析渲染页面。这个过程具体步骤如下:
一、先解析HTML,它不遵循常规的规则——从上到下或从下到上的解析,而是使用一种特殊的规则来解析。
解析HTML最主要的任务是——构建DOM树,HTML文档和DOM的节点基本上是一一对应的。
当HTML解析完之后,浏览器才会去拿CSS、JS等外部资源。
二、解析CSS
浏览器会把style特性值用CSS的规则去解析,根据CSS的语法把CSS文件解析成stylesheets Object。
三、页面渲染
计算出各个节点的位置,计算机绘制层等。
四、当HTML和CSS渲染完之后,JS引擎才执行JS代码,实现页面的交互等。