L'evoluzione degli application delivery controller è strettamente legata allo sviluppo di applicazioni web, data center e al più ampio campo della gestione della rete.
Alla fine degli anni '90 e all'inizio degli anni 2000, con la commercializzazione di Internet e l'aumento del traffico web, le aziende avevano bisogno di un modo per garantire che i siti e le app potessero gestire in modo efficiente elevati volumi di traffico applicativo L'ostacolo principale era trovare un modo per distribuire le richieste in arrivo su più server, in modo da garantire alta disponibilità e resilienza di rete.
La prima generazione di dispositivi pensati per superare questo ostacolo era costituita da bilanciatori di carico. Inizialmente erano dispositivi semplici e operavano nel livello di trasporto. Essi si occupavano distribuire il traffico in entrata su diversi server per equilibrarne i carichi e impedirne il sovraccarico.
Tuttavia, man mano che le app e i siti web sono diventati più complessi, i bilanciatori di carico di vecchia generazione sono caduti in disgrazia per la loro incapacità di leggere e prendere decisioni in base al contenuto delle richieste degli utenti (non solo in base agli indirizzi IP e alle porte). Ciò ha condotto gli sviluppatori a congegnare soluzioni di bilanciamento del carico al livello 7, in grado di ispezionare il contenuto dei messaggi al livello applicativo.
I bilanciatori di carico avanzati possono instradare il traffico in base a fattori quali intestazioni HTTP, cookie o persino richieste di pagine specifiche, facilitando strategie di gestione del traffico più sofisticate, come la persistenza della sessione (o "stickiness") e il routing basato sui contenuti. Nel corso del tempo, man mano che gli sviluppatori continuavano ad aggiungere funzionalità, questi bilanciatori di carico sarebbero diventati i controller intelligenti che ora chiamiamo ADC.