DNS查询服务器的全流程解析

### DNS查询服务器的基本流程,能画出图更好,并说明为什么DNS查询为什么不直接从单一服务器查询ip,而是要经过多次查询,多次查询不会增加开销么(即DNS多级查询的优点)?

 

 

 

- **用户发起请求**:

- 用户在浏览器中输入一个域名(如 `www.example.com`)。

- 浏览器将该请求发送到本地DNS解析器(通常位于用户的操作系统中)。

- **本地DNS解析器查询本地缓存**:

- 本地DNS解析器首先检查其缓存中是否已有该域名的IP地址。

- 如果缓存中有有效的记录,则直接返回IP地址,流程结束。

- **查询递归DNS服务器**:

- 如果本地缓存中没有记录,本地DNS解析器将请求转发给递归DNS服务器(通常由用户的ISP提供)。

- 递归DNS服务器也会检查其缓存,并在缓存未命中时进行递归查询。

- **递归DNS服务器查询根DNS服务器**:

- 递归DNS服务器向根DNS服务器发送查询请求。

- 根DNS服务器不会直接返回IP地址,而是返回顶级域(如 `.com`)的权威DNS服务器的地址。

- **查询顶级域名(TLD)DNS服务器**:

- 递归DNS服务器根据根DNS服务器的回应,向TLD DNS服务器(如 `.com` 的权威DNS服务器)发送查询请求。

- TLD DNS服务器返回该域名的权威DNS服务器的地址。

- **查询权威DNS服务器**:

- 递归DNS服务器向权威DNS服务器发送查询请求。

- 权威DNS服务器返回该域名的最终IP地址。

- **返回IP地址给用户**:

- 递归DNS服务器将获得的IP地址缓存,并返回给本地DNS解析器。

- 本地DNS解析器再将IP地址返回给用户的浏览器。

- **浏览器向IP地址发送请求**:

- 浏览器使用获得的IP地址与目标服务器建立连接,并请求网页内容。

 

![img](https://i-blog.csdnimg.cn/blog_migrate/094448eca8e438fd922e047e525e8615.png)

 

 

 

使用多级查询的优点:

 

#### **分布式架构提高可靠性和性能**:

 

- **避免单点故障**:如果DNS仅依赖单一服务器,当该服务器故障时,所有域名解析请求将无法完成。通过分布式架构,可以避免这种情况,提高系统的可靠性。

- **负载均衡**:将查询请求分布到多个服务器上,可以有效分散负载,避免单个服务器过载,从而提高整体性能。

 

#### 2. **缓存提高效率**:

 

- **递归查询中的缓存**:递归DNS服务器会缓存查询结果,这意味着后续相同的查询请求可以直接从缓存中获取,无需再次进行全程查询,显著减少查询时间和负载。

- **浏览器和操作系统缓存**:本地缓存也能减少网络请求次数,加快域名解析速度。

 

#### 3. **逐级查询优化管理**:

 

- **分层结构便于管理**:DNS采用层级结构(根、TLD、权威服务器),便于管理和更新。例如,根服务器只需知道TLD服务器的地址,而TLD服务器只需知道其下域名的权威服务器地址。

- **安全性**:分层查询可以提高系统的安全性和抗攻击能力。攻击者难以同时攻击所有层级的服务器,从而提高系统的安全性。

 

#### 4. **全球范围内的可扩展性**:

 

- **地域分布**:DNS服务器分布在全球各地,能够更快响应用户的查询请求。根服务器和TLD服务器的地理分布使得查询请求可以在用户所在区域得到快速处理,减少网络延迟。

 

### https的加密与认证过程

 

1. **客户端发起连接请求**:

 

- - 客户端向服务器发送连接请求,请求建立安全连接。这个请求是明文的 HTTP 请求,但是以 `https://` 开头的 URL。

 

1. **服务器发送数字证书**:

 

- - 服务器收到客户端的连接请求后,会将自己的数字证书发送给客户端。数字证书中包含了服务器的公钥以及相关的信息。

 

1. **客户端验证证书**:

 

- - 客户端收到服务器的证书后,会验证证书的有效性。这包括验证证书是否由可信任的证书颁发机构(CA)签发,证书是否在有效期内,以及服务器的域名是否与证书中的域名匹配等。

 

1. **客户端生成对称密钥**:

 

- - 如果服务器的证书验证通过,客户端会生成一个对称密钥(称为会话密钥),用于后续的数据加密和解密过程。

 

1. **客户端使用服务器公钥加密对称密钥**:

 

- - 客户端使用服务器的公钥加密生成的对称密钥,并将其发送给服务器。这个过程是使用非对称加密算法,确保只有服务器持有的私钥可以解密这个对称密钥。

 

1. **服务器解密对称密钥**:

 

- - 服务器收到客户端发送的加密密钥后,使用自己的私钥对其进行解密,得到对称密钥。

 

1. **建立安全连接**:

 

- - 客户端和服务器都拥有了相同的对称密钥,它们可以使用对称密钥进行加密和解密。

  - 之后的通信过程中,客户端和服务器使用对称密钥进行数据加密和解密,保障通信的安全性。

 

1. **客户端发送加密请求**:

 

- - 客户端发送加密请求,包括需要访问的资源等信息。这些请求数据在传输过程中会使用对称密钥进行加密。

 

1. **服务器处理请求并返回加密响应**:

 

- - 服务器接收到客户端的请求后,进行相应的处理,并将响应数据使用对称密钥进行加密后返回给客户端。

 

1. **客户端解密响应**:

 

- - 客户端接收到服务器的加密响应后,使用对称密钥进行解密,得到原始的响应数据。

 

![img](https://i-blog.csdnimg.cn/blog_migrate/e49d2568fd96fd7146ba110ba6bbb2ba.png)

 

### TCP和UDP的主要区别是什么

 

需要从不同的角度来回答

 

参考:

 

1. **连接**

 

- - **TCP**: 面向连接的传输层协议,传输数据前需建立连接。

  - **UDP**: 无需连接,即时传输数据。

 

1. **服务对象**

 

- - **TCP**: 一对一的服务,一条连接只有两个端点。

  - **UDP**: 支持一对一、一对多、多对多的交互通信。

 

1. **可靠性**

 

- - **TCP**: 可靠交付数据,无差错、不丢失、不重复、按序到达。

  - **UDP**: 尽最大努力交付,不保证可靠交付数据,但可基于UDP实现可靠传输协议(如QUIC)。

 

1. **拥塞控制、流量控制**

 

- - **TCP**: 有拥塞控制和流量控制机制,保证传输安全性。

  - **UDP**: 没有拥塞控制,即使网络拥堵也不会调整发送速率。

 

1. **首部开销**

 

- - **TCP**: 首部长度较长,可变(最少20字节,选项字段增加)。

  - **UDP**: 固定8字节,开销较小。

 

1. **传输方式**

 

- - **TCP**: 流式传输,无边界,保证顺序和可靠性。

  - **UDP**: 每个包独立发送,有边界,可能丢包和乱序。

 

1. **分片处理**

 

- - **TCP**: 大数据分片在传输层,丢失时只需传输丢失的分片。

  - **UDP**: 大数据分片在IP层,接收后在IP层组装,再传输给传输层。

 

**TCP 和 UDP 应用场景**:

 

- **TCP**: FTP文件传输,HTTP/HTTPS等需要可靠数据传输的场景。

- **UDP**: DNS、SNMP等少量数据通信,视频、音频流传输,广播通信等。

 

(这些点都可以展开来说)

 

 

 

### GET和POST请求的区别

 

**语义**

 

- **GET**: 请求指定的资源,请求参数以查询字符串形式附加在URL后面,长度限制较为严格。

- **POST**: 向指定资源提交数据,数据包含在请求体中,可以传输大量数据,且格式不限于ASCII字符。

 

**安全性**

 

- **GET**: 请求参数暴露在URL中,可能被浏览器缓存、历史记录等记录和存储,不适合传输敏感信息。

- **POST**: 请求参数在请求体中,不会被浏览器缓存或保存,更适合传输敏感信息。

 

**数据类型**

 

- **GET**: 参数仅支持ASCII字符,长度限制(通常在几千字节以内),不适合传输大数据。

- **POST**: 无数据类型限制,适合传输大数据和复杂数据类型(如文件上传)。

 

**幂等性( 幂等性指的是同一请求的重复执行不会产生不同的结果)**

 

- **GET**: 幂等,多次请求同一URL返回相同结果。

- **POST**: 非幂等,多次请求可能产生不同的结果(如提交订单)。

 

**缓存处理**

 

- **GET**: 可以被缓存,浏览器可以直接使用缓存数据。

- **POST**: 默认不会被缓存,需要服务器指定缓存策略。

 

**使用场景**

 

- **GET**: 用于请求数据、查询操作,对请求结果的幂等性要求较高的场景。

- **POST**: 用于提交表单、上传文件、进行状态变更等需要发送数据的场景。

 

### 什么是跨域,什么情况下会发生跨域,有什么解决办法

 

跨域指的是在浏览器中运行的脚本试图访问不同源(即不同的域、协议或端口)的资源时所遇到的安全限制问题。具体来说,浏览器出于安全考虑,限制了来自不同源的页面间的互操作性,防止恶意网站利用用户登录状态等进行跨站攻击。

 

跨域问题通常在以下情况下会出现:

 

1. **不同的协议**:比如从 `http://example.com` 发送请求到 `https://api.example.com`。

2. **不同的域名**:比如从 `http://example.com` 发送请求到 `http://api.anotherdomain.com`。

3. **不同的端口**:比如从 `http://example.com:3000` 发送请求到 `http://example.com:4000`。

 

解决方案:

 

**CORS(跨域资源共享)**:

 

- **服务器端设置响应头**:在服务端的响应中添加 `Access-Control-Allow-Origin` 头部,指定允许访问的源。例如:`Access-Control-Allow-Origin: *` 表示允许所有源访问。

 

**JSONP(JSON with Padding)**:

 

- JSONP 是一种通过动态创建 `<script>` 标签来加载包含 JSON 数据的响应的方法。由于 `<script>` 标签**不受同源策略限制**,可以用来绕过跨域问题。不过使用 JSONP 需要注意安全性问题和仅适用于 GET 请求的限制。

 

**Nginx代理**:

 

- 使用Nginx作为代理服务器和用户交互,用户就只需要在80端口上进行交互就可以了,这样就避免了跨域问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/463255.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flutter CustomScrollView 效果-顶栏透明与标签栏吸顶

CustomScrollView 效果 1. 关键组件 CustomScrollView, SliverOverlapAbsorber, SliverPersistentHeader 2. 关键内容 TLDR SliverOverlapAbsorber 包住 pinned为 true 的组件 可以被CustomScrollView 忽略高度。 以下的全部内容的都为了阐述上面这句话。初阶 Flutter 开发知…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-30

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-30 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-30目录1. Step Guided Reasoning: Improving Mathematical Reasoning using Guidance Generation and Step Reasoning摘要研究背…

十款思维导图软件推荐,有适合你的一款!!!

在这个信息爆炸的时代&#xff0c;各种信息交错在一起&#xff0c;如何有效整理并理解大量的信息呢&#xff1f;我是借助思维导图来整理的呢&#xff01;现在&#xff0c;市面上有许多优秀的思维导图制作软件。今天&#xff0c;我就来聊聊这些软件工具的独特之处和它们如何帮助…

【P2-1】ESP8266 WIFI模块STA、AP、STA+AP、TCP/UDP透传工作模式介绍与AT指令介绍

前言:本文对ESP8266 WIFI模块STA、AP、STA+AP、TCP/UDP透传工作模式进行介绍;以及AT指令介绍,包括基础AT指令,WIFI功能AT指令、TCP/IP相关AT指令、常用AT指令实例进行介绍。 ESP8266 WIFI模块的接线及固件烧写可参考我的这篇博客:正点原子ATK-ESP8266 WIFI模块接线及固件…

模型 康威定律(沟通VS技术架构)

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。组织结构塑造系统架构。 1 康威定律的应用 1.1 某金融科技公司支付系统的微服务架构 某金融科技公司的支付系统采用微服务架构&#xff0c;团队按照功能模块划分为支付网关团队、账户管理团队、风控…

AppInventor2能否用网络摄像头画面作为屏幕的背景?

// 视频是否可以作为背景&#xff1f; // 有会员提问&#xff1a;能否用网络摄像头的实时画面作为屏幕的背景&#xff1f;就跟这个一样背景全覆盖&#xff1a; 摄像头画面是一个在线的网站链接视频流。 // 原先思路 // 1、目前原生组件无法直接实现这个功能&#xff0c;屏幕…

AI时代,一篇雄文说清楚CPU与GPU的区别

一、CPU与GPU的概念 先说说大家最熟悉的CPU,英文全称Central Processing Unit,中央处理器。 但凡是个人都知道,CPU是计算机的心脏。 运算器和控制器这两个核心功能,都是由CPU负责承担的。 具体来说,运算器(包括加法器、减法器、乘法器、除法器),负责执行算术和逻辑运…

类和对象—上

目录 一、面向过程和面向对象初步认识 1.面向过程介绍 2.面向对象 二、类的引入 1.可以利用关键字struct来定义类的原因 1.1.C可以使用struct来定义类的原因是 2.利用关键字struct定义类及访问类成员的案例 3.使用关键字struct定义结构体、定义类的区别 3.1.C语言的结…

AJ-Report:一款开源且非常强大的数据可视化大屏和报表工具

嗨&#xff0c;大家好&#xff0c;我是小华同学&#xff0c;关注我们获得“最新、最全、最优质”开源项目和工作学习方法 AJ-Report是一个基于Java的开源报表工具&#xff0c;它集成了ECharts、Ant Design Vue等前端技术&#xff0c;致力于为企业提供一站式的数据可视化解决方案…

论文阅读:MultiUI 利用网页UI进行丰富文本的视觉理解

《HARNESSING WEBPAGE UIS FOR TEXT-RICH VISUAL UNDERSTANDING》 利用网页UI进行丰富文本的视觉理解 总结 grounding和QA部分的数据集占比较大、同时消融实验显示其作用相对较大&#xff0c;并且grounding部分作用和效果呈现scaling正相关提供了很多web数据处理成多模态训练…

微服务设计模式 - 断路器模式 (Circuit Breaker Pattern)

微服务设计模式 - 断路器模式 (Circuit Breaker Pattern) 定义 断路器模式&#xff08;Circuit Breaker Pattern&#xff09;是云计算和微服务架构中的一种保护性设计模式&#xff0c;其目的是避免系统中的调用链出现故障时&#xff0c;导致系统瘫痪。通过断路器模式&#xff…

roberta融合模型创新中文新闻文本标题分类

项目源码获取方式见文章末尾&#xff01; 600多个深度学习项目资料&#xff0c;快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【基于CNN-RNN的影像报告生成】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生成】 4.【CNN模型实现…

win11安装安卓apk原生应用,并设置网络代理

一、win11安装安卓apk原生应用&#xff0c;查看https://blog.csdn.net/qq_33704787/article/details/123658419https://blog.csdn.net/qq_33704787/article/details/123658419 主要是安装&#xff1a;Windows Subsystem for Android™ with Amazon Appstore 二、使用ABD工具设…

计算机网络(Ⅵ)应用层原理

一些网络应用的例子: E-mail Internaet电话 Web 电子支付 文本信息 搜索 P2P文件共享 流媒体 即时通讯 实时电视会议 .... .... 创建一个网络应用&#xff1a; 1.编程 2.在不同的端系统上运行。 网络应用的体系架构 可能的应用架构 1.客户-服…

【调优方法】——warmup预热

文章目录 什么是warmup?为什么引入warmup&#xff1f;warmup策略1. 线性warmup&#xff08;虚线&#xff09;2. 指数warmup&#xff08;点划线&#xff09; warmup改进参考文献 什么是warmup? warmup是一种学习率预热的方法&#xff0c;是指在训练开始时使用较小的学习率&am…

【Java笔记】1-JDK/JRE/JVM是个啥?

JDK、JRE、JVM可以说是入门必须了解的三个词汇 先说全称 JDK&#xff1a;Java Development Kit&#xff0c;Java开发工具包 JRE&#xff1a;Java Runtime Environment&#xff0c;Java运行环境 JVM&#xff1a;Java Virtual Machine&#xff0c;Java虚拟机 再说关系 JVM⊆J…

阿里云docker安装禅道记录

docker network ls docker network create -d bridge cl_network sudo docker run --name zentao --restart always -p 9982:80 --networkcl_network -v /data/zentao:/data -e MYSQL_INTERNALtrue -d hub.zentao.net/app/zentao:18.5 参考&#xff1a;用docker安装禅道…

uniapp iOS打包证书过期——重新下载证书及更新文件

证书过期&#xff0c;重新生成步骤 关于所需的证书、标识符、描述文件等请查看iOS打包证书申请流程证书有效期为1年 过期提示 生成证书 点击 钥匙串访问 → 证书助理 → 从证书颁发机构请求证书 &#xff1b; 我这里选择 存储到磁盘 &#xff0c;邮件、名称 可自定义&#…

Pandas 数据清洗

1.数据清洗定义 数据清洗是对一些没有用的数据进行处理的过程。很多数据集存在数据缺失、数据格式错误、错误数据或重复数据的情况&#xff0c;如果要使数据分析更加准确&#xff0c;就需要对这些没有用的数据进行处理。 2.清洗空值 DataFrame.dropna(axis0, howany, threshN…

数据结构与算法(1)

一&#xff1a;文章总体结构内容解读 二&#xff1a;绪论 1.1研究&#xff1a; 1.范围 数据结构是一门研究非数值计算的程序设计中计算机的操作对象以及它们之间的关系和操作的学科&#xff1b; 2.计算机解决问题步骤&#xff1a; 1.2基本概念和术语&#xff1a; 1.数据、…