Ajax est un acronyme pour Asynchronous JavaScript and XML (« XML et Javascript asynchrones ») et désignant une solution informatique libre pour le développement de pages dynamiques et d'applications Web.
À l'image de DHTML ou de LAMP, AJAX n'est pas une technologie en elle-même, mais un terme qui évoque l'utilisation conjointe d'un ensemble de technologies libres couramment utilisées sur le Web :
En alternative au format XML, les applications Ajax peuvent utiliser les fichiers texte ou JSON.
Les applications Ajax peuvent être utilisées au sein des navigateurs Web qui supportent les technologies décrites précédemment. Parmi eux, on trouve Mozilla Firefox, Internet Explorer, Konqueror, Google Chrome, Safari et Opera.
Le terme Ajax a été introduit par Jesse James Garrett (informaticien Américain), le 18 février 2005, dans un article sur le site Web Adaptive Path. Depuis, il a rapidement gagné en popularité.
Les éléments qui composent Ajax (Javascript, DOM, XML…) et leur utilisation pour générer des interactions asynchrones sont de loin antérieurs à l'apparition du terme.
En 2001, l'objet XMLHttp, apparu avec la bibliothèque MSXML, point de départ de cette technique, fut développé à l'origine par Microsoft pour Internet Explorer 5 en tant qu'objet ActiveX, puis intégré en tant qu'objet navigateur natif nommé XMLHttpRequest par Mozilla, ce qui permit aux autres navigateurs de l'intégrer car ActiveX n'est utilisé que par Internet Explorer.
Un des points critiques dans la programmation avec Ajax est la nécessité d'une architecture client/serveur, mais des solutions en mode déconnecté commencent à voir le jour (fonctionnement du poste client sans nécessité d'être relié au réseau Internet ou à l'Intranet d'une entreprise). AJAX n'a pas besoin de code actif sur le serveur (seul le code JavaScript est actif sur le poste client), ce dernier étant un serveur Web se contentant d'envoyer les pages Web vers le poste client. Car les langages employés sont de type interprétés et sont exécutés directement au sein du navigateur du poste client. Il n'est donc pas nécessaire de déployer ou de mettre à jour une machine virtuelle (comme pour Java par exemple) sur le poste client. Ainsi AJAX est une solution portable, ses différents composants suivant les standards du W3C. Malgré tout, des technologies supplémentaires peuvent être employées côté serveur, notamment pour la gestion des données au format XML, ou comme par exemple des langages de script et des bases de données (PHP et MySQL par exemple).
Ces choix sortent du périmètre d'Ajax, mais peuvent apporter de nombreux services supplémentaires ou complémentaires :