Данная статья содержит принципиальную информацию по столь модной сегодня, асинхронной передаче данных в веб приложениях - технологии AJAX. Прочитая ее, Вы поймете принципы и модель функционирования. На самом деле нет ничего сверхнового и сверхсложного.
Статья разделена на следующие разделы :
- Общие принципы работы
- Транспорт
- Тип данных при приеме/передаче
- Архитектура приложения
- Средства
Общие принципы работы
Как работает обычное веб-приложение: пользотель производит действие на странице. Логикой предусмотрено событие, которое должно произойти. Это как правило переход по ссылке с помощью запроса GET, или пересылка данных запросом POST. При этом страница полностью перезагружается(или загружается заново, если был произведен переход по ссылке на страницу с другим URL).
Как работает асинхронное веб-приложение: пользователь производит действие, как и в первом случае определена логика(события), однако перезагружается только та часть страницы, которая требует обновления. В зависимости от платформы, на которой построено веб-приложение (.NET/php) определяется реализация асинхронности.
Транспорт
Под транспортом подразумевается протокол HTTP. Для приема/передачи данных используются методы GET,POST. Подробнее о структуре запроса можно узнать здесь.
Метод GET используется при передаче небольших объемов данных. Его размер определяется браузером клиента и веб-сервером. Для разных браузеров она составляет от 2кБ до 8кБ.
- Microsoft Internet Explorer: Начиная с четвертой версии браузера, максимальная длина воспринимаемого URL составляет 2,083 символов. При этом длина GET-запроса лимитирована 2,048 символа. На POST никаких ограничений, понятное дело, не накладывается.
- Firefox: В старых версиях (1.5.x) было ограничение на 64 килобайта, но, вполне возможно, это был баг, который позже исправили. Теперь, по всей видимости, ограничения на длину URL снято вообще, либо оно существенно превышает «пределы разумного» (проверено, что Firefox может «съесть» URL длиной в 100,000 символов).
- Safari: Лимита на длину URL нет так же, как и в Firefox. Автор FAQ успешно протестировал адрес длиной 80,000 символов.
- Opera: По заявлению разработчиков, лимита нет. Успешно прошли тесты с 190,000 символами.
Метод POST позволяет передавать ограниченный настройками сервера объем данных. Структурно похож на запрос GET, однако, в отличии от него, передает данные в не столь явном виде. Хотя также может быть зафиксирован различными инструментами разрабочиков (firebug(FF) или httpWatcher(IE)).
Тип данных при приеме/передаче
При передаче данных в зависимости от типа передаваемых данных и их предназначения, возможны следующие варианты :
- простой текст (text/plain)
- xml данные
- json данные
Простой текст удобно использовать например при выводе информационного сообщения в ответ на действие пользователя.
xml данные и json данные удобно применять в случае, если требуется структурный ответ на запрос пользователя, когда данные на сервере, полученные из базы данных удобно оформить в отдельный объект или массив объектов и выдать пользователю, обрабатывая на клиенте.
Архитектура приложения
После загрузки веб страницы и всех необходимых для ее работы ресурсов пользователь может начать работу с данными. Например, рассмотрим задачу получения информации о продукте, ее технические параметры. Для этого незачем полностью перезагружать страницу аля http://somesite.com/products.aspx?product_id=15. Достаточно сформировать запрос с необхдимыми параметрами и модифицировать элемент, в который предполагается вывод информации о продукте.
Проиллюстрировать модель работы асинхронного приложения поможет следующая диаграмма.

Диаграмма работы асинхронного приложения.
Диаграмма напоминает работу обычного веб приложения. Однако разница состоит в том, что кроме формирования данных, которые нужно выдать в ответ на запрос клиента, обработка запроса частично перекладывается на клиентский компьютер. Разумеется для транспортировки запросов используются асинхронные процедуры передачи. Работа таковых разбивается на следующие этапы:
- Вызов процедуры отправки запроса с параметрами на сервер.
- Ожидание ответа сервера
- Вызов callback процедуры, заданной при формировании запроса.
Средства
Для быстрого старта независимо от платформы, удобно использовать библиотеку jquery. Используя метод .ajax удобно формировать и обрабатывать ответы от сервера. Запросы, при этом могут идти, в зависимости от back-end'а на обработчики, или же веб-сервисы.
Информация по HTTP протоколу. Википедия