2021-01-26 17:42:33
从URL输入到页面展现的过程
当用户在浏览器中输入一个URL并按下回车键时,浏览器会经历一系列复杂但有序的步骤来展现最终的页面。这个过程主要包括输入URL、DNS域名解析、服务器处理、浏览器处理以及绘制页面几个关键阶段。
一、输入URL
URL(统一资源定位符)是用来定位互联网上的资源的。当用户输入一个网址,如
二、DNS域名解析
DNS(域名系统)是一个分布式数据库,用于将域名映射到IP地址。当浏览器接收到用户输入的URL后,会首先尝试在浏览器缓存、操作系统缓存、路由器缓存以及ISP(互联网服务提供商)DNS缓存中查找该域名的IP地址。如果缓存中没有找到,浏览器会发起一个DNS查询请求。
DNS查询过程通常分为递归查询和迭代查询两种方式,但一般默认使用的是递归查询。在递归查询中,DNS客户机会委托本地服务器向根域名服务器发送查询请求。根域名服务器会返回顶级域的权威域名服务器地址,本地服务器再向该顶级域名服务器发送查询请求。顶级域名服务器会返回二级域名服务器地址,依此类推,直到找到最终的权威域名服务器。权威域名服务器会将请求的URL地址对应的IP地址发送给本地服务器,再反馈给DNS客户机。
三、服务器处理
当浏览器得到URL对应的IP地址后,会向该IP地址对应的服务器发送HTTP请求。服务器接收到请求后,会交给Web服务器(如Apache、Nginx、IIS等)处理。Web服务器会根据请求的内容,结合配置文件,将请求委托给服务器上处理对应请求的程序进行处理(如CGI脚本、JSP脚本、servlets、ASP脚本等)。
对于访问量非常大的网站,通常会采用负载均衡技术,将用户的请求分配给多台服务器处理。这样不仅可以提高网站的响应速度,还可以增强网站的稳定性和可靠性。在负载均衡技术中,用户解析到的通常是负载均衡服务器的IP地址,而不是网站的IP地址。
服务器处理请求的过程中,通常会采用MVC(Model-View-Controller)设计模式进行搭建。MVC设计模式将程序分为模型、视图和控制器三层,分别负责数据处理、用户界面和请求控制。当发送请求以后,MVC会将用户输入的请求发送给控制器接收,控制器决定用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器确定用哪个视图模型,用相应的视图格式化模型返回给浏览器。
四、浏览器处理
服务器处理完请求后,会返回一个HTML字符串给浏览器。浏览器接收到HTML字符串后,会进行加载、解析和渲染三个过程。
在加载过程中,浏览器会逐句读取HTML字符串,并根据其中的标签(如<link>、<image>、<script>等)向服务器发送请求获取相应的资源(如CSS文件、图片资源、JS文件等)。
在解析过程中,浏览器会解析HTML文档的结构和内容,构建DOM(文档对象模型)树。同时,如果遇到CSS文件,浏览器还会构建CSSOM(CSS对象模型)树。
在渲染过程中,浏览器会根据DOM树和CSSOM树计算得到渲染树,并将渲染树绘制到屏幕上。如果遇到JS代码,浏览器还会执行JS代码,并根据JS代码对DOM树和渲染树进行相应的修改。
五、绘制页面
最后,浏览器根据HTML和CSS计算得到的渲染树,将页面绘制到屏幕上。JS代码的执行结果也会反映在页面上,从而得到用户想要的页面效果。
以下是整个过程的直观感受图:

综上所述,从URL输入到页面展现的过程是一个复杂而有序的过程,涉及多个环节和多个技术的协同工作。只有各个环节都正常工作,用户才能最终看到想要的页面效果。