一、什么是URL?
URL(Uniform Resource Locator) 叫作统一资源定位符,能够对因特网的资源进行定位。
http://119.75.217.109:80/index.html
比如上面这个就是百度的URL。
URL一般有四部分组成: <协议>://<IP地址>:<端口>/<路径> /<资源名称>
那么我们可以对应百度的URL就知道:
- http 是协议。
- 119.75.217.109就是IP地址,但是IP地址太难记,所以我们平时记住的都是域名的,比如baidu.com,用域名代替IP地址。
- 80就是端口号,http协议的默认端口为80(所以可以省略)。
- index.html是指文件名称
所以我们平时在浏览器上输入:www.baidu.com就可以打开百度。
二、域名解析
在浏览器中输入,之后那么下一步发生了什么?
我们在浏览器输入www.baidu.com这个网址,实际上是向服务器发送一个请求,所以浏览器要先找到这个域名所对应的服务器在哪里,但是计算机并不能直接读懂www.baidu.com这是什么意思,需要转换成计算机能够读懂的语言。将域名解析成对应的服务器IP地址这项工作,是由DNS服务器来完成的。
域名解析的流程可以分为以下步骤:
- 首先是从浏览器的缓存中进行查找,如果能够找到,那么可以将请求发送到对应的服务器上去。
- 如果在浏览器缓存中没有找到,那么会去系统缓存进行查找。
- 如果还没有找到,会去路由器缓存中查找。(没装路由器就没有这一步)
- 如果还没有找到,会去ISP DNS缓存中查找,比如从电信的DNS缓存信息中查找。
- 最后还没有找到就会去根服务器进行查找,然后会根据根服务器反馈,去对应的.com服务器,进行迭代查找,最后将请求发给找到的服务器上。
三、服务器处理
每台服务器上都会安装处理请求的应用(web server)常见的web server有Apache、Nginx、IIS、Lighttpd等。服务器解析用户请求后,就会知道需要调度哪些资源文件,然后再通过对这些资源文件处理用户请求和参数,并调用数据库信息,最后将结果通过服务器返回给浏览器客户端。
四、网站处理流程
网站处理是后台的工作,以前大部分的网站后端是按照MVC设计模式进行搭建的。MVC是Model(模型)、View(视图)和Controller(控制)三个单词的首字母缩写。
MVC如何工作的?
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
五、浏览器的解析以及页面呈现
后台处理好之后会将请求结果发给浏览器,返回的内容会被浏览器读取解析,对应就是html页面加载、解析、渲染的工作。
浏览器是一个边解析边渲染的过程。首先浏览器解析HTML文件构建DOM树,然后解析CSS文件构建渲染树,等到渲染树构建完成后,浏览器开始布局渲染树并将其绘制到屏幕上。