Веб-сервер — это компьютер, на котором хранится веб-контент. В основном веб-сервер используется для размещения веб-сайтов, но существуют и другие веб-серверы, такие как игры, хранилище, FTP, электронная почта и т. Д.
Веб-сайт — это набор веб-страниц, а веб-сервер — это программное обеспечение, отвечающее на запрос веб-ресурсов.
Веб-сервер работает
Веб-сервер отвечает на запрос клиента одним из следующих двух способов:
-
Отправка файла клиенту, связанному с запрошенным URL.
-
Генерация ответа путем вызова скрипта и связи с базой данных
Отправка файла клиенту, связанному с запрошенным URL.
Генерация ответа путем вызова скрипта и связи с базой данных
Ключевые моменты
-
Когда клиент отправляет запрос на веб-страницу, веб-сервер выполняет поиск запрошенной страницы, если запрошенная страница найдена, и отправляет ее клиенту с ответом HTTP.
-
Если запрошенная веб-страница не найдена, веб-сервер отправит ответ HTTP: Ошибка 404 Не найдено.
-
Если клиент запросил другие ресурсы, веб-сервер свяжется с сервером приложений и хранилищем данных, чтобы создать ответ HTTP.
Когда клиент отправляет запрос на веб-страницу, веб-сервер выполняет поиск запрошенной страницы, если запрошенная страница найдена, и отправляет ее клиенту с ответом HTTP.
Если запрошенная веб-страница не найдена, веб-сервер отправит ответ HTTP: Ошибка 404 Не найдено.
Если клиент запросил другие ресурсы, веб-сервер свяжется с сервером приложений и хранилищем данных, чтобы создать ответ HTTP.
Архитектура
Архитектура веб-сервера использует следующие два подхода:
-
Параллельный подход
-
Подход, основанный на отдельных процессах.
Параллельный подход
Подход, основанный на отдельных процессах.
Параллельный подход
Параллельный подход позволяет веб-серверу обрабатывать несколько клиентских запросов одновременно. Это может быть достигнуто следующими методами:
-
Мульти-процесс
-
Многопоточная
-
Гибридный метод.
Мульти-процесс
Многопоточная
Гибридный метод.
Multi-обработка
При этом один процесс (родительский процесс) инициирует несколько однопоточных дочерних процессов и распределяет входящие запросы этим дочерним процессам. Каждый из дочерних процессов отвечает за обработку одного запроса.
Ответственность за отслеживание нагрузки и принятие решения о том, следует ли уничтожать или разветвлять процессы, лежит на родительском процессе.
Многопоточная
В отличие от Multi-process, он создает несколько однопоточных процессов.
Гибридный
Это комбинация двух вышеупомянутых подходов. При таком подходе создается несколько процессов, и каждый процесс инициирует несколько потоков. Каждый из потоков обрабатывает одно соединение. Использование нескольких потоков в одном процессе приводит к меньшей нагрузке на системные ресурсы.
Примеры
В следующей таблице описаны наиболее популярные на сегодняшний день веб-серверы: