打开浏览器,输入 baidu.com,页面展示百度首页。整个过程发生了什么?
image
一、输入URL
- 用户输入baidu.com,即统一资源定位符(URL)。
二、域名(DNS)解析
- 浏览器查找baidu.com网站所在的服务器IP地址。(为什么用域名不直接用IP?因为域名比较好记,有语义作用)。
- 浏览器依次从浏览器缓存,系统缓存,路由器缓存,ISP DNS缓存中查找是否有该域名和对应的IP。
- 以上都没有的情况则向根域名服务器查域名对应IP,根域名服务器将请求转至下一级,直至找到IP。
三、服务器处理
- 服务器是一台安装系统的机器,常见的系统如Linux、windows server 2012系统里安装的处理请求的应用叫 Web server。
- Web server是一个统一管控的工具。结合配置文件,Web server把接收到的用户请求交给网站代码,或者接受请求反向代理到其他Web server,然后返回后才程序处理的结果。
四、网站处理
- 网站处理,就是实际后台处理的工作。后台开发有很多框架,但大部分还是按照MVC模式进行搭建的。
-
首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回html字符串给浏览器。
五、浏览器处理
HTML字符串被浏览器接受后被一句句读取解析:
- 解析到link 标签后重新发送请求获取css;
- 解析到 script标签后发送请求获取 js,并执行代码;
- 解析到img 标签后发送请求获取图片资源。
六、绘制网页
- 浏览器根据 HTML 和 CSS 计算得到渲染树,绘制到屏幕上js 会被执行
网友评论