Prakticky všechny služby Internetu jsou poskytovány vždy dvojicí programů: programem typu server, který obstarává samotnou službu (např. vyhledání v databázi) a programem typu klient, který zprostředkovává styk uživatele se serverem. Komunikace mezi klientem a serverem se děje podle přesných formálních pravidel, kterým se říká protokol.
Program typu server tedy běží zpravidla na vzdáleném a (někdy) výkonném počítači a běžný uživatel obvykle o něm potřebuje vědět pouze že je a případně jeho adresu. Poznamenejme, že slovem server se často označuje i počítač, na kterém běží (nějaký) program typu server.
Uživatel si spouští (na svém počítači) program typu klient. Tento program se kromě zprostředkování styku se serverem stará o uživatelský komfort a parádu na obrazovce. Pro tentýž druh služby bývá k disposici několik různých programů typu klient. Liší se svými možnostmi, uživatelským komfortem, cenou a nebo jsou určeny pro různé typy počítačů.
Obecně platí, že pro každý typ služby existuje speciální protokol pro komunikaci mezi klientem a serverem a také speciální programy typu klient a typu server, které podle tohoto protokolu spolupracují. Pokud oba, klient i server, dodržují předepsaný protokol, pak je zaručeno, že se spolu domluví a je tedy jedno, které konkrétní programy se spolu baví.
Existují ovšem i kombinované programy, které dovedou používat několik protokolů a dovedou zprostředkovávat několik různých služeb.