Historically, a lot of technologies have been developed and used to create a client-server system. In recent decades, though, all client-server architectures tend to be web-based—that is, based on the HyperText Transfer Protocol (HTTP). HTTP is based on the Transfer Control Protocol (TCP) and the Internet Protocol (IP). In particular, two web-based architectures have become popular—the Simple Object Access Protocol (SOAP) and Representational State Transfer (REST).
While SOAP is an actual protocol, REST is only a collection of principles. The web services adhering to the REST principles are said to be RESTful. In this chapter, we'll see how to build RESTful services using the popular Actix web framework.
Any web service (REST web services included) can be used by any web client—that is, any program that can send HTTP requests over a TCP/IP network. The most typical web clients are web pages running in a web browser, and containing JavaScript code. Any program written in any programming language and running in any operating system implementing the TCP/IP protocols can act as a web client.
The web servers are also known as the backend, while the web client is known as the frontend.
The following topics will be covered in this chapter:
The REST architecture
Building a stub of a web service using the Actix web framework and implementing the REST principles
Building a complete web service capable of uploading files, downloading files, and deleting files on client request
Handling an inner state as a memory database or a pool of connections to a database
Using JavaScript Object Notation (JSON) format to send data to clients