Что такое веб-сервер и для чего он нужен?

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

Что же такое веб-сервер?

Давайте попробуем разобраться в этом вопросе.

Первое, что нужно понимать. Веб-сервер - это просто компьютерная программа. Которая устанавливается на любую операционную систему и начинает выполнять какие-то определенные действия. Таким образом, вы можете установить эту программу даже на свой компьютер, с которого вы смотрите это видео, независимо от того, какая операционная система у вас установлена.

Для чего же нужна эта программа? Для чего нам нужен веб-сервер?

Основная задача веб-сервера - принимать HTTP-запросы, обрабатывать их и выдавать HTTP-ответы. 

Что же это за HTTP-запросы и ответы?

Мы с этим сталкиваемся каждый день и самая главная программа, которая позволяет работать с HTTP-запросами и ответами - это обычный браузер, который установлен у нас в операционной системе (Google Chrome, Яндекс Браузер, Firefox, Internet Explorer и.т.д.).

Т.е. запросы к веб-серверу и ответы от него, которые происходят по протоколу HTTP. Это специальный набор правил, которые позволяют общаться браузеру и веб-серверу.

Наверняка, вы могли обращать внимание, что при наборе какой-то адреса в адресную строку браузера. Перед доменом сайта, первым делом указывается протокол, по которому работает веб-сайт. Либо http, либо https. 

Самое главное, что нужно понимать, что после того, как вы ввели адрес сайта в адресную строку браузера, нажали клавишу Enter, начинает выполняться запрос к веб-серверу. 

Именно веб-сервер обрабатывает эти запросы. Этот веб-сервер может быть установлен на том же компьютере, где установлен браузер. Также этот веб-сервер может быть установлен в каком-то другом месте, другом компьютере в сети Интернет. Разницы здесь нет. Просто, с помощью браузера мы обращаемся к этому веб-серверу и получаем ответ.

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

Веб-сервер - это такая программа, которая является связующим звеном с серверными технологиями. 

Задача веб-сервера принять запрос от HTTP-клиента, понять к какому файлу произошел запрос, обработать этот файл и выдать ответ клиенту.

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

Нужно иметь в виду, что база данных - это отдельная технология (программа) и она не относится к веб-серверу.

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

Нужно понимать, что HTTP-запросы мы можем делать не только с браузера. Это можно делать через командную строку, через определенные серверные приложения, и.т.д.

Кроме того, задача веб-сервера создавать журнал ошибок и обращений к файлам (лог). 

Следующая веб-сервера - это аутентификация и авторизация пользователей. Веб-сервер позволяет определять кто к нему обращается, имеет ли он доступ к каким-либо файлам. 

Если веб-сервер не имеет доступа к каким-либо файлам, то веб-сервер просто запрещает доступ к этим файлам. 

Также веб-сервер содержит в себе настройки о том, как и какие файлы нужно обрабатывать на веб-сервере. Что нужно сделать с какой-либо папкой. В общем, эти все правила содержит веб-сервер.

Т.к. веб-сервер это обычная программа, то эту программу могут выпускать различные разработчики. Т.е. разные компании могут по своим алгоритмам разрабатывать веб-сервера, которые тем или иным образом работают.

Пожалуй, самыми популярными веб-серверами, которые имеются на текущий день являются такие веб-сервера как: Apache, IIS, Nginx.

Вот, собственно говоря, и все по поводу веб-серверов. Самое главное, что нужно понять, не вдаваясь в детали. Веб-сервер - это просто некая программа, которая позволяет принимать HTTP-запросы и выдавать HTTP-ответы.