Les applications Web traditionnelles s'articulent souvent sur une architecture utilisant des clients légers : les traitements étant réalisés sur le serveur (distant), le client (local) ne faisant qu'en réaliser une présentation (exemple : HTML). Le client envoie ses données au serveur, celui-ci effectue le/les traitement(s) puis une page de réponse est renvoyée au client. Le serveur est donc sollicité à chaque interaction, hormis quelques cas spécifiques comme la saisie dans un formulaire.
Les RIA s'efforcent de rapatrier chez le client (local) une partie des traitements normalement dévolus au serveur. Le langage Javascript en particulier a été conçu dans cette optique. Il permet par exemple d'indiquer au fur et à mesure de la frappe, le nombre de caractères qu'il est encore possible de saisir, dans un champ de texte de taille limitée, plutôt que de tout accepter et de renvoyer ensuite seulement un message d'erreur du serveur avec perte d'une partie du contenu frappé.
Les standards Internet ont évolué lentement et continuellement à travers le temps pour s'accommoder de ces techniques, aussi il est difficile de définir clairement ce qui constitue une RIA et ce qui n'en constitue pas une. Généralement, ce qui peut être effectué au moyen d'une RIA est limité par les capacités du système client.
Parce que les RIA utilisent les ressources du système client, elles offrent aux applications Web des possibilités d'interfaces utilisateur en plus réactives, ce qui serait impossible avec des balises HTML standards.
On peut déporter sur le client de nombreuses fonctionnalités, comprenant le glisser-déposer, l'utilisation de barres d'outils pour modifier les données, des calculs (par exemple : taux d'intérêt pour un prêt), données n'ayant pas nécessairement besoin d'être renvoyées au serveur.