URL是什么
URL—>Uniform Resource Locator—>统一资源定位符,如同在网络上的门牌,是因特网上标准的资源的地址(Address),互联网上的每个文件都有一个唯一的URL,俗称网页地址。
完整的URL是由协议(比如HTTP、HTTPS、FTP、FILE)、域名(比如Google)、文件路径(比如writer#/notebooks/13388520/notes/13420684/preview)和端口(比如:80)四个部分组成的。
从URL输入浏览器到页面展现到底发生了什么
一、输入URL
首先,在浏览器输入URL
二、浏览器进行域名解析
第一步,浏览器开始进行域名解析,也就是DNS解析,域名解析的过程按顺序如下
- 浏览器缓存
- 系统缓存
- 路由缓存
- ISP DNS 缓存(从网络服务商的DNS缓存信息中查找)
经由以上四种查找方法还没查找到目标URL对应的IP的话,就会向根域名DNS服务器查找目标URL的对应IP,根域名服务器会向下级服务器转送请求进行递归式查找,层层下发,直至找到对应IP为止。
域名解析完成后,就可以通过IP地址找到对应得服务器,这时候,浏览器就会把用户发起的HTTP请求发送给服务器。
三、服务器处理用户请求
服务器是什么?
服务器就是一台安装系统的机器,每个服务器里都安装有处理请求的应用——web server。常见的web server产品有apache、nginx、IIS或Lighttpd等。
Web server是什么?
接收用户的请求交给网站代码,或者接受请求反向代理到其他 web服务器。
Web server可以代指硬件或软件,它们是协同工作的。
- 在硬件部分,一个网络服务器是一个用来存储网站的组成文件(比如说 HTML 文档,图片,CSS 样式表,和 JavaScript 文件)以及交付它们到终端用户的设备的计算机。它跟互联网连接并可以通过域名像 mozilla.org 来被访问。
- 在软件部分,一个网络服务器包括几个控制网络用户如何访问托管文件的部分,至少是一个 HTTP 服务器 [HTTP server]。一个 HTTP 服务器是一个能理解URLs (网络地址) 和 HTTP 的软件。
Web server 存在的意义是什么?
浏览器把用户发起的HTTP请求发送给服务器后,Web server会进而在它做自己的存储空间中搜索所请求的文件(因为同一个服务器地址,有时候可能同时绑定了多个域名)。当找到这文件时,这个服务器会读取它,按需处理它,并且把它传送回浏览器。Web server就相对于起到了内容分发的作用,为不同域名的用户请求展示其相应的内容,下图很清楚的表达了这些内容。
四、网站处理
这一步实际上就是后台处理数据反馈给浏览器之前的过程,拿MVC设计模式来说,就是控制器接收用户请求,然后调用相应的数据模型,按照相应的业务逻辑处理请求返回的数据,然后再经过控制器处理,返回html字符串给浏览器。
下图就是这一步的过程图解
五、浏览器处理
通过后台处理返回的html字符串结果会被浏览器读取解析,对应就是html页面加载、解析、渲染的工作。
- 加载
浏览器对一个html页面的加载顺序是从上而下的,并在加载过程并行进行解析渲染处理。在这个过程中遇到link标签、image标签、script标签时,浏览器会再次向服务器发送请求获取css文件、图片资源、js文件,并执行js代码,同步进行加载解析。
- 解析、渲染
解析的过程,其实就是生成解析树,即dom树。dom树是由dom元素及属性节点组成,加上css解析的样式对象和js解析后的动作实现。而渲染,就是将DOM树进行可视化表示。下一步就来到了绘制网页的工作阶段。
六、网页绘制
浏览器通过上面步骤计算得到渲染树,是DOM树的可视化表示,构建渲染树使页面以正确的顺序绘制出来,遵循一定的渲染规则,经过一系列的渲染工作,实现网站页面的绘制,由此最终完成了页面展示。
总结:
经过以上分析,我们来总结一下从URL输入到页面展现发生了什么
- 输入URL
- 浏览器进行域名解析
- 服务器处理用户请求
- 网站处理
- 浏览器处理
- 网页绘制
参考:
什么是web server?-----MDN
说说从URL输入到页面展现的过程
浏览器的工作原理:新式网络浏览器幕后揭秘