RESTfulWeb Services是基于超文本传输协议(HTTP)设计的在线应用程序架构范式。这种服务遵循REST原则,所有数据通过唯一的、一致的资源标识符表示,并作为资源(URI)处理。例如,Twitter API将每条推文作为一个资源,客户端可以通过API发布推文和执行其他操作。REST的发展使得API更加易于访问,同时揭示了它们的力量和潜力。RESTful API易于创建和缓存,具有资源导向的架构。此外,RESTful API还催生了微服务架构和云计算等重要发展。因此,REST API开发者需求量大增,这并不奇怪,因为它们为采用RESTful服务的企业提供了竞争优势。
RESTfulWeb Services是指遵循REST架构的服务。REST代表的是“表现层状态转移”,它使用HTTP协议(网络协议)实现。这些服务轻量级,提供可维护性和可扩展性,能够在不同编程语言编写的应用程序之间进行通信。它们通过请求头、请求体、响应体、状态码等,允许客户端通过Web浏览器访问服务器托管的资源。
REST架构被称为无状态,因为它不在服务器上保留任何与客户端会话相关的数据。本质上,会话状态仅在客户端维护。这保证了服务器不能利用任何保存的信息。然而,由于不保留数据,客户端向服务器的每个请求都必须包含所有所需的请求信息。
REST的一些最重要的特性包括:由于REST是无状态的,服务器没有状态;在正确实现的REST API中,服务器可能在调用之间重启,因为所有数据都发送给它;Web服务通常使用POST方法执行操作,而REST使用GET方法检索资源。
缺点包括:由于服务遵循无状态概念,无法维护会话。客户端会话模拟负责传递会话ID;REST不施加固有的安全约束。它继承了实现协议的安全预防措施。必须谨慎实施安全措施,例如集成基于SSL/TLS的认证等。
当然可以。TLS负责加密REST客户端和服务器通信,并认证服务器到客户端。作为安全套接字层的继任者,它用于安全通信。HTTPS与TLS和SSL兼容,因此适用于创建RESTfulWeb Services。值得注意的是,REST协议继承了它实现的协议的属性。因此,安全措施取决于REST协议的实现。
无状态的优点包括:由于没有与会话相关的要求,可以部署在任何服务器上,无状态使API能够扩展到数百万并发用户;服务器知道每个客户端在应用程序中的“位置”,因为所有相关数据都随每个请求传输。无状态简化了REST API,消除了任何服务器端同步复杂性。无状态的缺点包括:每个客户请求必须伴随大量补充数据;这种重复的数据传输可能会降低网络效率;无状态进一步降低了服务器端对程序行为的控制。
识别服务器资源的方法称为寻址。在RESTfulWeb Services中,URL用于寻址这些资源。这些地址可能与单个资源或多个资源相关。
幂等方法无论执行相同请求的次数如何,都能产生相同的结果。这些方法至关重要,因为客户端重复传输请求的情况经常发生。因此,必须使用幂等过程来防止此类错误。
REST (Representational State Transfer)
是一种设计模式,用于开发在线服务。它更高效且可缓存。它只继承了协议的安全保护。SOAP (Simple Object Access Protocol)
是一种严格的协议,用于构建具有安全性的API。它速度慢且不能缓存。它有能力建立自己的安全机制。