Hiawatha

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Hiawatha Webserver
Тип Веб-сервер
Автор Хуго Лейсинк (Hugo Leisink)
Разработчик Хуго Лейсинк (Hugo Leisink)
Написана на C
Операционная система POSIX, Кроссплатформенное программное обеспечение
Языки интерфейса Английский
Аппаратная платформа Linux, Windows, Solaris, FreeBSD, OpenBSD, UNIX-подобная операционная система, AIX, HP-UX, QNX, OS X, Haiku[1]
Последняя версия 10.4
Лицензия GPLv2
Сайт hiawatha-webserver.org

Hiawatha — веб-сервер, доступный для множества операционных систем. Разработка ведётся Хуго Лейсинком (Hugo Leisink) с 2002 года[2].

История

Hiawatha был создан в январе 2002 в виде небольшого веб-сервера, способного работать на серверах с устаревшим аппаратным обеспечением. Изначально он был написан для Интернет-серверов в студенческих общежитиях в городе Делфт, Южная Голландия, Нидерланды. Автор, будучи студентом в области компьютерных наук с особым интересом в сфере информационной безопасности, включил в разрабатываемый веб-сервер различные экспериментальные функции безопасности, многие из которых являются уникальными и со временем доказали свою полезность. Автор говорил:

Мне давно известно об уязвимостях, существующих в других серверах. Вот что меня беспокоит: время исполнения CGI скриптов. CGI процесс на других серверах может исполняться вечно. Один-единственный CGI скрипт может подвергнуть сервер DoS-атаке. Системному администратору приходится прерывать скрипт. А как насчет клиента (или хакера), который пытается подобрать пароли для HTTP аутентификации? Эти проблемы воодушевили меня к созданию Hiawatha с настройками для максимального времени отправки запроса, максимального времени исполнения CGI скриптов, блокирования клиентов, и т. д. По моему мнению, каждый сервер должен обладать такими функциями.

Номер журнала Linux Magazine за январь 2009 года содержал отдельную статью о веб-сервере Hiawatha.

Наиболее важные релизы
  • 1.0: Сентябрь 2002 года. Базовый, но функциональный веб-сервер.
  • 2.0: Март 2004 года. Использование многопоточности вместо системного вызова fork.
  • 3.0: Сентябрь 2004 года. Поддержка SSL.
  • 4.0: Декабрь 2005 года. Добавлен CGI-wrapper для повышенной безопасности.
  • 5.0: Октябрь 2006 года. Поддержка FastCGI для повышения скорости CGI.
  • 5.2: Ноябрь 2006 года. Первичная интеграция в систему портов FreeBSD начиная с версии 5.2 в декабре 2006 года[3], в коллекцию портов OpenBSD начиная с версии 5.7 в марте 2007 года[4].
  • 5.12: Август 2007 года. Поддержка URL rewriting.
  • 6.0: Октябрь 2007 года. Поддержка IPv6.
  • 6.6: Апрель 2008 года. Поддержка XSLT.
  • 6.10: Октябрь 2008 года. Добавлена функция предупреждения межсайтовой подделки запроса.
  • 7.0: Февраль 2010 года. Поддержка удаленного мониторинга.
  • 8.0: Январь 2012 года. Autoconf заменен на CMake, OpenSSL заменен на PolarSSL.
  • 9.0: Март 2013 года. Клиенты обслуживаются через пул потоков вместо создания потоков на лету.

Функциональные возможности

В веб-сервере Hiawatha реализованы все важнейшие функции современного веб-сервера, такие как:

Hiawatha содержит множество функций безопасности, которых нет в других веб-серверах, такие как предотвращение внедрения SQL-кода, межсайтового скриптинга (XSS), межсайтовой подделки запроса(CSRF), защита от DoS-атак, контроль ссылок на внешние изображения, блокирование потенциальных взломщиков, ограничение времени выполнения CGI приложений[5]. Автор работал над поддержкой RFC3546, но из-за недостатка документации по OpenSSL это не удавалось реализовать. Все же, поддержка RFC3546 была включена начиная с версии 8.6, с использованием библиотеки PolarSSLv1.2.

Производительность

Хотя основное внимание при разработке веб-сервера уделялось вопросам безопасности, Hiawatha показывает хорошие результаты в скорости и производительности. Согласно тесту производительности, проведенному в рамках независимого исследования SaltwaterC, Hiawatha опережает другие программы в отдаче статического контента[6]. Hiawatha поддерживает балансируемый FastCGI и имеет собственную утилиту PHP-FastCGI utility, хотя последняя устарела и была замещена утилитой FastCGI Process Manager (PHP-FPM)[7]. Это позволяет быстро и масштабируемо обслуживать динамичный контент.

Примечания

  1. Hiawatha on Haiku OS. Дата обращения: 25 мая 2014. Архивировано 11 мая 2013 года.
  2. About page of Hiawatha webserver. Дата обращения: 25 мая 2014. Архивировано 5 июля 2014 года.
  3. FreeBSD Ports of Hiawatha. Дата обращения: 25 мая 2014. Архивировано 15 мая 2014 года.
  4. OpenBSD Ports of Hiawatha. Дата обращения: 25 мая 2014. Архивировано 29 декабря 2011 года.
  5. List of features. Дата обращения: 25 мая 2014. Архивировано 29 мая 2014 года.
  6. PHP_web_serving_study Архивировано 26 апреля 2012 года.
  7. Release notes for Hiawatha 8.7 — Hiawatha webserver. Дата обращения: 25 мая 2014. Архивировано 16 января 2014 года.

Ссылки