So what is an API? - High Level Summary

There are multiple application level protocols such as HTTP, WebSocket, FTP (File Transfer Protocol ), SMTP ( Secure Mail Transfer Protocol ), SSH (Secure Shell) → Connect to a different machine and run the CLI. Think of it as Humans having multiple languages (each one has its own rules: grammer, syntax, vocab, pronunciation, etc)

Client-Server Model

The client-server model, as we've discussed so far, often presents the client as a user utilizing a web browser to issue a request to a server. The server, typically another computer, responds to these requests. However, it's crucial to understand that the client in a client-server model doesn't necessarily have to be a web browser

  1. Client: The client is an application or system that accesses a service made available by a server. The client can be a web browser, an email software, an app on your phone, or any other software that needs to access some service. The term "client" can also refer to the device running this application. For example, your computer or smartphone can be a client when you're browsing the internet. The client typically initiates communication, sending a request to the server for specific information or services.
  2. Server: The server is a computer, device, or software that provides resources, data, services, or functionality to the client or other servers on a network. Servers wait for incoming requests from clients and respond by fulfilling those requests. For instance, a web server delivers web pages to clients, an email server handles sending and receiving emails, and a database server provides clients with access to database services.

Based on context, the roles of client and server can interchange. For instance, a single machine can function both as a client, requesting resources, and a server, providing resources. This is observable when you enter a search query into Google, where google.com may request data from a third party, thereby assuming the role of a client. Peer-to-peer (P2P) networks offer another example, where a machine can simultaneously act as both a client and a server.

REMOTE PROCEDURE CALL (RPC)

HTTP