当我们用浏览器访问一个网站到页面显示出来,身为用户我们只要用鼠标点点点就实现了页面展示,但是实际过程是有亿点点复杂。
大致过程为:
- 域名解析获取域名对应的IP地址
- 获得服务器的IP地址后与其建立TCP连接
- 客户机发送请求和接收资源
那么具体是怎样的过程的呢?
一、前提概要
1、网络分层模型
2、什么是IP地址?
- IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
- IP地址是32比特的全球唯一标识符
- IP地址在整个因特网范围内是唯一的。
3、什么是域名?
- 因特网采用层次树状结构的命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称, 即域名
- 域是名字空间中一个可被管理的划分。域还可以划分为子域,而子域还可以继续划分为子域的子域,这样就形成了顶级域、二 级域、三级域等。
- 每个域名都由标号序列组成,而各标号之间用点(“.") 隔开。
4、什么是DNS
- 域名系统:因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名(如 www.baidu.com)转换为便于机器处理的IP地址。
- DNS使用了大量的域名服务器,他们以层次方式组织
- 根域名服务器
- 顶级域名服务器
- 授权域名服务器(权限域名服务器)
- 本地域名服务器
二、漫漫取经之路就在脚下
1、域名解析
访问www.baidu.com时,需要将域名映射为对应的IP地址。即域名解析的过程。
2、建立TCP连接(三次握手)
- 服务器上会有一个进程一直在不断地监听TCP 80端口
- 客户机在获取到对应的 IP地址后,客户机向服务器发送一个连接请求报文
- 服务器监听到连接请求报文之后,向客户机返回一个确认报文,并为此次TCP连接分配缓存和变量
- 当客户机收到确认报文段后,再向服务器发出一个确认报文,并为此次连接分配缓存和变量
- 服务器再收到确认报文之后,TCP连接就建立成功了
3、获取资源
设HTTP协议使用持久连接5:
- TCP连接建立成功之后,客户机向服务器通过TCP连接发送携带请求资源信息的HTTP请求报文
- 服务器收到HTTP请求报文之后,通过HTTP响应报文将客户机请求的资源发送给客户机
- 如需多个资源,重复以上操作即可
注:实际上,客户机向服务器在建立TCP的第三次握手时发送的确认报文可以携带上HTTP请求报文
4、浏览器解释
客户机在接收到服务器返回的资源后,对其进行解释,用超文本标记语言(html)将其显示在屏幕上