HTTP é un protocollo client-server connectionless utilizzato non solo per lo scambio di documenti ipertestuali, ma per una moltitudine di applicazioni.
In HTTP esistono due ruoli specifici: il client attiva la connessione e richiede dei servizi. Il server accetta la connessione, nel caso identifica il richiedente, e risponde alla richiesta. Alla fine chiude la connessione, infatti il server non è tenuto a mantenere informazioni sulla sua natura di una connessione, o sulle precedenti richieste di un client. Il client è tenuto a ricreare da zero il contesto necessario al server per rispondere.