第一步:在浏览器输入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地址,才能找到目标。域名解析的流程为:
从浏览器缓存中解析——浏览器会缓存DNS记录一段时间。
从系统缓存中解析——从Hosts文件查找是否有
baidu.com
这个域名对应的IP。从路由器缓存中解析——一般路由器会缓存域名信息。
从ISP DNS缓存中解析——比如从电信的DNS上查找缓存。
如果都没有找到,则向根域名服务器查找域名对应的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字符串被浏览器接受后被一句句读取解析。
解析到Link标签后重新发送请求获取CSS。
解析到Script标签后发送请求获取JS,并执行代码。
解析到Img标签后发送请求获取图片资源。
第六步:绘制网页
- 浏览器根据HTML和CSS计算得到渲染树,绘制到屏幕上,JS被执行。于是就呈现出了百度首页。
粗糙地区分一下域名、IP地址、DNS、服务器、浏览器、网页
我做了一个比喻,就是两个人通过手机互相通话的过程。域名好比你所通话对象在你通讯录里面的备注,IP地址好比通话对象的手机号码,DNS好比你手机的通讯录,服务器好比运营商,浏览器好比你的这部手机,网页好比就是你的通话对象。