logo
Протокол HTTP

2.3.2 Сервер и система управления динамическими библиотеками

Серверная система является центральной системой программы и обеспечивает серверные функции: инициализацию сетевых средств, организацию приема входящих подключений, проверку корректности запроса и т.д.

Действия, выполняемые сервером, можно описать следующим образом:

1. Создание и настройка серверного сокета.

2. Прием входящего подключения.

3. Создание потока, который будет обрабатывать запрос.

Пункты 2 и 3 повторяются в течение всего времени работы сервера.

Поток, обрабатывающий запрос, выполняет следующие действия:

1. Принимает запрос от клиента.

2. Проверяет корректность запроса.

3. В случае корректного запроса обращается к системе безопасности для подтверждения доступа.

4. В случае разрешения доступа обращается к системе управления динамическими библиотеками, передав ей имя запрошенного модуля.

5. Система управления динамическими библиотеками загружает соответствующую библиотеку и выполняет хранящуюся в ней функцию генерации.

Работа сервера продолжается до тех пор, пока не равна нулю переменная, адрес которой был передан серверному модулю при старте. Эта переменная обнуляется при получении процессом сигнала SIGINT (соответствующего комбинации Ctrl+C на клавиатуре). Использование сигналов описано в п. 3.2.4.