【计算机网络 - 基础问题】每日 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 等。

相关推荐
lly20240614 小时前
SQL ROUND() 函数详解
开发语言
大宝剑17015 小时前
python环境安装
开发语言·python
why技术15 小时前
从18w到1600w播放量,我的一点思考。
java·前端·后端
lly20240615 小时前
CSS3 多媒体查询
开发语言
间彧15 小时前
Redis Cluster vs Sentinel模式区别
后端
Element_南笙15 小时前
吴恩达新课程:Agentic AI(笔记2)
数据库·人工智能·笔记·python·深度学习·ui·自然语言处理
间彧15 小时前
🛡️ 构建高可用缓存架构:Redis集群与Caffeine多级缓存实战
后端
间彧15 小时前
构建本地缓存(如Caffeine)+ 分布式缓存(如Redis集群)的二级缓存架构
后端
倔强青铜三15 小时前
苦练Python第69天:subprocess模块从入门到上瘾,手把手教你驯服系统命令!
人工智能·python·面试
倔强青铜三15 小时前
苦练 Python 第 68 天:并发狂飙!concurrent 模块让你 CPU 原地起飞
人工智能·python·面试