前言:当我们在浏览器中输入www.baidu.com,然后到页面展示完全,这一过程发生了什么?
第一步.在浏览器中输入URL:www.baidu.com
注:
URL:统一资源定位符;
协议:http,https(加密的http),file(定位本地的资源),ftp;
第二步.域名解析
注:
域名:baidu.com 就是域名;
IP:每个处于互联网中的设备都有IP地址,形如:192.168.0.1;127.0.0.1代表本机;
域名解析的流程:
1.先从浏览器缓存中查找 - 浏览器会缓存DNS记录一段时间
2.然后系统缓存 - 从Hosts文件查找是否有该域名和对应IP
3.然后路由器缓存 - 一般路由器也会缓存域名信息
4.然后ISP DNS缓存 - 比如到电信的DNS上查找缓存(服务商)
5.如果都没有找到,则向根域名服务器查找域名对应IP,根域名服务器把请求转发到下一级,直到找到IP。
第三步.服务器处理
注:
服务器是一台安装系统的机器,常见的系统如Linux,windows server 2012,系统里安装的处理请求的应用叫Web server。
Web服务器:常见的web服务器有Apache,Nginx,IIS,Lighttpd。
web服务器接收用户的Request交给网站代码,或者接受请求反向代理到其他web服务器。
第四步.网站处理流程
MVC模型:model,view,controller
在后端处理好请求后会将HTML发到浏览器。
第五步.浏览器处理
HTML字符串被浏览器接受后被一句句读取解析,
解析到link标签后重新发送请求获取css,
解析到script标签后发送请求获取js,并执行代码,
解析到img标签后发送请求获取图片资源。
第六步.绘制网页
浏览器根据HTML和CSS计算得到渲染树,绘制到屏幕上,js会被执行。
最后网页就完全显示出来了。