介绍

Representational State Transfer (REST) 是一种基于超文本传输协议 (HTTP) 设计在线应用程序的架构范例。
REST API,通常称为 RESTful API,遵循 REST 原则。在 REST API 中,所有数据都由唯一、一致的资源标识符表示并作为资源 (URI) 处理。例如,Twitter API 使每条推文成为客户可以访问的资源。使用 Twitter 的 API,客户可以在网站上发布推文并进行其他操作。
REST 的发展使 API 更易于访问,同时也展示了它们的优势和潜力。REST API 易于创建和缓存,具有面向资源的架构。此外,RESTful API 催生了微服务架构和云计算等重要发展。因此,今天对 REST API 开发人员的需求量很大也就不足为奇了,因为他们为使用 RESTful 服务的企业提供了竞争优势。
Rest API 面试题
1.您对RESTful Web Services的理解是什么?
RESTful Web 服务是那些遵循 REST 架构的服务。REST 代表 Representational State Transfer,使用 HTTP 协议(Web 协议)实现。这些服务是轻量级的,提供可维护性和可扩展性,并在以各种编程语言编写的应用程序之间进行通信。利用请求标头、请求正文、响应正文、状态代码等,它们为客户端提供通过 Web 浏览器对服务器托管资源的访问。
2. REST 中的“无状态”是什么意思?
REST 架构被称为无状态,因为它不会在服务器上保留任何与客户端会话相关的数据。本质上,会话状态仅在客户端维护。实际上,这被称为无国籍状态。
它保证服务器不能利用任何保存的信息。但是,由于不保留任何数据,因此从客户端到服务器的每个请求都必须包含所有必需的请求信息。
3. 什么是重要的 REST 特征?
REST 的一些最重要的特征是:
- 由于 REST 是无状态的,因此 SERVER 没有状态。
- 使用正确实施的 REST API,服务器可能会在调用之间重新启动,因为所有数据都发送给它。
- Web 服务通常使用 POST 方法来执行操作,而 REST 使用 GET 方法来检索资源。
4. 你能概括一下 RESTful Web 服务的缺点吗?
缺点是:
- 由于服务遵循无状态的概念,因此无法维持会话。客户端会话模拟负责传递会话 ID。
- REST 没有施加固有的安全约束。它继承了实现协议的安全预防措施。实施安全措施,例如集成基于 SSL/TLS 的身份验证等,必须谨慎执行。
5. 可以在 REST 中实现传输层安全 (TLS) 吗?
确实,我们可以。TLS 负责对 REST 客户端和服务器通信进行加密,并向客户端验证服务器。作为安全套接字层的继承者,它用于安全通信。HTTPS 与 TLS 和 SSL 兼容,因此可用于创建 RESTful Web 服务。值得注意的是,REST 协议继承了它实现的协议的属性。因此,安全措施取决于 REST 协议的实现。
6. REST API 中无状态的优缺点是什么?
无国籍的优点:
- 因为它没有与会话相关的要求,并且可以在任何服务器上实现,所以无状态使 API 可以扩展到数百万并发用户。
- 服务器知道每个客户端在应用程序中的“位置”,因为所有相关数据都随每个请求一起传输。
- 无状态通过消除任何服务器端同步复杂性来简化 REST API。
无国籍的缺点:
- 每个客户请求都必须附带大量补充数据。
- 这种重复的数据传输可能会降低网络效率
- 无状态进一步降低了服务器端对程序行为的控制。
7. 什么是 RESTful WEB 服务中的“寻址”?
识别服务器资源的方法称为寻址。URL 用于在 RESTful Web 服务中寻址这些资源。这些地址可能与单个资源或多个资源有关。
////
8. 幂等方法是什么意思?
无论执行相同请求的时间如何,幂等方法都提供相同的结果。
由于客户端重复请求传输的频繁发生,这些方法是必不可少的。因此,必须采用幂等程序来防止此类错误。
9. REST 和 SOAP 有何不同?
REST(表征状态转移)
- 它是一种用于在线服务开发的设计模式。
- 它更高效且可缓存。
- 它仅继承已应用于协议的安全保护。
SOAP(简单对象访问协议)
- 它是一种用于构建安全 API 的紧密协议。
- 它的速度较慢,无法缓存。
- 它有能力建立自己的安全机制。
10. AJAX 和 REST 有什么区别?
AJAX
- 使用 XMLHttpRequest 对象,请求被传递到服务器。随后,Javascript 读取答案并动态修改页面。
- 因为 AJAX 允许异步查询,所以它不需要持续的客户端-服务器交互
- AJAX 动态刷新用户界面而不刷新页面
休息
- REST 使用 URL 和请求/响应模式访问资源。
- REST 需要持续的客户端-服务器交互
- REST 请求并更新来自服务器的数据或信息
11、Web服务面临的主要安全问题有哪些?
由于在线服务经常处理大量敏感数据,应用安全成为一个大问题。下面列出了一些需要牢记的事项。
- 加密 – Web 服务可能有许多应用程序并且可能包含易受攻击的节点。因此,谨慎的做法是对数据进行加密,以便不惜一切代价保持隐私。
- 身份验证 - 身份验证是管理大量用户群时发生的挑战。身份验证可防止未经授权访问用户数据并允许您监控用户行为。
结论
我们练习回答关于 RESTful Web 服务的最常见的面试问题。近年来,REST API 已成为软件开发领域的一项重要技术。可扩展且易于维护的 RESTful Web 服务很难获得,但它们的创建者是艺术大师。随着业界越来越多地使用 REST 架构,对精通 RESTful Web 服务开发的开发人员的需求预计将显着增加。文章的主要内容:
- REST 代表 Representational State Transfer
- REST 的发展使 API 变得更加平易近人,同时展示了其真正的力量和潜力。
- 无论同一个请求执行了多少次,幂等方法都提供相同的响应。
- 识别服务器资源称为寻址。
这篇博文应该可以帮助您解决 REST API 面试问题。这些 REST API 面试问题可以帮助你在下一次面试中取得好成绩。
原文标题:Most Commonly Asked Rest APIs Interview Questions
原文作者:Vibha Sengar
原文地址:https://www.analyticsvidhya.com/blog/2022/10/most-commonly-asked-rest-api-interview-questions/