从URL输入到展示页面发生了什么?

当用户打开浏览器,输入 www.baidu.com,页面展示百度首页。整个过程发生了什么?本文以此为例做个简单介绍。该过程主要分为:

  1. 域名解析
  2. 服务器处理
  3. 网站处理。

接下来,首先需要了解两个概念:

URL是什么?

URL:统一资源定位符,用于定位互联网上的资源。

基本URL包含:协议、服务器名称(或IP地址)、路径和文件名。协议主要分为四种类型:http,https(加密协议),ftp(文件传输协议),file(本地文件系统)。

IP地址是什么?

每个连入互联网的设备都会被分配一个IP地址。IP地址分为公网IP和局域网IP,一般本机的IP地址为:127.0.0.1。

1.域名解析

当用户输入域名,如:baidu.com,(若端口为80,则默认省略端口号),浏览器会解析域名,获得该域名对应的IP地址。浏览器是怎么解析域名对应的IP地址的呢?首先浏览器会查找DNS缓存,若有过缓存记录则直接连接;如果没有,继续向上一层,即系统缓存,也就是hosts文件中查找;如果仍然无法找到,则继续查找路由器缓存;以此类推,查找电信 ISP DNS缓存,最后则会向根域名服务器查找。最终找到该域名对应的IP地址。

小插曲:通过域名查找原理就不难理解DNS劫持了,黑客可以通过修改因特网中的DNS缓存,让用户输入正确的域名地址,跳转到假冒网站。

2.服务器处理

当浏览器找到IP地址后,就会向IP地址对应的服务器发送请求。服务器是一台安装了系统的机器,常见的系统如Linux,Windows Server。服务器会安装处理请求的软件一般叫做:Web服务器(例如:Apache,Nginx)。Web服务器接收Requset,根据请求域名的不同,返回不同的页面路径。

3.网站处理

根据不同的请求路径,后端程序控制器(Controller)会从模型(Model)中得到用户请求的数据然后发送给html模板(View),之后进行组合,将带有用户数据的html页面返回给浏览器。以上的处理流程就是一个MVC模式的简单样式。如下图所示:


从URL输入到展示页面发生了什么?_第1张图片
MVC模式

接下来,浏览器对返回的html页面,一句句读取进行解析;比如:解析到link标签后重新发送请求获取CSS,解析到script标签后发送请求获取JS,并执行代码。
最终经过以上的步骤,浏览器就会渲染出我们看到的网站页面。

本文为孙炎的原创文章,著作权归本人和饥人谷所有,转载务必注明来源

你可能感兴趣的:(从URL输入到展示页面发生了什么?)