El corazón de AJAX es una API denominada XMLHTTPRequest
(XHR), disponible en los lenguajes de scripting en el lado del cliente, tales como JavaScript. Se utiliza para realizar peticiones, HTTP o HTTPS, directamente al servidor web, y para cargar las respuestas directamente en la página del cliente. Los datos que recibamos desde el servidor se podrán recibir en forma de texto plano o texto XML. Estos datos, podrán ser utilizados para modificar el DOM del documento actual, sin tener que recargar la página, o también podrán ser evaluados con JavaScript, si son recibidos en formato JSON.
XMLHTTPRequest
juega un papel muy importante en la técnica AJAX, ya que sin este objeto, no sería posible realizar las peticiones asíncronas al servidor.
El concepto que está detrás del objeto XMLHTTPRequest
, surgió gracias a los desarrolladores de Outlook Web Access (de Microsoft), en su desarrollo de Microsoft Exchange Server 2000. La interfaz IXMLHTTPRequest
, se desarrolló e implementó en la segunda versión de la librería MSXML, empleando este concepto. Con el navegador Internet Explorer 5.0 en Marzo de 1999, se permitió el acceso a dicha interfaz a través de ActiveX.
Posteriormente la fundación Mozilla, desarrolló e implementó una interfaz llamada nslXMLHTTPRequest
, dentro de su motor Gecko. Esa interfaz, se desarrolló adaptándose lo más posible a la interfaz implementada por Microsoft. Mozilla creó un envoltorio para usar esa interfaz, a través de un objeto JavaScript, el cuál denominó XMLHTTPRequest
. El objeto XMLHTTPRequest
fue accesible en la versión 0.6 de Gecko, en diciembre de 2000, pero no fue completamente funcional, hasta Junio de 2002 con la versión 1.0 de Gecko. El objeto XMLHTTPRequest
, se convirtió de hecho en un estándar entre múltiples navegadores, como Safari 1.2, Konqueror, Opera 8.0 e iCab 3.0b352 en el año 2005.
El W3C publicó una especificación-borrador para el objeto XMLHTTPRequest
, el 5 de Abril de 2006. Su objetivo era crear un documento con las especificaciones mínimas de interoperabilidad, basadas en las diferentes implementaciones que había hasta ese momento. La última revisión de este objeto, se realizó en Noviembre de 2009.
Microsoft añadió el objeto XMLHTTPRequest
a su lenguaje de script, con la versión de Internet Explorer 7.0 en Octubre de 2006.
Con la llegada de las librerías cross-browser como jQuery, Prototype, etc, los programadores pueden utilizar toda la funcionalidad de XMLHTTPRequest
, sin codificar directamente sobre la API, con lo que se acelera muchísimo el desarrollo de aplicaciones AJAX.
En febrero de 2008, la W3C publicó otro borrador denominado "XMLHTTPRequest
Nivel 2". Este nivel consiste en extender la funcionalidad del objeto XMLHTTPRequest
, incluyendo, pero no limitando, el soporte para peticiones cross-site, gestión de byte streams, progreso de eventos, etc. Esta última revisión de la especificación, sigue estando en estado "working draft" (borrador), a septiembre de 2010.
Se refiere a la capacidad que una web, aplicación web, construcción HTML o scriptt del lado del cliente tiene y que permite que sea soportada por todos los navegadores, es decir que se pueda mostrar o ejecutar de forma correcta en cualquier navegador.
Se refiere a peticiones situadas en diferentes dominios.
Es una agrupación de bits en unidades que darán lugar a los bytes