In computer networking, a rich client (also called a heavy, fat or thick client) is a computer (a "client" in client–server network architecture) that typically provides rich functionality independent of the central server. This kind of computer was originally known as just a "client" or "thick client,"[1] in contrast with "thin client", which describes a computer heavily dependent on a server's applications. A rich client may be described as having a rich user interaction.[2]
While a rich client still requires at least a periodic connection to a network or central server, it is often characterised by the ability to perform many functions without a connection. In contrast, a thin client generally does as little processing as possible on the client, relying on access to the server each time input data needs to be processed or validated.
The designer of a client–server application decides which parts of the task should be executed on the client, and which on the server. This decision can crucially affect the cost of clients and servers, the robustness and security of the application as a whole, and the flexibility of the design for later modification or porting.
The characteristics of the user interface often force the decision on a designer. For instance, a drawing package could require the download of an initial image from a server, and allow all edits to be made locally, returning the revised drawing to the server upon completion. This would require a rich client and might be characterised by a long delay to start and stop (while a whole complex drawing was transferred), but quick to edit.
Conversely, a thin client could download just the visible parts of the drawing at the beginning and send each change back to the server to update the drawing. This might be characterised by a short start-up time, but a tediously slow editing process.
The original server clients were simple text display terminals including Wyse VDUs, and rich clients were generally not used until the increase in PC usage. The original driving force for thin client computing was often cost; at a time when CRT terminals and PCs were relatively expensive, the thin-client–server architecture enabled the ability to deploy the desktop computing experience to many users. As PC prices decreased, combined with a drop in software licensing costs, rich client–server architectures became more attractive. For users, the rich client device provided a more-responsive platform and often an improved Graphical User Interface (GUI) than what could be achieved in a thin client environment. In more recent years, the Internet has tended to drive the thin client model despite the prodigious processing power that a modern PC has available.
Probably the thinnest clients, sometimes called "ultra thin," are remote desktop applications, e.g. the Citrix products, and Microsoft's Remote Desktop Services, which effectively allow applications to run on a centrally-hosted virtual PC and copy keystrokes and screen images between the local PC and the virtual PC. These ultra-thin clients are often used to make available complex or data-hungry applications that have been implemented as rich clients but the true client is hosted very near to the network server.