Веб сервер это программа

Бесплатные уроки по работе с веб-сервером Apache здесь.

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

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

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

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

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

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

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

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

Nataliya

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

Что такое Web-сервер?

Вы наверняка слышали словосочетание «веб-сервер». Что это такое? Чем он отличается от обычного сервера и в чем заключены его функции и задачи. Разберемся.

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

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

Как это происходит?

Интернет содержит в себе огромные объемы данных, которые отображаются в том или ином виде, когда мы делаем запрос со своего браузера. Когда в строке вводится URL-адрес сайта или страницы, через соответствующий протокол (http и https) идет запрос в сервер, где расположены данные которые запрашиваются. Веб-сервер обрабатывает этот запрос и выдает корректный продукт в виде сайта, страницы, сервиса и т.п. всего, что вы можете найти на просторах глобальной сети.

Проще говоря, клиент (пользователь браузера) – задает вопрос, веб-сервер делает возможным обращение к информации которая требуется и выдает ответ. Цепочка такова: запрос браузера – веб-сервер – запрос всех необходимых данных – выведение запроса в адекватном для браузера формате. Например, сайт «со всеми потрохами» лежит на сервере, и достается оттуда в «удобоваримом виде» веб-сервером, чтобы показать его клиенту, который ввел адрес сайта.

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

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

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

В чем отличие веб-сервера от обычного сервера?

Суть процесса – подобна работе обычного сервера, где происходит обращение к определенным данным расположенным на сервере с помощью соответствующей специальной программы (как например, в случае 1С бухгалтерии). Отличие веб-сервера в том, что специализация программы, так сказать, распространяется на весь интернет, где она работает посредником и обработчиком запросов и выдач. Поэтому веб-серверы отличаются своей относительной универсальностью. Среди наиболее популярных компаний занимающихся разработкой веб-серверов являются Apache и Microsoft. Они без проблем взаимодействуют со всеми операционными системами, такими как Microsoft Windows, Linux, Mac OS и т.д.

Читайте также:
Проверка данного типа документа не поддерживается программой

Резюмируя: веб-сервер – это программа-посредник обрабатывающая запросы пользователей в интернете с помощью браузеров и выдающая корректный ответ в виде готового продукта.

Источник: introserv.com

Веб-сервер — это просто скрипт

Есть категория людей, которые особо ценят надёжность, стабильность, безопасность и свободу информации. Наверное, именно такие люди поднимают медиасерверы Plex и Jellyfin, запускают ноды Bitcoin, мосты Tor, инстансы Mastodon и Matrix, приложения YunoHost, VPN-узлы Tailscale и так далее. Это как бы естественный процесс.

Децентрализация, пиринг, автономность, самохостинг — вот основные принципы. Максимальная независимость от условий окружающей среды, государств, банков и прочих внешних факторов. Когда у вас надёжный фундамент под ногами и суверенная автономность с финансовой независимостью, то проблемы сторонних сервисов уходят на второй план. Конечно, сбои в их работе неприятны, но не критичны, если предусмотреть запасные варианты.

У обывателей часто возникает вопрос: наверное, это очень трудно? Поднять свои серверы? На самом деле сложность задачи часто переоценивают. Давайте посмотрим на примере простого веб-сервера.

Самый простой веб-сервер — это вообще одна строка в консоли вроде такой:

while true; do echo -e «HTTP/1.1 200 OKnn$(iostat)» | nc -l -k -p 8080 -q 1; done

Самый простой домашний NAS — старый смартфон или одноплатник за пять долларов с подключённым HDD/microSD/SSD/etc. Так что ничего сложного.

Ещё один пример минимализма. Одноплатник ZimaBoard (разработка: апрель 2022 года) — простой домашний сервер на архитектуре x86 (Intel). Хотя можно собрать NAS ещё дешевле на базе RPi

Веб-сервер — это просто скрипт

Интересный пример веб-сервера из скриптов — Sherver. Это довольно навороченный и многофункциональный веб-сервер на чистом Bash, в каком-то роде улучшенная версия bashttpd.

Сервер состоит из нескольких скриптов. Первый из них — ./sherver.sh . Чтобы поднять Sherver, клонируем репозиторий и запускаем ./sherver.sh . На старте можно указать рабочий порт: ./sherver.sh 8080 (по умолчанию такой и стоит).

И всё. После этого в браузере открываем http://localhost:8080/ — и всё работает. Сайт грузится из html, картинок и других ресурсов, которые мы закинули в папку /files .

То есть вся концепция веб-сервера — это простая, даже примитивная вещь. Суть в том, что если кто-то стучится к нашему компьютеру по порту 8080, то открываем соединение и выдаём файл (или другой контент, например, результат исполнения любой программы в stdout ). Вот что такое сервер в данном контексте.

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

  • envsubst , если хотите использовать шаблоны
  • socat для работы сервера (можно и netcat, но он не очень хорошо справляется с параллельными HTTP-запросами)

Строго говоря, Sherver вообще не следует показывать в интернет, потому что добром это точно не закончится, ведь, по сути, мы передаём консоль системы в браузер клиента.

Его можно использовать или как экстренную «заглушку» в специфических ситуациях (см. ниже про историю создания), или как сервер во внутренней сети, закрытой снаружи. Например, в домашней или корпоративной сети.

Читайте также:
Как выполнить программы при выключении компьютера

Некоторые особенности Sherver:

  • не нуждается в конфигурировании: просто добавляем файлы в папки scripts и folders ;
  • отдаёт любые HTML-страницы, независимо от сложности, в том числе со сложным JavaScript и множеством скриптов или файлов для загрузки;
  • отдаёт файлы (текстовые или бинарные, картинки) с корректным MIME-типом;
  • поддерживает динамические страницы;
  • поддерживает шаблоны HTML, чтобы не дублировать заголовки и футеры;
  • парсит URL-запросы;
  • поддерживает GET и POST;
  • работает с кэшем клиента;
  • легко расширяется:
  • запускает любые скрипты или исполняемые файлы любых языков (через stdout);
  • для удобства поставляется с библиотекой баш-функций.
  • поддержка только HTTP GET и POST запросов, хотя остальные тоже можно добавить;
  • отсутствие параллелизма;
  • если страница должна загрузить много файлов, файлы отправляются один за другим;
  • если на сайт заходят два пользователя, второму нужно подождать, пока обслужат первого;
  • практически полное отсутствие безопасности.

История создания

История создания этого веб-сервера довольно любопытная. Автор работал консультантом в сторонней компании, можно сказать, хакер-фрилансер — и его срочно вызвали к клиенту, у которого взломали веб-сайт и разместили в форме регистрации на деловую конференцию голую модель в шляпе. Во время расследования пришлось действовать в спешке, люди непрерывно звонили в офис, жалуясь на эротику. Поэтому хакер быстро отключил сервер от сети. А затем поставил вместо него маленькую «заглушку», чтобы народ вместо онлайн-регистрации просто звонил по телефону:

#!/bin/bash while : ; do cat conference.txt | nc -l 80; done
HTTP/1.1 200 OK Content-Type: text/html; charset=ISO-8859-1 Content-Length: 216 Connection: close Server: brad Conference

Conference Registration

The registration system is down for maintenance. Please call 1-800-123-4567 to register.

В принципе, можно сделать ещё проще:

while :; do nc -l 80 < conference.txt; done

Оказалось, полезная штука. Подобная заглушка спасла в экстренной ситуации. А иногда больше ничего и не надо. Так и родился проект Sherver.

Ещё одна похожая разработка — Bash-web-server. Это примерно то же самое, что и Sherver, только без зависимостей, то есть без использования дополнительных утилит типа socat и netcat .

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

Простой почтовый сервер — Docker Mailserver

На своём хостинге можно поднять почтовый сервер типа Gmail. В этой пошаговой инструкции утверждается, что процедура занимает всего 30 минут (домены у приличного человека есть заранее, то есть регистрировать ничего не надо). Это не так сложно, как многие думают.

    Установить и настроить контейнер Docker Mailserver:

mkdir mail cd mail DMS_GITHUB_URL=’https://raw.githubusercontent.com/docker-mailserver/docker-mailserver/master’ wget «$/docker-compose.yml» wget «$/mailserver.env» wget «$/setup.sh» chmod a+x ./setup.sh ./setup.sh help
ENABLE_CLAMAV=1 ENABLE_FAIL2BAN=1
docker run —rm -v «/mnt/volume_lon1_01/config/:/tmp/docker-mailserver/» docker.io/mailserver/docker-mailserver setup email add

Говорят, что опенсорсная программка Rspamd фильтрует спам не хуже, чем «AI-инфраструктура» всяких Gmail’ов.

Есть и другие нюансы по установке. Но в целом в прошлые времена без контейнеров всё это было намного сложнее.

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

Свой DNS-сервер

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

Интересно, что некоторые платные DNS-провайдеры предлагают услуги по «пробиву китайского файрвола». Дело в том, что из-за фильтрации трафика для пользователей изнутри Китая увеличивается задержка при доступе к ресурсам «снаружи». Поэтому западным компаниям предлагается конкретная услуга Managed DNS for China.

Читайте также:
Руткит это программа для скрытого взятия под контроль

Ещё одна причина установки DNS-сервера — туннелирование IPv4-трафика (см. iodine). Например, если файрвол жёстко блокирует трафик, но при этом разрешает доступ к DNS, то можно использовать такой хак.

Полная минификация сайта

Если всерьёз поднимать минимальный веб-сервер на собственном хостинге, то это будет самый простой сайт без всяких изысков. Возможно, даже упакованный в один HTML-файл, см. нашу прошлую статью «Простые сайты снова в моде. Минимализм возвращается».

Есть хорошие инструкции по полной минификации сайта, включая картинки, CSS, шрифты, JavaScript и так далее.

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

Самые простые, но эффективные оптимизации:

  • перекодировать картинки в WebP (особенно 24-битные PNG)
  • убрать неиспользуемые CSS и JavaScript (инструмент Coverage в Chrome DevTools)
  • проверка сайта в Search Console
  • кэширование статичных объектов
  • повсеместный gzip

Зачем вообще нужен свой сервер?

Picasa

Помните Picasa? Великолепное нативное приложение для работы с фотоархивом. До сих пор ни одна программа даже близко не приблизилась к Picasa по функциональности. Что с ней стало? То же самое, что с тысячами других приложений примерно в то же время.

Разработку прекратили ради облачной альтернативы (в данном случае Google Photos).

То есть программное обеспечение, которое мы использовали на своих компьютерах просто «переехало» в облако. Это имеет смысл с точки зрения корпорации, которая стремится сократить издержки, упростить обновления, а также привязать пользователей, взяв их файлы в «заложники». Программисты высочайшего класса работают над одной задачей — максимизация прибыли корпораций от рекламы. Их цель — привлечь ваше внимание и удержать его с помощью персонализации контента и психологических манипуляций.

Но в итоге может получиться так, что под контролем человека ничего не остаётся. Файлы, деньги, имущество — всё это может исчезнуть за одну секунду по решению третьих лиц.

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

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

Вот почему нужен собственный сервер с избыточным бэкапом. Пусть даже в подвале, но свой.

  • Awesome-Selfhosted: курируемый список инструментов для своего хостинга
  • r/selfhosted/: тематическое сообщество на Reddit с обсуждением альтернатив популярным облачным сервисам
  • Local-First Software, описание концепции

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

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

НЛО прилетело и оставило здесь промокод для читателей нашего блога:

— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS .

Источник: habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru