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

第一步:在浏览器输入URL

  • 一般输入域名baidu.com即可,网页浏览器会自动加上用户输入网页中“http://www.”的部分,即URL为http://www.baidu.com

Q.http是什么?

超文本传输协议(Hyper Text Transfer Protocol),是一种用于分布式、协作式和超媒体信息系统的应用层协议。http是万维网(www)的数据通信的基础。用户可以通过http请求获得资源。

Q.URL是什么?

统一资源定位符(Uniform Resource Locator),有时也被俗称为网页地址(网址),用于定位互联网上的资源。一个简单的URL结构一般为:协议://服务器名.域名/路径

第二步:域名解析

  • 对于http://www.baidu.com的URL,浏览器实际上不知道baidu.com是什么东西,需要查找baidu.com网站所在服务器的IP地址,才能找到目标。

  • 域名解析的流程为:

  1. 从浏览器缓存中解析——浏览器会缓存DNS记录一段时间。

  2. 从系统缓存中解析——从Hosts文件查找是否有baidu.com这个域名对应的IP。

  3. 从路由器缓存中解析——一般路由器会缓存域名信息。

  4. 从ISP DNS缓存中解析——比如从电信的DNS上查找缓存。

  5. 如果都没有找到,则向根域名服务器查找域名对应的IP,根域名服务器把请求转发到下一级,直到找到IP。

Q.DNS是什么?

域名系统(Domain Name System),是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

Q.IP地址是什么?

互联网协议地址(Internet Protocol Addres),是分配给网络上使用网际协议的设备的数字标签。每个处于互联网中的设备都有IP地址,形如:192。168.0.1。

Q.为什么要发明域名,不直接用IP地址?

IP地址通常由一串数字组成,不方便用户记忆,而域名起到一个将IP地址语义化的作用。

第三步:服务器处理

  • Web服务器接收用户的处理请求并交给网站,或者接受请求反向代理到其他Web服务器。

第四步:网站处理

  • 采用MVC软件架构模式。

  • 网站接受到用户的请求后,交给控制器处理,模型在数据库里查找数据并返回给控制器,控制器将数据传到视图模版上,最后组合成一个HTML,再发送到浏览器。

Q.MVC是什么?

MVC模式是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
控制器(Controller)—— 负责转发请求,对请求进行处理。
视图(View)—— 界面设计人员进行图形界面设计。
模型(Model)——程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。

第五步:浏览器处理

  • HTML字符串被浏览器接受后被一句句读取解析。
  1. 解析到Link标签后重新发送请求获取CSS。

  2. 解析到Script标签后发送请求获取JS,并执行代码。

  3. 解析到Img标签后发送请求获取图片资源。

第六步:绘制网页

  • 浏览器根据HTML和CSS计算得到渲染树,绘制到屏幕上,JS被执行。于是就呈现出了百度首页。

粗糙地区分一下域名、IP地址、DNS、服务器、浏览器、网页
我做了一个比喻,就是两个人通过手机互相通话的过程。域名好比你所通话对象在你通讯录里面的备注,IP地址好比通话对象的手机号码,DNS好比你手机的通讯录,服务器好比运营商,浏览器好比你的这部手机,网页好比就是你的通话对象。

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