Код программы, работающей на сервере, не передается клиенту. При получении от клиента специального запроса, предполагающего выполнение такой программы, сервер запускает ее и передает параметры, входящие в состав запроса. Средства для генерации подобного запроса обычно входят в состав HTML-документа.
Результаты своей работы программа оформляет в виде HTML-документа и передает их веб- серверу, а последний, в свою очередь, дополняет полученные данные HTTP-заголовком и передает их клиенту. Взаимодействие клиента и сервера в этом случае показано на рисунке 5.1.
Рис. 5.1. Взаимодействие клиента с программой, выполняющейся на сервере
Насыщенные интернет-приложения
Насыщенное интернет-приложение (Rich Internet application) – еще один подход, который заключается в использовании Adobe Flash или Java-апплетов для полной или частичной реализации пользовательского интерфейса, поскольку большинство браузеров поддерживает эти технологии (как правило, с помощью плагинов).
Возникновение данного подхода обусловлено тем, что в рамках веб-приложений с "тонким" клиентом взаимодействие пользователя с приложением реализуется в существенной степени через сервер, что требует отправки данных на сервер, получение ответа от сервера и перезагрузку страницы на стороне клиента.
При использовании Java-апплетов в состав HTML-документа включается специальный дескриптор, описывающий расположение файла, содержащего код апплета, на сервере. После того как клиент получает HTML-код документа, включающего апплет, он генерирует дополнительный запрос серверу. После того как сервер пересылает клиенту код апплета, сам апплет запускается на выполнение. Взаимодействие между клиентом и сервером при получении апплета показано на рисунке 5.2.
Рис. 5.2. Передача клиенту Java-апплета
При использовании насыщенных интернет-приложений приходится сталкиваться со следующими проблемами:
- необходимость обеспечения безопасной среды выполнения ("песочница");
- для исполнения кода должно быть разрешено исполнение сценариев;
- потеря в производительности (т.к. выполяется на клиентской стороне);
- требуется много времени на загрузку;
Для разработки насыщенных интернет-приложений используются пакеты Curl, Adobe Flex и Microsoft Silverlight.