Connessione persistente (connessione persistente HTTP)

Una connessione persistente (connessione persistente HTTP) è un canale di comunicazione di rete che rimane aperto per ulteriori richieste e risposte HTTP anziché chiudersi dopo un singolo scambio.

HTTP ha una funzione di connessione persistente che consente al canale di rimanere aperto piuttosto che essere chiuso dopo uno scambio di dati richiesto. TCP è un protocollo orientato alla connessione: avvia una connessione dopo la conferma da entrambe le estremità che sono disponibili e aperte allo scambio di dati. In una connessione non persistente, il canale si chiude quando un host segnala che desidera terminare le comunicazioni o quando è trascorso un certo periodo di tempo senza scambio di dati. Per mantenere una connessione persistente, vengono inviati pacchetti keepalive TCP per evitare che la connessione scada.

 Una connessione aperta è più veloce per frequenti scambi di dati. Il sovraccarico delle comunicazioni viene salvato lasciando una connessione aperta anziché aprire e chiudere sessioni per ciascuna richiesta. Le connessioni persistenti possono essere utilizzate anche con le API per consentire ai server di inviare i dati ai client. Altri vantaggi delle connessioni persistenti includono la riduzione della congestione della rete, della latenza e dell'utilizzo di CPU e memoria a causa del minor numero di connessioni; gli errori possono essere segnalati anche senza chiudere la connessione.

Le connessioni persistenti aggiunte per HTTP 1.0 utilizzavano un'intestazione aggiuntiva per richiedere al client di mantenere attiva la connessione; HTTP 1.1 presuppone che tutte le connessioni siano persistenti se non diversamente specificato. HTTP 2.0 espande la connessione persistente per consentire lo scambio simultaneo di numerose richieste e restituzioni di dati su una singola connessione.

Le connessioni persistenti sono anche chiamate HTTP keep-alive o riutilizzo della connessione HTTP.