Учебники

Веб сервер

Веб-сервер — это компьютер, на котором хранится веб-контент. В основном веб-сервер используется для размещения веб-сайтов, но существуют и другие веб-серверы, такие как игры, хранилище, FTP, электронная почта и т. Д.

Веб-сайт — это набор веб-страниц, а веб-сервер — это программное обеспечение, отвечающее на запрос веб-ресурсов.

Веб-сервер работает

Веб-сервер отвечает на запрос клиента одним из следующих двух способов:

  • Отправка файла клиенту, связанному с запрошенным URL.

  • Генерация ответа путем вызова скрипта и связи с базой данных

Отправка файла клиенту, связанному с запрошенным URL.

Генерация ответа путем вызова скрипта и связи с базой данных

internet_technologies_tutorial

Ключевые моменты

  • Когда клиент отправляет запрос на веб-страницу, веб-сервер выполняет поиск запрошенной страницы, если запрошенная страница найдена, и отправляет ее клиенту с ответом HTTP.

  • Если запрошенная веб-страница не найдена, веб-сервер отправит ответ HTTP: Ошибка 404 Не найдено.

  • Если клиент запросил другие ресурсы, веб-сервер свяжется с сервером приложений и хранилищем данных, чтобы создать ответ HTTP.

Когда клиент отправляет запрос на веб-страницу, веб-сервер выполняет поиск запрошенной страницы, если запрошенная страница найдена, и отправляет ее клиенту с ответом HTTP.

Если запрошенная веб-страница не найдена, веб-сервер отправит ответ HTTP: Ошибка 404 Не найдено.

Если клиент запросил другие ресурсы, веб-сервер свяжется с сервером приложений и хранилищем данных, чтобы создать ответ HTTP.

Архитектура

Архитектура веб-сервера использует следующие два подхода:

  1. Параллельный подход

  2. Подход, основанный на отдельных процессах.

Параллельный подход

Подход, основанный на отдельных процессах.

Параллельный подход

Параллельный подход позволяет веб-серверу обрабатывать несколько клиентских запросов одновременно. Это может быть достигнуто следующими методами:

  • Мульти-процесс

  • Многопоточная

  • Гибридный метод.

Мульти-процесс

Многопоточная

Гибридный метод.

Multi-обработка

При этом один процесс (родительский процесс) инициирует несколько однопоточных дочерних процессов и распределяет входящие запросы этим дочерним процессам. Каждый из дочерних процессов отвечает за обработку одного запроса.

Ответственность за отслеживание нагрузки и принятие решения о том, следует ли уничтожать или разветвлять процессы, лежит на родительском процессе.

Многопоточная

В отличие от Multi-process, он создает несколько однопоточных процессов.

Гибридный

Это комбинация двух вышеупомянутых подходов. При таком подходе создается несколько процессов, и каждый процесс инициирует несколько потоков. Каждый из потоков обрабатывает одно соединение. Использование нескольких потоков в одном процессе приводит к меньшей нагрузке на системные ресурсы.

Примеры

В следующей таблице описаны наиболее популярные на сегодняшний день веб-серверы: