The client-server architecture refers to a communication model between softwares. In information technology, a server is an application program that accepts connections in order to service requests by sending back responses. Each instance of the client software can send data requests to one or more connected servers. In turn, the servers can accept these requests, process them, and return the requested information to the client. These days, clients are most often web browsers. Servers typically include web servers, database servers, backup servers, print servers, mail servers, web servers, FTP servers, application servers, DHCP server, DNS server, etc. The client-server connection is established via communication protocols like, for instance, TCP/IP, which is most often used for accessing the Internet.