Локальный веб-сервер. Веб-сервер (Web Server): для чего он нужен, как устроен и как работает

Веб-хостинговая индустрия,требует,по крайней мере,некоторых базовых знаний для работы.Есть несколько терминов веб-хостинга,и каждый веб-мастер должен быть в курсе.Одним из самых основных из них является: веб-сервер .На самом деле,веб-хостинг построен из web-серверов, предоставляющих место для вашего веб-сайта. Сервер HP Micro AMD N40L - это универсальный сервер, который может обеспечить платформу для организации и защиты бизнес-информации, обеспечить эффективное общение с клиентами и сделать большую часть для вашего существующего офисного оборудования и ресурсов. HP MicroServer является экономически эффективным стартовым сервером для предприятий с менее 10 клиентами, и это может вывести ваш бизнес на новый уровень производительности и эффективности.Чтобы узнать больше о сервере HP Micro AMD N40L,пройдите по этой ссылке http://vint.com.ua/product/computers/dir_3010558/dir_3010559 .

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

Оборудование веб-сервера

Веб-сайт-это коллекция веб-страниц которые представляют собой цифровые файлы, которые обычно написаны с использованием языка разметки гипертекста HTML. Веб-сайт будет доступен всему миру всё время,для этого он должен быть сохранён или на хостинге или на компьютере, подключенном к Интернету в режиме 24/7/365. Такой компьютер называется Веб-Сервер (обратите внимание на первые буквы в верхнем регистре).

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

Существует ряд требований для сервера компьютера - он должен быть достаточно быстрым, иметь большой объём оперативной памяти и жесткий диск с большим объёмом.Но наиболее важно иметь постоянный адрес в Интернет, также известный как IP - адрес Интернет-протокола. Если IP адрес веб-сайта не будет найден и он будет работать в автономном режиме - браузер будет отображать ошибку не удается найти веб-сайт .

Программы и программное обеспечение web-сервера

Программы веб-сервера это программное обеспечение, которое работает для веб-сайта на хостинг-сервер компьютере. Его основная цель: выдавать веб-страницы; это означает, что он ожидает запросы от web-браузеров (также известных как клиенты ) и отвечает, посылая необходимые данные обратно. Это взаимодействие клиента и сервера отличительная часть работы веб-сервера .

Есть много веб-серверных программ. Самой известной и популярной из них является Apache ,разработанная Apache Foundation.Apache не только бесплатная,но она также доступна для нескольких операционных систем,включая Windows,Macintosh и Linux/Unix.

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

Помню, давно я думал, что Интернет сосредоточен в одном месте, представлял что-то типа лаборатории, где расположено большое количество аппаратуры, поддерживающей работу всего этого. Тогда я не мог оценить масштабы Глобальной сети и сложности ее структуры. В действительности же, Интернет - это абстрактное понятие, ресурсы Интернета разбросаны по оборудованию на всем земном шаре. Для связи этого оборудования между собой на огромных расстояниях придумали специальные алгоритмы и стандарты, в частности, протокол TCP/IP , на котором в настоящее время функционирует наш Интернет. Согласно этому стандарту, каждый компьютер, находящийся в Глобальной сети, имеет свой уникальный адрес - IP-адрес . IP-адрес представляет собой последовательность четырех чисел в диапазоне от 0 до 255, разделенных между собой точками (например, 92.166.31.18). Один компьютер может связаться с другим компьютером в сети, зная его IP-адрес. Но сказать "компьютер связался с компьютером" не совсем верно, так как связываются не сами компьютеры, а сетевые службы (программы, если хотите), выполняющиеся на них. Допустим, вы отправляете электронную почту дедушке, при этом ваша почтовая программа связывается с почтовым сервером для отправки письма.

На компьютере одновременно может работать несколько сетевых программ, поэтому помимо IP-адреса для связи протоколом TCP/IP предусмотрено дополнительно такое понятие как порт . Порт - это число в диапазоне от 1 до 65536. Таким образом, минимальным условием для связи одной сетевой программы с другой является наличие у первой IP-адреса и номера порта второй. Совокупность IP-адреса и порта принято записывать через двоеточие (например, 192.168.35.2:443).

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

Программа, ожидающая подключение, называется сервером . Серверу при запуске указывается номер порта, часто говорят: "сервер слушает порт". На компьютере не может быть запущено более одного сервера с одинаковым номером порта (иначе невозможно определить, к какому из серверов подключаться). Программа, устанавливающая соединение с сервером, называется клиентом . На клиентов не распространяется подобное ограничение (например, можно запустить два джаббер-клиента). Также к серверу могут подключаться несколько клиентов с разных компьютеров, если это поддерживает сам сервер.

Теперь давайте на основе этих поверхностных знаний определим, что такое веб-сервер . Во-первых, судя по названию, это сетевая программа, ожидающая и принимающая соединения (сервер). По умолчанию, веб-сервер "слушает" порт под номером 80. Веб-сервер поддерживает работу одновременно с несколькими клиентами (несколько человек одновременно могут просматривать сайт). Клиентом для веб-сервера выступает веб-браузер (Internet Explorer, Opera и так далее).

Таким образом, сайт функционирует за счет веб-сервера, который отправляет странички этого сайта клиентам, запрашивающих их у него. Для того, чтобы запросить страницу необходимо знать IP-адрес компьютера, на котором запущен веб-сервер с нужным нам сайтом. Но запоминать IP-адреса неудобно, поэтому придумали доменные имена, представляющие собой некую текстовую сущность (например, yandex.ru). Очевидно, что доменные имена более понятны и более легки в запоминании. Однако, протокол TCP/IP не в состоянии найти требуемый компьютер по доменному имени, поэтому его необходимо преобразовать в IP-адрес. Для этого служат DNS-сервера, на которых расположены таблицы соответствий доменных имен и IP-адресов. Допустим, когда мы вводим в адресной строке браузера домен yandex.ru, в первую очередь посылается запрос в DNS-сервер для определения IP-адреса данного домена. Когда адрес определен, браузер пытается связаться с веб-сервером по этому адресу и по стандартному порту под номером 80. Если соединение с веб-сервером установлено, браузер запрашивает у веб-сервера требуемую страницу сайта.

В принципе, веб-сервер можно настроить на работу и на другом порту, в таком случае в браузере при запросе страницы необходимо его указывать через двоеточие после доменного имени (например, site.ru:3182).

Каким же образом происходит запрос страницы сайта у веб-сервера браузером? Понятное дело, что для взаимодействия веб-сервера и браузера необходим "общий язык", то есть некий стандарт, по которому формируются запросы и ответы. Этим стандартом служит протокол HTTP (HyperText Transfer Protocol). Этот протокол довольно прост, так как соответствует схеме "запрос-ответ". Говоря другими словами, на каждый HTTP-запрос веб-браузера веб-сервер отвечает HTTP-ответом. По своей инициативе веб-сервер HTTP-пакеты не шлет (к тому же, зачастую, после завершения операции "запрос-ответ" сервер разрывает соединение с клиентом).

Давайте рассмотрим структуру HTTP-пакета. HTTP-запрос и HTTP-ответ состоят из двух блоков - блока заголовков (headers) и блока тела пакета. Эти блоки отделены друг от друга двумя символами перевода строк (то есть между заголовками и телом расположена пустая строка). В блоке заголовков расположены различные параметры пакета, блок тела содержит какие-либо данные. Второй блок может отсутствовать, то есть HTTP-пакет может состоять только из блока заголовков. Для примера выполним запрос главной страницы сайта ya.ru и рассмотрим HTTP-пакеты, участвовавшие в нем. При запросе главной страницы браузер Firefox отправил веб-серверу следующий HTTP-запрос:

GET / HTTP/1.1 Host: ya.ru User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2) Gecko/20100115 Firefox/3.6 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ru,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive

В HTTP-запросе отсутствует блок данных (так как отсутствует пустая строка, которая бы отделяла заголовки от данных). Давайте рассмотрим представляющие для нас в данный момент интерес строки этого запроса. Во-первых, самая первая строка:

GET / HTTP/1.1

"GET" - тип запроса. Два наиболее распространенных типа запросов - это GET и POST. О них мы поговорим в одной из следующих статей или уроков. "/" указывает на то, что запрашивается главная страница сайта. В противном случае здесь указывается путь и имя запрашиваемой страницы или файла. "HTTP/1.1" - версия протокола HTTP.

Host: ya.ru

Параметр Host содержит домен сайта, к которому происходит обращение.

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2) Gecko/20100115 Firefox/3.6

User-Agent содержит информацию о клиенте: тип браузера, операционной системы и так далее. Остальные параметры в данный момент нас особо не интересуют.

На данный HTTP-запрос веб-сервер ответил следующим HTTP-ответом:

HTTP/1.1 200 OK Server: nginx Date: Thu, 25 Feb 2010 12:31:25 GMT Content-Type: text/html; charset=utf-8 Last-Modified: Tue, 12 Jan 2010 15:29:06 GMT Transfer-Encoding: chunked Connection: keep-alive Content-Encoding: gzip Яндекс ...

Пустая строка указывает на наличие блока данных (тела пакета). Как и в случае с HTTP-запросом рассмотрим наиболее важные строки полученного ответа. В первой строке указывается версия протокола HTTP (HTTP/1.1) и код результата. Код результата 200 означает, что запрос выполнен успешно. В описании протокола HTTP расписаны все коды результатов. С некоторыми из них, например, 403 и 404, мы познакомимся в будущем.

Server: nginx

Параметр Server содержит название веб-сервера. В нашем случае мы имеем дело с веб-сервером nginx. Данный параметр может отсутствовать в HTTP-ответе, если администратор данного сервера по каким-либо причинам не желает оглашать эту информацию.

Content-Type: text/html; charset=utf-8

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

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

Специализированные HTTP-приложения дополняют Apache и другие ведущие Web-серверы

Применение в проектах "лёгких" Web-серверов, таких как lighttpd , litespeed и mongrel , дает впечатляющие преимущества. В этой статье мы представляем обзор возможностей и показываем, как их можно применять.

Что должен делать Web-сервер?

В первую очередь надо понять, что мы исследуем (подробности см. в разделе ). Основное действие конечного пользователя в Интернете – это "переход на Web-страницу". На самом общем уровне это предполагает совместную работу пары приложений:

  • Web-браузера, такого как Firefox или Internet Explorer, который показывает в удобной для человеческого восприятия форме запрашиваемую страницу, которую он получает от…
  • Web-сервера, находящегося, как правило, на удалённой машине, который отвечает на запрос страницы потоком данных в формате HTML или аналогичном.

С браузерами имеют дело Web-пользователи, которые подходят к их выбору и анализу с надлежащей тщательностью. Напротив, серверы видны только техническому персоналу сайтов. Более того, хотя существует множество различных Web-серверов, около 90% всех сайтов, согласно недавним исследованиям Netcraft, работают всего на двух из них - Apache и Internet Information Server (IIS). Оба эти сервера – тщательно проработанные продукты, обладающие не только очень длинным списком встроенных возможностей, но и процветающим "вторичным рынком" книг, дополнений, консультаций, провайдеров и т.д. Надо ли вновь изобретать обычное колесо?

Да. Web-сервер оценивается по целому ряду важнейших параметров:

  • Эффективность : как быстро он отвечает на запрос?
  • Масштабируемость : продолжает ли сервер работать надёжно, когда к нему одновременно обращаются много пользователей?
  • Безопасность : совершает ли сервер только те операции, которые должен? Какие возможности он предлагает для аутентификации пользователей и шифрования потока обмена информацией? Делает ли его использование более уязвимыми соседние приложения или хосты?
  • Работоспособность : какие у сервера режимы отказа и аварийные ситуации?
  • Соответствие стандартам : поддерживает ли сервер соответствующие RFC?
  • Гибкость : можно ли настроить сервер для принятия большого количества запросов или динамических страниц, требующих значительных вычислений, или сложной аутентификации, или...?
  • Требования к платформе : на каких платформах возможно использование сервера? Предъявляет ли он особые требования к аппаратной платформе?
  • Управляемость : легко ли установить и обслуживать сервер? Совместим ли он с организационными стандартами по ведению журналов, аудиту, оценке затрат и т.д.?

Apache и IIS не могут оптимизировать так много критериев одновременно. В принципе ясно, что нишевые продукты могут превзойти лидеров рынка по крайней мере в одной-двух из этих характеристик.

Самое интересное в лёгких Web-серверах, то, почему они заслуживают такого обзора, как этот – это их далеко не теоретическая конкурентоспособность. Внимательное исследование показывает, что они могут предложить очень многое и за счёт этого успешно конкурировать с Apache и IIS даже во многих обычных ситуациях. Хотя разумно было бы предположить, что лидеры рынка тщательно оптимизированы, чтобы быть непобедимыми (например) в производительности, многие мелкие конкуренты работают быстрее при простом отображении статических Web-страниц. Если вы проделаете свои собственные тесты с этими Web-серверами, у вас возникнет чувство, что вы случайно оказались на гоночном треке на карте и каким-то непостижимым образом обгоняете «порше» и «вайперы». И это еще не всё: временами лёгкие Web-серверы дополняют своих больших братьев, а не только соревнуются с ними. Даже если вы знаете, что будете использовать Apache, иногда удается получить от него гораздо больше, объединив его с лёгким партнёром. Часто наилучшее решение состоит в кооперации между двумя или более Web-серверами.

Лёгкость Web-сервера

"Лёгкость", на которой фокусируется этот обзор – это скорее субъективная характеристика, как "искусство" или "аромат". Обычно "лёгкий" подразумевает простой, легко инсталлируемый, хорошо налаженный, нетребовательный и устойчивый – меньшего размера и менее сложный, чем Apache и IIS, которые в попытке удовлетворить свой большой рынок превратились в довольно громоздкие конструкции. Из-за сложности и размера мы исключаем из рассмотрения Java Web Server, AOLserver и Zeus, несмотря на их интригующую переносимость и производительность.

Достаточно лёгкие серверы открывают возможности, недоступные лидерам рынка и другим "тяжёлым" альтернативам. К примеру, весь сервер может поместиться в одном файле. Это удобно для разработчика, так как позволяет носить с собой все инструменты, которые нужны ему для продуктивной работы; даже если вы используете на вашем производственном сервере Apache, вы можете сидеть в гостиничном номере и экспериментировать с новыми идеями, запуская их на лёгком сервере, инсталляция которого занимает секунды. Также из-за своей нетребовательности лёгкие серверы успешно функционируют на машинах, которые просто не могут выдержать тяжесть IIS.

Упаковка в один файл

Упаковка в один файл

Apache требует аккуратной инсталляции многих файлов, разбросанных по нескольким каталогам. Контраст с описанными ниже Web-серверами, некоторые из которых помещаются в одном исполняемом файле, разителен. Одна из специальностей моего работодателя, Phaseit, – развёртывание и сборка установочных пакетов, и мы умеем сделать инсталляцию Apache на вид проще, чем обычно. Но даже когда мы используем наш лучший способ, всё-таки есть огромная разница в "следах" от Apache или IIS или лёгких серверов: первые просто занимают много места.

Маленькие лёгкие Web-серверы также неплохо работают на машинах малой производительности. В нашей собственной компании (Phaseit – см. ) мы используем специализированное оборудование, работающее на промышленных компьютерах в удалённых системах, в жёстких условиях или в условиях недостаточного электропитания. В этих ситуациях большим преимуществом является возможность обрабатывать Web-страницы каким-то приложением, которое не требует большой производительности или пространства на диске; это значит, что наши машины могут иметь встроенные доступные через Web управляющие консоли, без сложностей разработки и накладных расходов, характерных для Apache.

Почти все лёгкие Web-серверы имеют в той или иной степени открытый исходный код. Если нам требуется особое поведение Web-сервера, то описанные ниже серверы настолько малы, что их легко понять и, следовательно, усовершенствовать (есть лишь пара исключений). Эти Web-серверы – отличный исходный материал для проектов, в которых Web-серверы встраиваются в специальное ли оборудование или в специфические приложения, предназначенные для работы на компьютерах общего назначения. Они также широко используются на обычных Web-сайтах:

Вот пример удобства лёгких серверов для разработчиков: в нашей компании мы имеем дело со специальным оборудованием для офисной телефонии. С ним используется специализированное программное обеспечение, которое работает как обычное Linux®-приложение. С помощью всего одного дополнительного файла и небольшой настройки init.d легко добавить высокоэффективную "Web-консоль", которая обеспечивает управляющий интерфейс для аппаратного и программного обеспечения. Конечные пользователи получают возможность отслеживать и конфигурировать свою аппаратуру из любого браузера без установки специального оборудования и других сложностей, которые были характерны для "вертикального" оборудования.

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

Лёгкие серверы играют свою роль даже в реальных вычислительных центрах, включая перечисленные выше солидные сайты и не только их. Особо высокопроизводительные сайты сегментируют свои операции, чтобы извлечь максимальную выгоду из кэширования, прокси-серверов и т.д. Сайт на основе Apache, к примеру, может иметь архитектуру, в которой медленно изменяющиеся изображения доставляются посредством «минималистского» Web-сервера из выделенной файловой системы. То, что видит в действительности конечный пользователь – это результат командной работы Apache и одного или нескольких дополнительных Web-серверов, каждый из которых играет роль, в которой он превосходит остальных. Такая конструкция может дать очень быстрые результаты с минимальными затратами на вычисления.

Цели и средства

Хотя лёгкие Web-серверы имеют много общего, внутри данной категории есть и различия. Большинство серверов написаны на C, но среди серверов, которые я тестировал, есть и ряд успешных реализаций на других языках, в том числе на Erlang, Java, Lisp, Lua, Perl, Python и Tcl. Если вы предпочитаете какой-либо язык, вы, возможно, найдёте Web-сервер, написанный на нем.

Для того чтобы выбрать "редкий" язык, может быть множество специфических причин:

  • Образование: работа с лёгким Web-сервером – это серьёзная, но не запредельная задача. Это хороший способ получить опыт работы с языком.
  • Кооперация: в то время как лёгкий Web-сервер, написанный на С, обычно укладывается в 10-50 килобайт, а исполняемые файлы более высокоуровневых языков занимают от 100 килобайт до нескольких мегабайт, исходный код для полного Web-сервера на языке высокого уровня может занимать всего несколько тысяч байт. Такой небольшой код намного легче использовать совместно с коллегами, чем модифицировать Apache.
  • Исследование: языки высокого уровня делают облегчают эксперименты – например, для добавления новых возможностей HTTP/1.1 может потребоваться всего несколько дополнительных строчек кода. Эти лёгкие серверы – удобный экспериментальный материал.
  • Модификация: добавление HTTP-сервера к существующему приложению, уже написанному на языке высокого уровня, может потребовать увеличения исходного кода всего на несколько строк.

Хорошим примером здесь может служить Athana . Это Web-сервер, написанный на Python. Он поддерживает HTTP multipart (uploading), сессии, cookies и многое другое. Существующий в настоящее время в версии 0.2.1, Athana пока помещается в одном прекрасно организованном исходном файле.

Как уже говорилось, возможности различных лёгких Web-серверов также варьируются, более или менее независимо от использованного языка. Все лёгкие Web-серверы меньше и конфигурируются легче, чем Apache. Некоторые из них быстрее, чем Apache, некоторые намного быстрее; в других упор сделан на безопасность, бесперебойную работу при больших загрузках, расширяемость или экономию памяти. В любом случае в них скорее всего можно полностью разобраться, что уже нереально для Apache.

Какие конкретные продукты стоят за этими возможностями? Даже ограничившись "лёгкими" серверами, мы получаем необозримо огромный выбор. Рассмотрим эти серверы по подкатегориям: ультралёгкие, особо защищенные, использующие особый язык и так далее.

Среди этих категорий я особенно люблю ультралёгкие Web-серверы – те, которые намного меньше, чем Apache. Приложения такого размера могут уместиться в голове обычного человека; их работу можно представить себе систематически и строго, чтобы строго доказать их безопасность или масштабируемость. К числу очень маленьких Web-серверов относятся:

  • Cheetah Server , содержащий менее тысячи строк на C.
  • DustMote , очень маленький Web-сервер, реализованный в одном Tcl-исходнике размером примерно 3000 байт.
  • fnord занимает менее 20K, в зависимости от платформы и конфигурации. Несмотря на маленький размер, он поддерживает виртуальный хостинг, CGI и keep-alive.
  • ihttpd , имея менее 800 строчек C, умеет обслуживать страницы, включая CGI, посредством inetd .
  • поддерживает CGI, насчитывая при этом всего лишь 600 строк на C.
  • Scrinchy , несмотря на маленький размер - около 30 KB - поддерживает примечательно много языков сценариев, включая специализированный стековый язык под названием Sy.
  • ZWS показывает, как можно написать содержательное приложение – в данном случае сервер HTTP 0.9+ – немногим более чем из 500 строк хорошо откомментированного zsh (!).

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

  • cghttpd – минимальный Web-сервер, который можно рассматривать как эксперимент по использованию асинхронных средств, доступных в ядрах Linux серии 2.6.
  • darkhttpd – быстрый однопоточный сервер HTTP/1.1.
  • Gatling специально разработан для высокой производительности. Поддерживает FTP, IPv6, виртуальный хостинг, CGI и т.п.
  • – модуль ядра Linux, который обеспечивает выполнение HTTP-демона.
  • lighttpd – пятый по популярности Web-сервер в мире (и его доля растет!). Он оптимизирован под большое количество одновременных соединений: "Типичный сценарий – использование lighttpd как сервера, разгружающего основной сервер, для выдачи статического контента..."
  • LiteSpeed Web Server – коммерческий лёгкий Web-сервер, в котором особый упор сделан на производительность и безопасность. LiteSpeed Technologies Inc. заявляет об ускорении в шесть раз для статического контента и несколько более скромных показателях для интерпретируемых страниц.
  • , известный также как tjws - написанный на Java Web-сервер, который обрабатывает сервлеты, JSP и тысячи параллельных соединений, занимая 77 килобайт. Его автор характеризует его так: "на 10% быстрее, чем Apache 2.x."
  • Yaws – высокопроизводительный сервер HTTP/1.1, написанный на Erlang.

Многие Web-серверы реализованы как классы или библиотеки, разработанные для встраивания в большие приложения. Среди них особенно интересны:

  • EHS – "встраиваемый HTTP сервер," класс C++, разработанный для встраивания в большие C++ приложения; и
  • Embedded TCL Web Server , простейший Web-сервер, поддерживающий SSL и Basic Authentication и при этом фантастически быстрый – по замерам автора, не менее быстрый, чем lighttpd и AOLserver. Содержит меньше сотни строк Tcl.

На языке Python реализованы несколько Web-серверов, которые заполняют необычные ниши, в том числе.

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

Что понимают под понятием веб сервер? Совокупность веб серверов является основой Интернета. Не будь их, не было бы всемирной паутины. Пользователи просто не смогли бы общаться друг с другом, отыскивать нужную им информацию, заводить и поддерживать свои сайты и блоги. Веб серверами могут являться компьютеры или особые программы, которые исполняют роль сервера.

Функции веб сервера

Главная задача веб сервера принимать HTTP-запросы от пользователей, обрабатывать их, переводить в цифровой компьютерный код. Затем выдавать HTTP-ответы, преобразуя их из миллионов нолей и единичек в изображения, медиа-потоки, буквы, HTML страницы.

Любой веб сервер, для удобства его использования пользователями, должен иметь удобный веб-браузер. Он передает веб серверу запросы, преобразованные в URL-адреса интернет — ресурсов.

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

Для чего нужен веб сервер?

Как уже становится ясно из вышесказанного, веб сервер нужен всем, кто пользуется сетью Интернет для обмена информацией. Однако обращаться к нему приходится по большому счету не человеку, а программам и устройствам. Например, антивирусные программы часто просят сервер отыскать в сети и обновить свои базы данных. Активно сотрудничают с веб серверами мобильные телефоны, телевизоры и прочие устройства, которые имеют доступ в Интернет. При этом можно программы настроить на автоматическое обновление. Тогда участие пользователя в данном процессе будет практически ненужно. Но некоторые обновляющиеся базы данных все же лучше контролировать самостоятельно.

Самые известные веб серверы

Наиболее известными и распространенными веб серверами являются Microsoft IIS и Apache. Самым популярным из них является Apache. Его программное обеспечение используется более чем на 60% всех существующих. Во многом это стало возможным благодаря тому, что Apache является бесплатным. Разработчики постоянно анализируют ошибки своего продукта и устраняют их. Недостаток программы в том, что по большому счету она предназначена для профессиональных программистов и пользователей, поэтому обслуживать и настраивать ее достаточно тяжело.

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

И Apache и IIS отлично работают со многими операционными системами, например с Mac OS, Linux, различными модификациями Microsoft Windows и многими другими. Эти два веб сервера стабильны в работе, имеют хорошую скорость, к ним можно подключить дополнительные модули.

Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

Подписаться

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


Больше видео на нашем канале - изучайте интернет-маркетинг с SEMANTICA

Любой компьютер можно сделать сервером. Для этого нужно установить специальную оболочку.

Требования к технической части определяются количеством размещенных ресурсов и требованиями к скорости. Чем они больше, тем мощнее должен быть компьютер.
Чтобы было понятно, приведем аналогию. Вы заходите в библиотеку и просите выдать вам книгу. Библиотекарь находит нужную и передает вам. Библиотека - это сервер, в ней хранятся все данные. Библиотекарь - это оболочка, которая приняла запрос и направила ответ. Вы - клиент.
Можно отправить библиотекаря за дополнительной информацией – аналогично щелчку по ссылке. Разница в том, что один и тот же ресурс в интернете могут одновременно читать неограниченное число пользователей.
Обслуживание клиента производится по схожему принципу: приходя за книгой, мы можем задать вопрос библиотекарю (поисковая система) или заглянуть в указатель (ЯндексКаталог). Это помогает найти нужную информацию.

Что делает веб-сервер

Его главная задача – хранение информации. Страницы, файлы, изображения, текстовый контент.
Задачи:

  • Получать запросы.
  • Запускать программы на специальных языках программирования (серверных).
  • Формировать веб страницы.
  • Отправлять их назад пользователю.
  • Защищать информацию.
  • Проводить идентификацию посетителей.
  • Вести журнал обращений.
  • Обслуживать запросы других типов: mailto, и т.д.

Чтобы понять, как работает веб-сервер, надо иметь представление о принципах передачи информации в сети. В основе лежат правила, называемые протоколами: любой URL начинается с указания типа (ftp, http://, https:// и пр.).
Hyper Text Transfer Protocol – протокол передачи . Страницы сайта всегда имеют вид гипертекстового документа. Это конечный результат работы любой серверной или клиентской программы.

  • Когда пользователь вводит адрес или нажимает ссылку, браузер передает запрос, кодируя информацию по этим правилам.
  • Хост, к которому привязан этот адрес, запускает программы сервера. Каждая из них выполняет свои функции.
  • Полученные данные расшифровываются, команды выполняются.
  • Формируется гипертекст, кодируется и отправляется обратно.
  • Браузер получает ответ, преобразовывает код в html и показывает на экране страницу.

Что нужно для веб-сервера

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

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

Когда решен вопрос с сервером, надо привязать к нему статический IP-адрес.

Сайт становится доступен на веб-сервере после того, как зарегистрировано доменное имя, выполнено преобразование адресов службой DNS - связывание IP-адреса (например, 111.111.111.111) и доменного имени (www.site.com).

Самые распространенные сервера

Apache

Это бесплатный, свободно распространяемый продукт, у которого есть масса преимуществ:

  • Постоянная поддержка разработчиков.
  • Модули для работы с серверными языками программирования PHP, Perl, Python, Ruby, ASP и т.д.
  • Открытый код. Доработкой под свои нужды занимаются разные программисты. Например, русскоязычное сообщество адаптирует его к русской кодировке.
  • . Изначально был создан под Unix, но сейчас поддерживается Windows, Mac OS, BSD, Linux, OS/2 и Novell NetWare.
  • Безопасность.

При инсталляции укажите имя вашего хоста, например, localhost. В папку htdocs, которая лежит внутри папки Apachex.x (где x.x – номер версии) скопируйте любую html-страницу. Или создайте ее в блокноте, введя любой текст и сохранив с расширением html.

Когда в папке появился файл, откройте браузер и наберите адрес: localhost://ИМЯ СТРАНИЦЫ.html. На экране появится ваш текст – страница открыта с сервера. Если вы увидели ошибку «Не удается получить доступ к сайту», значит не запущен Apache. Его значок находится в трее.
Нажмите на него и выберите «Play». После этого все заработает.

NGNIX

Доля работающих на нем активных площадок составляет 21,13% (исследования Netcraft). Его в основном используют крупные компании и профессиональные разработчики: Yandex, Mail.ru, Rambler и пр. NGNIX выдерживает огромную нагрузку посетителей, надежен, безопасен и продуман.
Распространяется свободно, но появились платные версии Plus, стоимость от 2,500 $.

IIS

Его известность обеспечена громким именем разработчика. Представляет собой набор веб служб и интегрирован с Windows. Родной платформой программирования является ASP.NET, но можно внедрить и альтернативу, например, РНР.

Для полноценного хостинга требуется установка серверной операционной системы от Microsoft – Windows Server. 6-я версия вообще не была предназначена для хостинга, полноценная поддержка началась в 7-й. Приобретается он автоматически вместе с операционной системой и зависит от ее характеристик.

Установочные пакеты

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

  • OpenServer. Портативная среда разработки, включающая множество баз данных, языков программирования и их версий, а также дополнительные сервисы. Например, интерфейс работы с БД PhpMyAdmin. На сегодняшний день это самый популярный инсталляционный набор. Работает даже с флешки. Бесплатно скачивается на низкой скорости. За 100 рублей скорость увеличивается в разы.
  • Xampp. Активно поддерживаемый пакет: Apache, Php, Perl, MariaDB и пр. Имеет панель управления. Скачивается бесплатно.
  • . Очень удобный набор всех нужных инструментов, включающий Apache, PHP, MySQL, PhpMyAdmin. К сожалению, последняя версия включает устаревшие дистрибутивы. В целом для обучения подойдут и они. Судя по форуму проект больше не поддерживается.