【计算机网络 - 基础问题】每日 3 题(十)

✍个人博客:Pandaconda-CSDN博客

📣专栏地址:http://t.csdnimg.cn/fYaBd

📚专栏简介:在这个专栏中,我将会分享 C++ 面试中常见的面试题给大家~

❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

📝推荐参考地址:https://www.xiaolincoding.com/(这个大佬的专栏非常有用!)

28. 什么是网关,网关有哪些作用?

【回答一】

网关(Gateway)是在计算机网络中用于连接两个独立的网络的设备,它能够在两个不同协议的网络之间传递数据。在互联网中,网关是一个可以连接不同协议的网络的设备,比如说可以连接局域网和互联网,它可以把局域网的内部网络地址转换成互联网上的合法地址,从而使得局域网内的主机可以与外界通信。

在计算机系统中,网关可以用于实现负载均衡、安全过滤、协议转换等功能。具体来说,网关可以分为以下几种:

  • 应用网关:用于应用层协议的处理,如 HTTP、SMTP 等。
  • 数据库网关:用于数据库访问的控制和管理
  • 通信网关:用于不同通信协议之间的数据交换,如 TCP/IP、UDP/IP 等
  • API 网关:用于管理和转发 API 请求,实现 API 的授权、限流、监控等功能。
    总的来说,网关可以为不同网络提供连接和通信的功能,同时也可以提供安全、性能、可靠性等方面的增强功能是现代计算机系统中不可或缺的一部分。

【回答二】

网关,即 Gateway,网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求。如果让客户端直接与各个微服务通信,会有以下的问题:

  • 客户端会多次请求不同的微服务,增加了客户端的复杂性;
  • 存在跨域请求,在一定场景下处理相对复杂;
  • 认证复杂,每个服务都需要独立认证;
  • 难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分成多个。而划分出多个微服务就代表可能出现多个新的访问地址,如果客户端直接与微服务通信,那么重构将会很难实施;
  • 某些微服务可能使用了防火墙/浏览器不友好的协议,直接访问会有一定的困难;

29. 实现断点续传的原理

断点续传是指在文件传输过程中,如果传输过程中断或终止,用户可以从上一次传输的位置继续传输,而不需要重新开始传输整个文件。实现断点续传的原理如下:

  1. 服务器支持范围请求(Range requests):服务器需要支持 HTTP 协议的 Range 请求。Range 请求允许客户端指定请求的起始位置和结束位置,以获取文件的部分内容。
  2. 客户端发送 Range 请求:当客户端发起下载或上传请求时,客户端可以在 HTTP 请求头中添加 Range 字段,指定文件的起始位置。
  3. 服务器断点续传响应:当服务器接收到带有 Range 字段的请求后,会在响应头中返回 206 Partial Content(部分内容)状态码,并在 Content-Range 字段中指定所传输的文件片段位置和总长度。
  4. 客户端接收数据:客户端接收到部分内容后,将数据与已下载或上传的文件片段合并或替换。
  5. 继续传输:客户端将从上一次传输结束的位置继续发送新的请求,并设置 Range 字段为已下载或上传的文件大小,服务器会识别该请求并返回相应的文件片段。

通过这种方式,服务器和客户端实现了断点续传的功能。这样,即使在传输过程中断或终止,用户可以从上一次传输的位置继续传输文件,而不需要重新传输整个文件,提高了传输的效率。

30. CA 证书了解吗?

  1. 什么是 CA 证书?

CA 证书是由 CA 颁发的数字证书,用于验证公共密钥基础设施(PKI)中的实体身份。它包含有关实体(通常是服务器或客户端)的信息,如名称、公共密钥、有效期和签名。

  1. CA 的角色:
    1. 根 CA(Root CA):根 CA 是最高级别的 CA,它自签名并用于签署下级 CA 的证书。根 CA 的公共密钥被广泛分发,以便客户端可以验证下级 CA 的证书。
    2. 中间 CA(Intermediate CA):中间 CA 是由根 CA 签发的 CA 证书,它们可以用于签署终端实体(服务器或客户端)的证书。它们构成了 CA 层次结构中的中间层。
    3. 终端实体:终端实体可以是服务器、客户端或其他网络设备,它们使用由 CA 颁发的证书来验证其身份,并进行安全通信。
  2. 证书验证:

当客户端与服务器之间建立安全连接时,客户端会验证服务器的证书。这个验证包括以下步骤:

  • 客户端检查服务器证书的签名是否可以通过根 CA 的证书验证。
  • 客户端检查证书中的有效期以确保它仍然有效。
  • 客户端检查证书中的主体名称(通常是服务器的域名)是否与客户端尝试连接的主机名匹配。
    如果服务器证书通过验证,客户端将与服务器建立安全连接。
  1. 用途:

CA 证书广泛用于 Web 安全(HTTPS)、电子邮件加密(S/MIME)、虚拟专用网络(VPN)、数字签名等领域。它们确保了通信的机密性、完整性和身份验证。

  1. 著名的 CA:

一些著名的 CA 包括 Comodo、Symantec(现在属于 DigiCert)、GlobalSign、Let's Encrypt 等。

相关推荐
RS&1 分钟前
python学习笔记
笔记·python·学习
卡卡_R-Python2 分钟前
海洋气象编程工具-Python
开发语言·python
爱学习的真真子3 分钟前
菜鸟也能轻松上手的Java环境配置方法
java·开发语言
豆本-豆豆奶23 分钟前
23个Python在自然语言处理中的应用实例
开发语言·python·自然语言处理·编程语音
曳渔29 分钟前
Java-数据结构-二叉树-习题(三)  ̄へ ̄
java·开发语言·数据结构·算法·链表
你可以自己看1 小时前
python中函数式编程与高阶函数,装饰器与生成器,异常处理与日志记录以及项目实战
服务器·开发语言·python
gopher95111 小时前
go语言 数组和切片
开发语言·golang
ymchuangke1 小时前
线性规划------ + 案例 + Python源码求解(见文中)
开发语言·python
gopher95111 小时前
go语言Map详解
开发语言·golang
Python私教1 小时前
Go语言现代web开发15 Mutex 互斥锁
开发语言·前端·golang