Clients send requests or queries to servers. Servers reply with
some sort of response:
Examples of servers include web servers, database servers, and application servers.
Web and database browsers are examples of clients.
The types of requests and responses a server handles are
specified by a communication protocol. For example: HTTP, FTP, POP, SMTP,
TELNET, DNS, etc.
Protocols can be stateless or stateful.
In a stateless protocol such as HTTP, each request from a
client is considered to be independent of all previous requests from that
client. In other words, the server doesn't remember a client's previous requests.
Hacks such as cookies or embedding
strings in URLs need to be used to provide the server with these memories.
A stateful protocol allows client and server to have a back-and-forth
conversation: