用户打开浏览器,输入 baidu.com,页面展示百度首页。整个过程发生了什么?

一、用户在浏览器输入百度的URL

> URL:统一资源定位符(http://www.baidu.com),全球性地址,用于定位网上的资源。     

二、域名解析(查找IP地址)

对于用户输入的baidu.com,浏览器不知道baidu.com是什么,需要查找baidu.com网站服务器的IP地址,才能找到目标。这个找到IP地址的过程就叫做域名解析。

域名解析流程:

  1. 从浏览器缓存中查找IP地址。
  2. 在浏览器缓存中没找到,在系统缓存中查找。
  3. 系统缓存中也没查到,在路由器缓存中查找,因为路由器一般都有自己的DNS缓存。
  4. 还是找不到,就向ISP DNS发起域名解析请求,查找baidu.com的IP地址。
  5. 如果以上流程走完了,还是没有找到IP地址,则向根域名服务器查找,根域名服务器把请求转到下一级,直到找到IP地址。

在这之后,用户电脑的解析器获取到解析结果,会缓存在自己操作系统的DNS中,同时返回给浏览器,浏览器依旧会缓存一段时间

三、服务器处理

服务器是一台安装系统的机器,常见的如Linux、windows server,系统安装的应用web server才是接受请求和处理服务的。常见的Web服务器如Apacha\Nginx\IIS\lighttpd。Web服务器接收用户的请求交给网站,或者将接收的请求反向代理到其他Web服务器。

四、网站处理流程(MVC模型)

  • 视图:视图是用户看到并与之交互的界面。视图向用户展示用户感兴趣的业务数据,并能接收用户的输入数据,但是视图并不进行任何实际的业务处理。视图可以向模型查询业务数据,但不能直接改变模型中的业务数据。视图还能接收模型发出的业务数据更新事件,从而对用户界面进行同步更新。

  • 模型:模型是应用程序的主体部分。模型表示业务数据和业务逻辑。一个模型能为多个视图提供业务数据。同一个模型可以被多个视图重用。

  • 控制器:控制器接收用户的输入并调用模型和视图去完成用户的请求。当用户在视图上选择按钮或菜单时,控制器接收请求并调用相应的模型组件去处理请求,然后调用相应的视图来显示模型返回的数据。

MVC处理过程:

  1. 控制器接受用户请求,然后决定调用哪个模型来进行处理。
  2. 模型进行相应的逻辑处理,然后返回处理后的数据。
  3. 控制器调用视图将模型返回的数据呈现给用户。


    用户打开浏览器,输入 baidu.com,页面展示百度首页。整个过程发生了什么?_第1张图片
    MVC处理流程图.png

浏览器处理

  • 1、浏览器接收控制器返回的HTML,然后一句句读取解析HTML,解析到link标签后重新发送请求获取CSS,解析到script标签后发送请求获取js,并执行代码,解析到img标签后发送请求获取图片资源(请求流程跟上图一样)
  • 2、绘制网页:浏览器根据HTML和CSS计算得到渲染树,绘制到屏幕上,js会被执行

你可能感兴趣的:(用户打开浏览器,输入 baidu.com,页面展示百度首页。整个过程发生了什么?)