初次接触网络编程的小伙伴们,或者是对网络知识(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
- Scheme(
网络协议国家/快递公司邮寄规定 ):表示使用的协议,常见的有 http、https、ftp 等。协议决定了客户端如何与服务器通信(打包大小方式)。 - Hostname(
主机名省、市、县)这是一个可以解析为 IP 地址的域名。主机名指向一个特定的服务器或网络设备。(寄送地址) - Port(
端口号门牌号):服务器上监听的端口号。不同的服务通常使用不同的端口号,(新农村家后门有块地,每家种的菜不一样)例如 HTTP 默认使用端口 80,HTTPS 默认使用端口443。如果端口号省略,浏览器会使用协议的默认端口。(没有门牌号的,寄到村委会) - Path(
路径中转站):/path/to/resource服务器上资源的具体位置。路径通常指向一个文件或目录。(中转仓库地址) - Query(
查询参数单号查快递):query=example键值对格式的查询参数,常用于传递数据给服务器,多个参数用 &分隔。例如,搜索引擎的查询字符串就使用了这一部分。(记得部分信息) - Fragment(
片段标识符快递具体信息):section1用于标识页面中的某个部分或片段,通常用于在页面内进行跳转。(买的具体是啥,发货日期等的点开查看详情)
ip和域名
域名和IP地址之间的关系是通过DNS(Domain Name System,域名系统)来管理和解析的。DNS 将易于记忆的域名转换为计算机能够理解的IP地址,从而实现网络通信。
DNS 迭代查询和递归查询
在 DNS(Domain Name System,域名系统)中,查询的过程有两种主要类型:迭代查询和递归查询。这两种查询方式在 DNS 解析过程中分别扮演着不同的角色。理解它们的区别和工作机制对于掌握 DNS 的工作原理至关重要。
递归查询
递归查询是指 DNS 客户端(通常是用户的计算机或本地 DNS 服务器)向 DNS 服务器发出请求,要求服务器返回最终的 IP 地址。如果所请求的 DNS 服务器无法直接回答查询,它会代表客户端向其他 DNS 服务器发出进一步的请求,直到获得最终结果。递归查询的特点是查询的发起者只会收到一个最终的响应,而不会参与中间的查询过程。查字典的拼音检索,按步骤层级查找。
递归查询的工作流程
- 客户端查询本地 DNS 服务器:用户计算机向本地 DNS 服务器发出 DNS 查询请求。
- 本地 DNS 服务器发起递归查询:如果本地 DNS 服务器没有缓存该域名的解析结果,它会发起递归查询。
- 根 DNS 服务器:本地 DNS 服务器首先向根 DNS 服务器查询顶级域名服务器(例如
.com
、.org
等)的 IP 地址。 - 顶级域名服务器(TLD 服务器):根 DNS 服务器返回顶级域名服务器的 IP 地址,本地 DNS 服务器向 TLD 服务器查询该域名的权威 DNS 服务器。
- 权威 DNS 服务器:TLD 服务器返回权威 DNS 服务器的 IP 地址,本地 DNS 服务器向权威 DNS 服务器查询该域名的最终 IP 地址。
- 返回结果:权威 DNS 服务器返回最终的 IP 地址,本地 DNS 服务器将结果缓存起来,并返回给客户端。
递归查询的示意图
客户端 ----> 本地 DNS 服务器 ----> 根 DNS 服务器 ----> TLD 服务器 ----> 权威 DNS 服务器
<---- 返回 IP 地址 <---- 返回 IP 地址 <---- 返回 IP 地址 <---- 返回 IP 地址
迭代查询
迭代查询是指 DNS 客户端向 DNS 服务器发出请求,服务器返回一个可以进一步查询的下一级 DNS 服务器的地址,而不是直接返回最终的 IP 地址。客户端根据这些信息逐级查询,直到获得最终的 IP 地址。迭代查询的特点是查询的发起者(通常是本地 DNS 服务器)需要依次向多个 DNS 服务器发出查询请求。和老旧结构办事一样,带好证件以后办事,到了以后,要求去下行机构办申请,办完回来以后要求去找街道办事处办证明
迭代查询的工作流程
- 客户端查询本地 DNS 服务器:用户计算机向本地 DNS 服务器发出 DNS 查询请求。
- 本地 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)同步与异步模型的原理与应用 (三)