✍个人博客:Pandaconda-CSDN博客
📣专栏地址:http://t.csdnimg.cn/fYaBd
📚专栏简介:在这个专栏中,我将会分享 C++ 面试中常见的面试题给大家~
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪
28. 什么是网关,网关有哪些作用?
【回答一】
网关(Gateway)是在计算机网络中用于连接两个独立的网络的设备,它能够在两个不同协议的网络之间传递数据。在互联网中,网关是一个可以连接不同协议的网络的设备,比如说可以连接局域网和互联网,它可以把局域网的内部网络地址转换成互联网上的合法地址,从而使得局域网内的主机可以与外界通信。
在计算机系统中,网关可以用于实现负载均衡、安全过滤、协议转换等功能。具体来说,网关可以分为以下几种:
- 应用网关:用于应用层协议的处理,如 HTTP、SMTP 等。
- 数据库网关:用于数据库访问的控制和管理
- 通信网关:用于不同通信协议之间的数据交换,如 TCP/IP、UDP/IP 等
- API 网关:用于管理和转发 API 请求,实现 API 的授权、限流、监控等功能。
总的来说,网关可以为不同网络提供连接和通信的功能,同时也可以提供安全、性能、可靠性等方面的增强功能是现代计算机系统中不可或缺的一部分。
【回答二】
网关,即 Gateway,网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求。如果让客户端直接与各个微服务通信,会有以下的问题:
- 客户端会多次请求不同的微服务,增加了客户端的复杂性;
- 存在跨域请求,在一定场景下处理相对复杂;
- 认证复杂,每个服务都需要独立认证;
- 难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分成多个。而划分出多个微服务就代表可能出现多个新的访问地址,如果客户端直接与微服务通信,那么重构将会很难实施;
- 某些微服务可能使用了防火墙/浏览器不友好的协议,直接访问会有一定的困难;
29. 实现断点续传的原理
断点续传是指在文件传输过程中,如果传输过程中断或终止,用户可以从上一次传输的位置继续传输,而不需要重新开始传输整个文件。实现断点续传的原理如下:
- 服务器支持范围请求(Range requests):服务器需要支持 HTTP 协议的 Range 请求。Range 请求允许客户端指定请求的起始位置和结束位置,以获取文件的部分内容。
- 客户端发送 Range 请求:当客户端发起下载或上传请求时,客户端可以在 HTTP 请求头中添加 Range 字段,指定文件的起始位置。
- 服务器断点续传响应:当服务器接收到带有 Range 字段的请求后,会在响应头中返回 206 Partial Content(部分内容)状态码,并在 Content-Range 字段中指定所传输的文件片段位置和总长度。
- 客户端接收数据:客户端接收到部分内容后,将数据与已下载或上传的文件片段合并或替换。
- 继续传输:客户端将从上一次传输结束的位置继续发送新的请求,并设置 Range 字段为已下载或上传的文件大小,服务器会识别该请求并返回相应的文件片段。
通过这种方式,服务器和客户端实现了断点续传的功能。这样,即使在传输过程中断或终止,用户可以从上一次传输的位置继续传输文件,而不需要重新传输整个文件,提高了传输的效率。
30. CA 证书了解吗?
- 什么是 CA 证书?
CA 证书是由 CA 颁发的数字证书,用于验证公共密钥基础设施(PKI)中的实体身份。它包含有关实体(通常是服务器或客户端)的信息,如名称、公共密钥、有效期和签名。
- CA 的角色:
- 根 CA(Root CA):根 CA 是最高级别的 CA,它自签名并用于签署下级 CA 的证书。根 CA 的公共密钥被广泛分发,以便客户端可以验证下级 CA 的证书。
- 中间 CA(Intermediate CA):中间 CA 是由根 CA 签发的 CA 证书,它们可以用于签署终端实体(服务器或客户端)的证书。它们构成了 CA 层次结构中的中间层。
- 终端实体:终端实体可以是服务器、客户端或其他网络设备,它们使用由 CA 颁发的证书来验证其身份,并进行安全通信。
- 证书验证:
当客户端与服务器之间建立安全连接时,客户端会验证服务器的证书。这个验证包括以下步骤:
- 客户端检查服务器证书的签名是否可以通过根 CA 的证书验证。
- 客户端检查证书中的有效期以确保它仍然有效。
- 客户端检查证书中的主体名称(通常是服务器的域名)是否与客户端尝试连接的主机名匹配。
如果服务器证书通过验证,客户端将与服务器建立安全连接。
- 用途:
CA 证书广泛用于 Web 安全(HTTPS)、电子邮件加密(S/MIME)、虚拟专用网络(VPN)、数字签名等领域。它们确保了通信的机密性、完整性和身份验证。
- 著名的 CA:
一些著名的 CA 包括 Comodo、Symantec(现在属于 DigiCert)、GlobalSign、Let's Encrypt 等。