
708 Глава 11. Распределенные системы документов
собственные способы распознавания исполняемых на сервере сценариев. В этом
примере при запуске сценария исходный документ изменяется так, что сервер-
ный сценарий заменяется текущим содержимым файла /data/file.txt. Другими сло-
вами, клиент никогда не видит текста сценария. Если документ содержит сцена-
рии, выполняемые на стороне клиента, они пересылаются клиенту обычным
образом.
Кроме выполнения клиентских и серверных сценариев, клиенту можно также
передавать заранее скомпилированные программы в виде апплетов. Обычно
апплет {applet) представляет собой небольшое автономное приложение, которое
можно отослать клиенту и выполнить в пространстве адресов браузера. Наибо-
лее часто используются апплеты в виде программ на языке
Java,
скомпилирован-
ных в интерпретируемый код Java. Так, Java-апплет можно включить в HTML-
документ при помощи следующей строки:
<OBJECT codetype = "application/Java" classic! = "java:welcome.class">
Апплеты выполняются на стороне клиента. Существуют также и серверные
варианты апплетов, которые называются сервлетами {servlets). Как и апплеты,
сервлеты
—
это заранее скомпилированные программы, которые выполняются
в адресрюм пространстве сервера. В современной практике сервлеты в основном пи-
шутся на Java, но никаких фундаментальных ограничений на использование дру-
гих языков нет. Сервлет реализует методы, которые также имеются и в HTTP
—
стандартном коммуникационном протоколе между клиентом и сервером. В под-
робностях мы рассмотрим HTTP чуть ниже.
Когда сервер получает HTML-запрос, адресованный сервлету, он вызывает ме-
тод сервлета, соответствующий этому запросу. Последний, в свою очередь, обра-
батывает запрос и обычно возвращает результаты в виде HTML-документа.
Основное отличие сервлетов от сценариев CGI состоит в том, что последние
представляют собой отдельные процессы, в то время как сервлеты выполняются
сервером.
Теперь мы имеем более полное представление об архитектуре и структуре кли-
ентов и серверов в Web (рис. И.З). Когда пользователь посылает запрос на полу-
чение документа, web-сервер обычно, в зависимости от предлагаемых в докумен-
те задач, делает одно из трех. Во-первых, он может извлечь документ прямо из
локальной файловой системы. Во-вторых, он может запустить программу CGI,
которая генерирует документ, возможно, используя данные из локальной базы
данных. В-третьих, он может передать запрос сервлету.
Когда документ будет получен сервером, ему может потребоваться дополни-
тельная обработка, в ходе которой будут выполнены содержащиеся в нем сцена-
рии, исполняемые на сервере. На практике это требуется только для документов,
напрямую извлекаемых из локальной файловой системы, то есть документов, по-
лученных без помощи сервлетов или программ CGL Затем документ пересыла-
ется браузеру пользователя.
После того как документ будет получен клиентом, браузер выполняет кли-
ентские сценарии и, возможно, извлекает и выполняет содержащиеся в докумен-
те апплеты. Результаты обработки документа в виде его содержимого выводятся
на терминал пользователя.