logo
Лекции_Информационные сети

Динамические технологии на стороне сервера.

Часто бывает гораздо экономичнее производить обработку на сервере, так как при этом сильно сокращается объем сетевого трафика. Кроме того, политика безопасности может потребовать ограничить объем передаваемых данных на сторону клиента (скрытие на клиенте этих уже полученных данных при помощи свойства visible - замок от честных и мало знающих людей). Это - основные причины, по которым требуется устраивать обработку данных на сервере.

Технологии на стороне сервера: CGI (Common Gateway Interface) - интерфейс общего шлюза, ASP (Active Server Pages), Java Servlets, JSP (Java Server Pages) и другие.

CGI программа может быть написана почти на любом языке, но чаще всего ее пишут на Perl или C. Эту технологию поддерживают практически все Web - серверы.

Web - серверы в данном случае выступают как шлюз между запросом клиента и требуемыми данными. Сервер сначала создает новый процесс, в котором будет выполняться программа. Затем в этот процесс загружается необходимая среда времени выполнения и сама программа. Наконец, передается объект, представляющий собой запрос. И вызывается программа. По окончании работы программы веб-сервер считывает полученные ею результаты из стандартного устройства вывода (stdout).

В настоящее время самая большая проблема этой технологии в том, что она плохо масштабируется. Для обработки каждого запроса веб-сервер создает новый процесс. Каждый процесс состоит из собственного набора переменных окружения, отдельного экземпляра необходимой среды выполнения, экземпляра программы, имеет свою память. Такое устройство приводит к выполнимости достаточно простой атаки типа «отказ в обслуживании». Да и при нормальной работе в случае одновременного большого количества запросов к серверу может возникнуть отказ. Решение этой проблемы - технология FastCGI, которая обеспечивает совместное использование экземпляров CGI - программ. Еще одно решение - mod_perl. Эта технология основывается на интерпретации и выполнении сценариев Perl внутри веб-сервера Apache, совершенно обходя, таким образом, CGI.

Видимо, в ответ на неэффективность CGI фирмы Netscape и Microsoft разработали собственные API, позволяющие программистам создавать серверные приложения в виде библиотек совместного доступа. Эти библиотеки загружаются в процессе веб-сервера и могут обслуживать несколько запросов, не создавая новых процессов. Запускаться они могут или сразу же при запуске веб-сервера или при необходимости. Если в течение некоторого времени они не используются, веб-сервер может выгружать их из памяти. Это решение легче масштабируется, но имеет тоже несколько существенных недостатков:

ASP программа похожа на PHP программу в том смысле, что получая запрос на ASP файл сервер сначала ищет скомпилированную страницу, и если не находит, то сначала компилирует ее. Скомпилированная страница выполняется. Результат - HTML страница передается браузеру. Существенное ограничение этой технологии - операционная зависимость.

SSJS - Java Script на стороне сервера. Это технология, предложенная Netscape. Преимуществом ее может считаться использование стандартного языка JavaScript, а недостатком по сравнению с ASP и PHP то, что это компилятор, а не интерпретатор, что усложняет процесс модификации страниц. Еще более существенный недостаток - программная зависимость: технологию SSJS поддерживает только Netscape Enterprise Server, уступающий Apache и Microsoft IIS по распространенности в Интернет.

Java Servlets и JSP - технологии, применяемые на стороне сервера и использующие язык Java.