第1章 用户访问流程
1.访问网站流程
1. 客户端 浏览器输入网址信息点击回车(www.baidu.com)
2. 客户端 完成域名的解析过程(DNS)
3. 客户端 直接访问相应网站服务器 建立TCP三次握手过程
4. 客户端 访问网站服务器 发送HTTP请求报文 多次
5. 服务端 响应客户端请求 回复HTTP响应报文 多次
6. 客户端 浏览器看到网站页面
7. 客户端 结束访问网站过程 完成TCP四次挥手过程
2.关键名词
1.域名
2.DNS域名解析
3.TCP三次握手
4.TCP四次挥手
5.HTTP请求报文
6.HTTP响应报文
第2章 DNS域名解析
1.DNS介绍
DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,
它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,
而不用去记住能够被机器直接读取的IP数串.
2.DNS域名结构
域名结构说明:
由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法。任何一个连接在
因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name)。
这里,“域”(domain)是名字空间中一个可被管理的划分。
从语法上讲,每一个域名都是有标号(label)序列组成,而各标号之间用点(小数点)隔开。
域名可以划分为各个子域,子域还可以继续划分为子域的子域,这样就形成了顶级域、主域名、子域名等.关于域名层次
结构如下图:
image.png
举例:
“.com”是顶级域名;
“aliyun.com” 是主域名(也可称托管一级域名),主要指企页名;
“example.aliyun.com” 是子域名(也可称为托管二级域名);
“www.example.aliyun.com” 是子域名的子域(也可称为托管三级域名)
3.DNS服务器分层结构
域名是分层结构,域名DNS服务器也是对应的层级结构。有了域名结构,还需要有域名DNS服务器去解析域名,且是需要由遍及全世界的域名DNS服务器去解析,域名DNS服务器实际上就是装有域名系统的主机。域名解析过程涉及4个DNS服务器,分别如下:
image.png
4.DNS解析流程
文字说明:
DNS查询的结果通常会在本地域名服务器中进行缓存,如果本地域名服务器中有缓存的情况下,则会跳
过如下DNS查询步骤,很快返回解析结果。下面的示例则概述了本地域名服务器没有缓存的情况下,
DNS查询所需的8个步骤:
1、用户在Web浏览器中输入“example.com”, 则由本地域名服务器开始进行递归查询。
2、本地域名服务器采用迭代查询的方法,向根域名服务器进行查询。
3、根域名服务器告诉本地域名服务器,下一步应该查询的顶级域名服务器.com TLD的IP地址。
4、本地域名服务器向顶级域名服务器.com TLD进行查询。
5、.com TLD服务器告诉本地域名服务器,下一步查询example.com权威域名服务器的IP地址。
6、本地域名服务器向example.com权威域名服务器发送查询。
7、example.com权威域名服务器告诉本地域名服务器所查询的主机IP地址。
8、本地域名服务器最后把查询的IP地址响应给web浏览器。
一旦DNS查询的8个步骤返回了example.com的IP地址,浏览器就能够发出对网页的请求:
9、浏览器向IP地址发出HTTP请求
10、该IP处的web服务器返回要在浏览器中呈现的网页
解析流程图:
image.png
5.DNS术语
递归查询
是指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器本地没
有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结构提交给用户。
迭代查询
是指DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的地址,
用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。