УДК 004
Рылёва А.А. crnудент 4 курса
факультет «Информатика и системы управления»
Мелузов О.В. студент 4 курса
факультет «Информатика и системы управления»
МГТУ им. Н.Э. Баумана Россия, г. Москва ОБЗОР РАЗЛИЧНЫХ WEB-СЕРВЕРОВ
Аннотация: В данной статье будут рассмотрены различные web-сервера. В наше время сложно представить человека, который никогда не слышал слово «web-сервер», но не каждый сможет хотя бы примерно описать, что это и для чего нужно. Данная работа поможет разобраться для что же такое web-сервер, как мы его используем и какие типы бывают.
Ключевые слова: web-сервер, HTTP, запрос, локальный сервер, браузер, всемирная паутина, веб-адрес.
Rylyova A.A. student
4 year, Faculty of Computer Science and Management Systems
BMSTU them. N.E. Bauman Russia, Moscow Meluzov O. V. student
4 year, Faculty of Computer Science and Management Systems
BMSTU them. N.E. Bauman Russia, Moscow OVERVIEW OF VARIOUS WEB-SERVERS
Abstract: This article we will review various web-servers. Nowadays it is difficult to imagine a person who has never heard the word "web-server", but not everyone can at least roughly describe what it is and what it is for. This work will help to understand what a web-server is, how we use it and which types there are.
Key words: web-server, HTTP, request local server, browser, The World Wide Web, web address.
Использование интернета для современного человека является чем -то привычным и обыденным. Он ворвался с невероятной скоростью в наш быт, приучил к себе и не хочет отпускать. Каждый день мы пролистываем десятки сайтов во всемирной паутине, но задумывались ли Вы когда -нибудь, что же эта самая паутина или глобальная сеть из себя представляет?
Понятие «Веб-сервер» можно рассмотреть с двух точек зрения:
1. С одной стороны - «железа», можно сказать, что Веб - сервер -компьютер, хранящий ресурсы сайта, такие как JavaScript файлы, HTML
документы, CSS шаблоны и др. и доставляющий эти ресурсы на устройства пользователя (web - браузер и т.д.).
2. С другой точки зрения - программное обеспечение (далее ПО), можно сказать, что Веб-сервер состоит из некоторого набора инструментов, контролирующих доступ пользователей к файлам, находящимся на сервере (для этого точно используются HTTP сервера). HTTP сервер - это часть ПО, понимающая веб-адреса (URL'bi) и HTTP (HTTP - протокол - это такой протокол, который использует ваш веб - браузер, чтобы просматривать вебстраницы). [1]
Проще говоря, Если Вашему веб - браузеру необходим файл, который находится на сервере, то он получает его с помощью запроса к HTTP. В момент достижения необходимого сервера («железо»), HTTP сервер (ПО) передает нужный документ (запрашиваемый) обратно снова через HTTP.
Таким образом, веб - сервер позволяет браузеру клиента получить
сайт.
Web server Browser
Как мы поняли по определению первому сервер можно создать из любого компьютера. Естественно потребуется специальная необходимая оболочка для этого.
Выбор компьютера определяется необходимой скоростью и объемом ресурсов, размещенных на веб - сервере. Итак, мощность «железа» выбирается исходя из этих характеристик, естественно, прямо пропорционально.
Приведем пример:
Если Вам требуется книга, то Вы идете в библиотеку и просите то, что нужно. Сотрудник библиотеки после поиска выдает вам желаемую литературу. В данном примере библиотека является сервером, в котором хранятся данные. Сотрудник - оболочка, принимающая Ваш запрос и дающая ответ. Вы - клиент сервера. Если нужно получить дополнительную информацию, касающуюся книги, то у Вас есть возможность запросить ее у библиотекаря, таким образом, это аналогично клику по ссылке. Есть, конечно, самый главный минус в таком сервере как библиотека - одну и ту же книгу не могут получить разные клиенты одновременно. Но на просторах интернета один и тот же сайт (ресурс) одновременно могут читать любое число клиентов. Также поиск в интернете осуществляется гораздо быстрее, нежели это будет человек вручную.
После того, как мы разобрались, что принято понимать под термином «web - сервер», посмотрим более подробно для чего он нужен и какие
функции выполняет.
Основу интернета создает совокупность веб серверов. Никакой всемирной паутины не существовало, если бы не было этих серверов. Поиск нужной информации занимал невероятно много времени, возможно, приходилось бы искать людей, обладающих знаниями, общение в социальных сетях было бы только в нашем воображение, если такая идея вообще может зародиться в каждом из нас.
Основная цель веб сервера и даже можно сказать главная -предоставлять нужные данные (иметь возможность обслуживать) сразу огромное число пользователей и стараться как можно более эффективно использовать hardware (под hardware понимается применяемая техника (аппаратное обеспечение) для работы сервера).
Основная его миссия - хранение информации. Где информация -файлы, страницы, текстовый контент, изображения. Естественно, для достижения поставленной цели веб сервера решают и другие задачи. [2]
• получают запросы;
• запускают программы на специальных языках программирования; (предназначенных для сервера);
• Формируют web - страницы;
• Возвращают их пользователю;
• Защищают информацию;
• Проводят идентификацию пользователей;
• Ведут журнал обращений;
• Обслуживают запросы других типов (например, mailto, FTP и т.д.).
Выполнение всех этих задач можно представить следующей
иллюстрацией.
Здесь были перечислены лишь основные функции и задачи web -серверов, на самом деле, их диапазон гораздо шире, чем мы думаем, они выполняют еще множество мелких задач, которые позволяют нам спокойно пользоваться Интернетом.
Давайте теперь разберемся: что происходит на веб-сервере во время запросов от пользователя и как он работает. Схема работы несложная и интуитивно понятна каждому из нас. [6]
тправка
запроса
Обработка запроса
1
Исполнение
программного
кода
Отображение ■ Отправка Формирование
результатов ответа ^^ ответа
* зеленым цветом помечены действия, которые обрабатываются веб-сервером
После того, как web-сервер получает запрос от пользователя, определяется тип файла, который был запрошен, затем исходя из этого отправляется нужный файл клиенту или же запускается обработка страницы. Также в это время происходит генерация кода ответа от web-сервера, в котором содержится информация об успешном выполнении операции или же о каких-либо возникших ошибках. [3]
Ошибки web-сервера делятся на группы:
• 1xx Информационные. Сообщают, что запрос принят и обрабатывается.
• 2xx Запрос успешен, нужный документ отправлен сервером клиенту.
• 3xx Перенаправление.
• 4xx Проблемы при попытке выполнить запрос.
• 5xx Ошибки на сервере.
Во время обработки страницы при надобности web-сервер запускает различные приложения или скрипты, далее получает данные от них и потом, преобразовав в необходимый вид, отправляет пользователю. Как правило, результатом работы web-сервера становятся различные страницы, оформленные с помощью языка HTML, за отображение которых отвечает браузер. Также возможны и другие варианты ответов, к примеру, для программ, которые открыты на клиентском устройстве, могут приходить данные в формате XML, JSON и так далее. [3]
На сегодняшний день существует множество различных web-серверов, но мы остановимся лишь на тех, которые занимают большую часть рынка.
Это такие серверы, как Apache, Microsoft IIS, NGINX, LiteSpeed. Начнем наш краткий обзор с web-сервера Apache.
Apache HTTP Server
• Apache (http://apache. org) - это наиболее распространенный и известный сервер на просторах интернета, который к тому же абсолютно бесплатный. Он является самым надежным и гибким. Преимущество данного сервера в том, что он не нуждается в огромном количестве ресурсов процессора и имеет возможность обслуживать большое количество сайтов. Также несомненным достоинством является постоянная поддержка разработчиков. Приложение доступно для самых разных операционных систем, таких как Unix, Linux, Solaris, Mac OS X, Microsoft Windows и другие. На данный момент применение Apache составляет более 65 %. Однако, это очень трудная программа, с которой справится не любой начинающий пользователь.
Следующим по популярности является web-сервер от компании Microsoft, который называется Microsoft IIS.
ij
Microsoft
J J5 Wo***4 //
• Microsoft IIS (www.iis.net) - так же очень надежный сервер от компании Microsoft. Он достаточно уверенно располагается на почетном втором месте рейтинга с процентом использования в 14%. Он известен благодаря имени своего разработчика. Представляет собой набор веб служб и интегрирован с Windows. После установки данной программы, будут доступны лишь два языка программирования (VBScript и JScript). Несмотря на это, возможно увеличить набор возможностей, поставив для этого необходимые расширения. С установкой соответствующих модулей, функциональные возможности этого сервера заметно вырастают.
Далее расположился широко используемый web-сервер на рынке российского Интернета. _
NGINX
G
• NGINX (http://nginx. org/ru/) - наиболее востребованный web-сервер в Интернете в России . При сравнении с двумя лидерами (Apache и Micrososft IIS), он является самым легким в использовании и не предоставляет лишнего функционала. Помимо этого к его достоинствам пользователи относят высокую надежность и хорошую скорость работы. Разработчик этого продукта наш русский программист - Игорь Сысоев. В 2004 году в свет вышла первый вариант nginx. На сегодняшний день данный программный продукт располагается на почетном 3 месте в списке самых популярных веб серверов в мире. Его использование составляет чуть больше 6 %.
Последним в нашем кратком обзоре будет web-сервер LiteSpeed.
<¿> LITESPEED
• LiteSpeed (https://www. litespeedtech. com) - этот web-сервер не имеет большого спектра возможностей, однако у него есть большое преимущество - это очень высокая скорость работы. По этому важнейшему параметру он мощнее популярного Apache в 9 раз. Также много внимания отводится и безопасности (своя защита от перегрузки системы, строгая проверка http-запросов, анти-ddos и так далее). LiteSpeed можно использовать на таких операционных систем, как Solaris, Linux, FreeBSD и Mac OS X. Доля эксплуатации web-сервера примерно 1,5 %.
Более полная информация и сравнение большего количества web-серверов представлена в таблице ниже. [4]
Название Год создания Автор Распространение Open Source Лицензия Особенности
Apache HTTP Server 1995 Apache Software Foundation бесплатно Да бесплатно Да бесплатно Да бесплатно Да бесплатно Да Apache License Упор на надёжность и гибкость.
Apache Tomcat 1999 Sun Microsystems, Apache Software Foundation Apache License2.0 Реализован полностью на Java.
Ascet HTTPd 2008 Kalabzin Maxim aka Rootman Apache License Упор на скорость и безопасность.
CERN httpd 1991 Тим Бернерс-Ли MIT Исторически первый веб-сервер.
Cherokee HTTP Server 2001 Alvaro Lopez Ortega GNU GPL Ориентирован на простоту и скорость.
FreeProxy 1999 Hand-Crafted Software бесплатно Нет Freeware Почтовый, веб- и прокси-сервер.
HTTP File Server 2002 Massimo Melina бесплатно Да GNU GPL Простой сервер для выкладывания файлов в сети.
Internet Information Services 1995 Microsoft вкл. в Win NT Нет Microsoft EULA Является частью пакета IIS. Поддерживает .NET
Jetty 1995 Mort Bay Consulting бесплатно Да бесплатно Да бесплатно Да Apache License2.0 Реализован полностью на Java.
lighttpd 2003 Jan Kneschke Вариант BSD Использование на сильно нагруженных серверах, обеспечение быстроты и защищённости.
nginx 2004 Игорь Сысоев Вариант BSD Разрабатывался для испытывающих большую нагрузку серверов. Включает в себя почтовый прокси-сервер.
Sambar Server 1997 Sambar Technologies, inc shareware Нет Проприетарная Содержит веб-интерфейс администрирования, а также интерфейс пользователя, который содержит в себе почту, календарь, RSS, блог, фотоальбомы, чат и форум. Также может выполнять роль почтового сервера, DNS-сервера, FTP-сервера, Proxy-сервера и другое.
Small HTTP Server 1999 Max Feoktistov бесплатно для СНГ при условии некоммерческого использования Нет Проприетарная Компактный (размер исполняемого файла около 120 Кб), простой и быстрый HTTP-сервер. Также может выполнять роль почтового сервера, DNS-сервера, FTP-сервера, Proxy-сервера и другое.
TinyWeb Ritlabs бесплатно Да бесплатно Да бесплатно Да Freeware Исключительно компактный (размер исполняемого файла 53 Кб), простой и быстрый HTTP-сервер. Распространяется вместе с исходным кодом на Delphi.
Tornado 2009 FriendFeed/Facebook Apache License Асинхронный сервер. Написан на Python.
XSP 1995 Mono GPL Является частью пакета Mono. Поддерживает .NET
Для начинающих программистов-разработчиков создаются программы, которые позволяют в несколько щелчков мыши получить web-сервер на своем компьютере.
Локальный сервер - это некий набор программ, которые дают возможность взаимодействовать со страницами, написанными на различных языках программирования, как PHP, Perl и других. В набор приведенного комплекта входит непосредственно сам сервер (наиболее часто им бывает Apache), модули языков программирования и систем управления базами данных (MySQL, Oracle и др.). Зачастую все эти компоненты объединены в единый комплект, чтобы облегчить процесс установки и работы с локальным сервером.
Выясним, какие локальные серверы есть на сегодняшнем рынке. Начнем с того, что каждый из нас может сам создать свой собственный
сервер. Для этого потребуется скачать: сервер Apache, пакеты MySQL и PHP, поставить их на ваш компьютер и начинать работу. Но для этого потребуются знания в области программирования и умение работать в данных программах.
Но это не самый удобный и простой способ создания локального сервера на своем компьютере. Если вы не хотите сильно затруднять себя, то вы можете скачать готовые установочные пакеты, коих очень большое количество и в них содержится все нужное для полноценной работы сервера. [12]
В настоящий момент существует множество разновидностей локальных серверов, мы рассмотрим некоторые из них. [5]
• Denwer (http://www. denwer. ru) - это абсолютно бесплатный российский сервер, предназначенный для взаимодействия с сайтами, веб-приложениями или Интернет страницами. Его создателями стали наши светлые умы Дмитрий Котеров и Антон Сущев. Этот продукт включает в себя все необходимые дистрибутивы для наиболее простого обращения с ним. К примеру, сюда включен web-сервер Apache с различной поддержкой, панель phpMyAdmin и MySQL для работы с базами данных и другое необходимое программное обеспечение. Кроме того, возможно работать со съемного носителя информации (флеш-накопитель или жесткий диск). Но, к сожалению, для многих любителей различных операционных систем Denwer работает только с семейством операционных систем Windows.
• XAMPP (www. apachefriends. org/en/xampp.html) - это специальная разработка от сторонником и друзей Apache. Все нужные дистрибутивы помогают запустить на нем полноценный web-сервер. Данная программа доступна бесплатно и способна работать в системе Windows, Solaris, Mac OS X и Linux. Также имеет такие существенные плюсы: сервер популярен своим понятным пользовательским интерфейсом, что позволяет ему быть любимым для многих начинающих; присутствуют частые обновления для улучшенной работы; обновление происходит очень безболезненно для пользователя; существуют добавочные модули.
AppServ (www.appservnetwork.com) - это очень хороший сервер от
тайских разработчиков, основной идеей которого является очень простая установка и очень быстрая настройка всех необходимых дистрибутивов. Первое явление миру этой разработки состоялось в 2001 году и с того момента количество пользователей только продолжает расти. AppServ легок в установке, он стабилен в работе и точно не хуже многих официальных и отдельных релизов, а его надежная производительность позволяет реализовать полновесный web-сервер у вас на компьютере.
VertrigoServ
• VertigoServ (https://www.vswamp.com) - еще один довольно таки хороший и очень простой в установке локальный сервер. Сборка гибка, имеет достойную производительность и занимает немного пространства на вашем диске. Единственным минусом является то, что пока он поддерживает только операционную систему Windows.
Zend Server Community Edition (www.zend.com) - это еще один
представитель бесплатных серверов. Производителем является компания Zend. Его предназначение состоит в работе с веб-приложениями. В нем есть все нужные составляющие для молниеносного развертывания локального сервера на вашем персональном компьютере.
> OPEN SERVER^
ПОРТАТИВНЫЙ ЛОКАЛЬНЫЙ ЩБСЕРвЕР
• Open Server (https://ospanel. io) - это очередной русский
портативный локальный сервер, обладающий широким спектром функций и возможностей по созданию сайтов и других веб проектов и работе с ними. Имеет интерфейс на нескольких языках (включая и русский) и рассчитан на работу с операционной системой Windows. Также возможна работа со съемного носителя. Этот сервер достаточно хорош и служит достойной заменой серверу Denwer.
WampServer
• Wampserver (wampserver.com) — это неплохая сборка с
дружелюбным для россиян интерфейсом на родном языке (поддерживаются и другие языки). Присутствует легкое для восприятия меню, а сама установка и настройка данной программы не вызывает каких-либо затруднений. Настройку можно осуществлять, не касаясь файлов
конфигураций, что очень поможет начинающим web -мастерам. Сервер абсолютно бесплатен, но из минусов можно отметить, что он совместим только с одной операционной системой - Windows.
нззгппз
• EasyPHP (http://www. easyphp. org) - это очень простая сборка, которая поддерживает русский язык. Данная программа ничем не примечательна, не имеет широкого диапазона функций и как правило предназначена для теста маленьких проектов. Поддерживается работа с флешки или жесткого диска. Эта сборка может неплохо заменить сервер Denwer.
Использованные источники:
1. Дмитрий Моск, Статья «Что такое веб-сервер» 02.01.2017
2. «Что такое веб-сервер», Semantica\Москва
3. Андрей Антанюк, Веб-сервер для тестирования сайтов и приложений, 25.06.2015 г.
4. Википедия «Сравнение веб-серверов», 23.03.2015
5. Alfa-byte, Обзор лучших серверов для создания сайтов и веб приложений, 31.07.2013
6. ИНТУИТ Национальный открытый университет, лекция 1: Основы функционирования веб-приложений