HTTP è un protocollo client-server generico utilizzato non solo per lo scambio di documenti ipertestuali, ma per una moltitudine di applicazioni. Quest'ultimo è indipendente dal formato dati con cui vengono trasmesse le risorse. Può funzionare per documenti HTML come per binari, eseguibili, oggetti distribuiti o altre strutture dati più o meno complicate ed è basato sulla comunicazione tra due applicazioni, il browser, che manda richieste di documenti ed il server che risponde. Quindi il browser che chiede il servizio (client) e il server che offre il servizio (server).