Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 модуль.docx
Скачиваний:
15
Добавлен:
02.11.2018
Размер:
92.62 Кб
Скачать

Раздел 12. Веб-сервера

Технологии, рассмотренные в предыдущем разделе — HTML, XHTML, CSS, JavaScript — позволяют создавать документы любого вида и с некоторой степенью интерактивности (с помощью JavaScript). Этих технологий достаточно, чтобы создать простой статический веб-сайт. Кроме статических HTML-документов на веб-сайтах могут применяться:

  • средства обратной связи,

  • опросы,

  • поиск (по сайту),

  • веб-интерфейс для публикации новостей и других материалов,

  • рейтинг публикаций и т. д.

Такой функционал требует реализации логики на стороне веб-сервера. Программист может его реализовать, используя серверные сокеты: для этого программа должна по протоколу HTTP получать запросы от клиентов, обрабатывать их нужным образом и возвращать результат также по протоколу HTTP в формате HTML.

Однако создавать сложные веб-сервисы таким способом неудобно и затратно, поэтому обычно используются готовые программы веб-сервера. Эти веб-сервера позволяют опубликовать статические документы в Интернет (HTML-файлы, изображения и проч.), а также поддерживают различные технологии создания динамических серверных веб-страниц.

Наиболее популярными веб-серверами являются Apache HTTP Server (или просто Apache) и Internet Information Services (IIS). Наиболее используемым веб-сервером с поддержкой Java-технологий является Apache Tomcat (или просто Tomcat).

Основные особенности перечисленных веб-серверов:

  • Apache HTTP Server — наиболее популярный веб-сервер, применяемый в Интернет. Бесплатный надежный веб-сервер с большим функционалом (за счет использования внешних модулей), существует для разных платформ. Основными технологиями создания динамических веб-страниц, для которых применяется Apache, являются PHP и Perl, реже Python, Ruby, C++.

  • Internet Information Services — набор серверных программ от Microsoft (входит в состав Windows), который включает FTP-сервер, почтовый сервер, веб-сервер и некоторые другие сервисы. Основные технологии разработки динамических веб-страниц в IIS: ASP (Active Server Pages) и более новая технология ASP.NET. В более старой технологии ASP веб-страницы обычно использовали COM-компоненты, реализованные на других языках. Технология ASP.NET позволяет создавать веб-сайты с применением любых языков из семейства .NET.

  • Apache Tomcat — бесплатный веб-сервер, поддерживающий Java-технологии разработки серверных веб-страниц, в том числе, Java Servlet и JavaServer Pages. Веб-сервер Tomcat может работать как самостоятельный веб-сервер или же интегрироваться с Apache HTTP Server.

Фактически, этим серверным решениям соответствуют три крупных группы веб-технологий: скриптовые языки, Java и .NET. Первая группа является более популярной, т. к. более проста и доступна. Недостатки скриптовых языков — относительно низкая производительность и плохая масштабируемость (опять же из-за производительности и особенностей самих языков). Технологии Java и .NET обычно применяются для относительно крупных и относительно сложных проектов. В следующих разделах будут более подробно изучены серверные Java-технологии и язык PHP.

12.1. Apache HTTP Server

  • Наиболее популярный веб-сервер.

  • Есть версии для различных платформ: Windows, Solaris, Linux, FreeBSD и др.

  • Быстрый и надежный.

  • Имеет модульную архитектуру.

  • Разрабатывается Apache Software Foundation.

  • Бесплатен и имеет открытые исходные коды.

  • Сайт: httpd.apache.org

В Windows Apache обычно запускается как сервис (сервис создается при инсталляции), хотя может запускаться и как консольное приложение; в Unix — как демон при загрузке системы.

Все основные настройки сервера располагаются в файле conf/httpd.conf (вспомогательные конфигурационные файлы обычно расположены там же).

Примеры некоторых опций из httpd.conf:

# адрес и порт для прослушивания (0.0.0.0 означает все IP-адреса)

Listen 0.0.0.0:80

# загрузка модуля для поддержки PHP

LoadModule php5_module "C:/php/php5apache2.dll"

# основной каталог с документами (HTML и проч.), который доступен клиентам

DocumentRoot "c:/hosts/htdocs/"

# установка кодировки по умолчанию (в Content-Type)

<Directory C:/hosts/htdocs/html/>

AddDefaultCharset UTF-8

</Directory>

При такой конфигурации при запросе клиента ресурса http://hostname/dir/file.html Apache вернет клиенту файл c:/hosts/htdocs/dir/file.html. Если корректно установлен и настроен интерпретатор PHP, то по запросу http://hostname/index.php Apache выполнит PHP-скрипт (программу на PHP) из файла c:/hosts/htdocs/index.php и сгенерированный PHP-скриптом HTML-код передаст клиенту.

Настройки для конкретного каталога можно разместить в файле .htaccess этого каталога, например:

Deny From All

Все файлы каталога с таким файлом .htaccess не будут отдаваться клиентам — им будет возвращена ошибка с кодом 403 (Forbidden, т. е. доступ запрещен).

Apache поддерживает виртуальный хостинг — это когда на одном физическом веб-сервере размещено и функционирует много сайтов, например: edu.krasu.ru, elib.krasu.ru, matlab.krasu.ru и т. д. Для клиентов эти сайты могут выглядеть как несколько различных веб-серверов, однако в реальности все эти имена могут соответствовать одному физическому веб-серверу, на котором запущен один Apache.

Чтобы указать Apache, что разным веб-сайтам должны соответствовать различные каталоги документов на диске и, возможно, различные настройки, в конфигурационном файле используется директива VirtualHost:

<VirtualHost elib.krasu.ru>

ServerName elib.krasu.ru

DocumentRoot C:/hosts/elib

</VirtualHost>

При запросах на сайт elib.krasu.ru Apache будет возвращать документы и выполнять скрипты из каталога C:/hosts/elib, а не из каталога по умолчанию C:/hosts/htdocs. Для определения того, к какому конкретно веб-сайту обратился клиент, используется HTTP-заголовок «Host», который указывается веб-браузером в HTTP-запросе. Поддерживается также идентификация по IP-адресу, а не полю «Host».

Другие возможности веб-сервера Apache:

  • встроенная поддержка стандарта CGI для создания динамических веб-страниц (см. следующий параграф);

  • возможность HTTP-аутентификации для доступа к отдельным папкам и файлам (т. е. доступ по паролю и логину);

  • ведение журналов обращений к веб-серверу и гибкая настройка их формата;

  • создание «алиасов» (синонимов) для веб-страниц (например, чтобы при обращении к ресурсу /about реально выполнялся скрипт /about.php);

  • поддержка шифрованного протокола HTTPS;

  • возможность исправления опечаток в адресах;

  • возможность определения типа файла (Content-Type) по его содержимому;

  • возможность настройки HTTP-заголовков, перенаправлений и т. д.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]