从理论到实践网络编程模型:(BIO、NIO、AIO)同步与异步模型的原理与应用 (二)

      初次接触网络编程的小伙伴们,或者是对网络知识(url是什么?IP是什么?等等)云里雾里的朋友们,这一篇是一个基础知识的小科普,对网络的知识的一个解析,学了前端的部分知识的我,虽然可以写一部分内容,但是有部分的内容我压根不知道是啥。这篇不仅仅是一个基础也是一个剖析深入的一个过程

理论基础

   url是干什么的?

<a href="https://www.example.com/page.html">链接</a>
      看看这个标签是不是很熟悉,这个是我们前端代码中常用的锚节点语句,当中的hrep属性后面填的就是我们的URL
,URL(Uniform Resource Locator)即统一资源定位符,是用于定位互联网上资源的位置。 数据包快递的地址,包含了域名或IP地址、路径、查询参数等有人会有疑惑这些是啥?知道你急,但是先别急,先解析完这个url。

scheme://hostname:port/path?query#fragment
  1. Scheme(网络协议 国家/快递公司邮寄规定 ):表示使用的协议,常见的有 http、https、ftp 等。协议决定了客户端如何与服务器通信(打包大小方式)。
  2. Hostname(主机名 省、市、县)这是一个可以解析为 IP 地址的域名。主机名指向一个特定的服务器或网络设备。(寄送地址)
  3. Port(端口号 门牌号):服务器上监听的端口号。不同的服务通常使用不同的端口号,(新农村家后门有块地,每家种的菜不一样)例如 HTTP 默认使用端口 80,HTTPS 默认使用端口443。如果端口号省略,浏览器会使用协议的默认端口。(没有门牌号的,寄到村委会)
  4. Path(路径 中转站):/path/to/resource服务器上资源的具体位置。路径通常指向一个文件或目录。(中转仓库地址)
  5. Query(查询参数 单号查快递):query=example键值对格式的查询参数,常用于传递数据给服务器,多个参数用 &分隔。例如,搜索引擎的查询字符串就使用了这一部分。(记得部分信息)
  6. Fragment(片段标识符 快递具体信息):section1用于标识页面中的某个部分或片段,通常用于在页面内进行跳转。(买的具体是啥,发货日期等的点开查看详情)

ip和域名

域名和IP地址之间的关系是通过DNS(Domain Name System,域名系统)来管理和解析的。DNS 将易于记忆的域名转换为计算机能够理解的IP地址,从而实现网络通信。

DNS 迭代查询和递归查询

在 DNS(Domain Name System,域名系统)中,查询的过程有两种主要类型:迭代查询和递归查询。这两种查询方式在 DNS 解析过程中分别扮演着不同的角色。理解它们的区别和工作机制对于掌握 DNS 的工作原理至关重要。

递归查询

递归查询是指 DNS 客户端(通常是用户的计算机或本地 DNS 服务器)向 DNS 服务器发出请求,要求服务器返回最终的 IP 地址。如果所请求的 DNS 服务器无法直接回答查询,它会代表客户端向其他 DNS 服务器发出进一步的请求,直到获得最终结果。递归查询的特点是查询的发起者只会收到一个最终的响应,而不会参与中间的查询过程。查字典的拼音检索,按步骤层级查找。

递归查询的工作流程
  1. 客户端查询本地 DNS 服务器:用户计算机向本地 DNS 服务器发出 DNS 查询请求。
  2. 本地 DNS 服务器发起递归查询:如果本地 DNS 服务器没有缓存该域名的解析结果,它会发起递归查询。
  3. 根 DNS 服务器:本地 DNS 服务器首先向根 DNS 服务器查询顶级域名服务器(例如 .com.org 等)的 IP 地址。
  4. 顶级域名服务器(TLD 服务器):根 DNS 服务器返回顶级域名服务器的 IP 地址,本地 DNS 服务器向 TLD 服务器查询该域名的权威 DNS 服务器。
  5. 权威 DNS 服务器:TLD 服务器返回权威 DNS 服务器的 IP 地址,本地 DNS 服务器向权威 DNS 服务器查询该域名的最终 IP 地址。
  6. 返回结果:权威 DNS 服务器返回最终的 IP 地址,本地 DNS 服务器将结果缓存起来,并返回给客户端。
递归查询的示意图
客户端 ----> 本地 DNS 服务器 ----> 根 DNS 服务器 ----> TLD 服务器 ----> 权威 DNS 服务器
          <---- 返回 IP 地址  <---- 返回 IP 地址 <---- 返回 IP 地址 <---- 返回 IP 地址
迭代查询

迭代查询是指 DNS 客户端向 DNS 服务器发出请求,服务器返回一个可以进一步查询的下一级 DNS 服务器的地址,而不是直接返回最终的 IP 地址。客户端根据这些信息逐级查询,直到获得最终的 IP 地址。迭代查询的特点是查询的发起者(通常是本地 DNS 服务器)需要依次向多个 DNS 服务器发出查询请求。和老旧结构办事一样,带好证件以后办事,到了以后,要求去下行机构办申请,办完回来以后要求去找街道办事处办证明

迭代查询的工作流程
  1. 客户端查询本地 DNS 服务器:用户计算机向本地 DNS 服务器发出 DNS 查询请求。
  2. 本地 DNS 服务器发起迭代查询
    • 查询根 DNS 服务器,获取顶级域名服务器的 IP 地址。
    • 查询顶级域名服务器,获取权威 DNS 服务器的 IP 地址。
    • 查询权威 DNS 服务器,获取最终的 IP 地址。
迭代查询的示意图
客户端 ----> 本地 DNS 服务器
本地 DNS 服务器 ----> 根 DNS 服务器
                      <---- 返回 TLD 服务器地址
本地 DNS 服务器 ----> TLD 服务器
                      <---- 返回权威 DNS 服务器地址
本地 DNS 服务器 ----> 权威 DNS 服务器
                      <---- 返回最终 IP 地址
本地 DNS 服务器 ----> 客户端
                      <---- 返回最终 IP 地址

递归查询与迭代查询的对比

特性递归查询迭代查询
查询发起者DNS 客户端或本地 DNS 服务器本地 DNS 服务器
查询过程DNS 服务器代表客户端发起后续查询本地 DNS 服务器逐级查询
结果返回返回最终 IP 地址返回下一级 DNS 服务器地址或最终 IP 地址
查询复杂度对客户端透明,复杂度较低客户端需要处理多个查询,复杂度较高
性能对 DNS 服务器负担较大,但客户端响应快对 DNS 服务器负担较小,但客户端响应慢

从理论到实践网络编程模型:(BIO、NIO、AIO)同步与异步模型的原理与应用 (一)
从理论到实践网络编程模型:(BIO、NIO、AIO)同步与异步模型的原理与应用 (二)
从理论到实践网络编程模型:(BIO、NIO、AIO)同步与异步模型的原理与应用 (三)

  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值