• Как работают веб-сервера. Принципы функционирования веб-сервера

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

    Допустим, пользователь сидит за компьютером, просматривает WEB страницы, и тут ему звонит друг и говорит:

    «Знаешь, я только что прочел классную статью! Введи этот URL и прочти сам. Это страница ».

    Пользователь вводит продиктованный URL в и нажимает кнопку «Перейти». И о чудо, независимо от того, где находится этот URL, страница появляется на экране монитора.

    Следующая схема на самом простом уровне дает представление о последовательности событий, в результате которых выбранная страница попадает на экран монитора:

    Браузер пользователя осуществил соединение с WEB сервером, запросил нужную страницу и получил ее.

    Что происходит незаметно для пользователя

    1. Браузер разделил URL на три части:
    • Протокол («http»).
    • Имя сервера («сайт»).
    • Имя файла («web server.htm»).
  • Браузер связался с сервером имен и перевел имя сервера « » в IP адрес, который используется для связи с серверной машиной.
  • Затем браузер, используя полученный IP адрес, связался с нужным сервером по порту 80 (О портах поговорим далее в этой статье).
  • В соответствии с протоколом HTTP браузер отправил на сервер запрос GET («ПОЛУЧИТЬ»), требующий отправки файла « /web server.htm». (Заметим, что браузер может отправить вместе с запросом GET куки - подробности смотрите в статье о том, как работают куки.)
  • Затем сервер отправил браузеру текст HTML для WEB страницы. (В заголовке страницы, отправляемой с сервера браузеру, могут также иметься куки).
  • Браузер считал теги HTML и отобразил страницу на экране монитора. Если вы не интересовались подробностями этого процесса раньше, то встретите в описании много новых терминов. Чтобы разобраться в деталях всего процесса, нужно знать, что такое IP адреса, порты, протоколы… Ниже будет подробно разъяснено значение этих терминов.
  • Итак, что же такое «Интернет»? - это миллионы компьютеров, соединенных в огромную компьютерную сеть. Благодаря сети, компьютеры могут поддерживать связь между собой. Домашний компьютер можно подключать к Интернету, используя модем телефонной линии, устройства, работающие по технологии DSL либо кабельный модем. Эти устройства устанавливают связь с поставщиком услуг Интернета (ISP). Компьютеры компании или университета обычно снабжаются платами сетевого интерфейса (network interface card, NIC), которые подключают их непосредственно к соответствующей локальной сети (LAN). Компания может подключить свою локальную сеть к оборудованию поставщика интернет-услуг, используя высокоскоростную телефонную линию, например, линию T1. По линии T1 можно передавать приблизительно 1.5 миллиона бит в секунду, в то время как по обычной линии с использованием модема можно передавать всего от 30 000 до 50 000 бит в секунду.

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

    Клиенты и серверы

    В общем случае все машины в Интернете можно разделить на два типа: серверы и клиенты. Машины, предоставляющие услуги другим машинам, называют серверами (это, например, WEB серверы или FTP серверы). Машины, используемые для связи с серверами с целью получения услуг, называют клиентами. Когда пользователь подключается к Yahoo! по адресу yahoo.com , чтобы просмотреть страницу, Yahoo! выделяет машину (а возможно, кластер очень больших машин), для использования в Интернете с целью обслуживания запроса этого пользователя. Таким образом, Yahoo! предоставляет пользователю услуги своего сервера. Машина пользователя, с другой стороны, скорее всего, никому другому в Интернете услуги не оказывает. Поэтому ее называют пользовательской машиной, или клиентом. Может так быть, и это обычная практика, что одна машина в то же время является и сервером, и клиентом, однако в нашем случае будем считать, что большинство машин выполняют функции либо сервера, либо клиента.

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

    Доменные имена и их покупка

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

    Имя сайт состоит из трех частей:

    Регистраторы

    Доменными именами внутри домена .com занимается регистратор VeriSign. VeriSign также контролирует доменные имена .net . Другими доменами (такими как PRO, BIZ и ORG) управляют другие регистраторы (а именно RegistryPro, NeuLevel и Public Interest Registry). VeriSign создает имена верхнего уровня и обеспечивает уникальность всех имен в пределах домена верхнего уровня. Кроме того, VeriSign содержит контактную информацию каждого сайта и располагает базой данных о пользователях. Имя хоста создается компанией, предоставляющей для домена. Очень распространено имя хоста «www», однако в настоящее время во многих местах его либо не указывают, либо заменяют другим именем хоста, указывающим на определенное место на сайте. Например, в доменном имени энциклопедии Encarta компании Microsoft, encarta.msn.com, «encarta» обозначает имя хоста вместо www.

    Чтобы все эти машины правильно работали, каждая машина в Интернете получает уникальный адрес, который называется IP адресом. IP поддерживает интернет протокол, а адреса являются 32-битными числами, которые, как правило, представляются в виде четырех «октетов» в «десятичном формате с разделительными точками». Типичный IP адрес имеет приблизительно такой вид: 216.27.61.137

    Четыре числа в IP адресе называются октетами, поскольку они могут иметь значения от 0 до 255, что составляет 2 в восьмой степени возможностей на каждый октет.

    Уникальный IP адрес

    Каждой машине в Интернете присваивается уникальный IP адрес. Серверам присваиваются статические IP адреса, которые меняют редко. Домашним компьютерам, осуществляющим связь с Интернетом, IP адрес часто присваивается поставщиком услуги Интернета во время соединения. Этот IP адрес в течение данной сессии является уникальным - при следующем соединении машины ей может быть присвоен другой адрес. Таким образом, поставщику услуги Интернета требуется выделять только по одному IP адресу для каждого модема на время его работы в Интернете, а не отдельные адреса для каждого клиента.

    Пользователь, машина которого работает под управлением ОС Windows, может получить большое количество информации об Интернет-соединении своего компьютера, включая текущий IP адрес и имя хоста, если воспользуется командой WINIPCFG.EXE (IPCONFIG.EXE для Windows 2000/XP). В машине под UNIX, чтобы узнать IP адрес машины, нужно напечатать в командной строке nslookup, а также имя этой машины, например, SD 1 - то есть, все вместе это будет выглядеть так: «nslookup sd1.su». Имя своей машины можно определить с помощью команды hostname. (Более подробные сведения о IP адресах можно получить из информации Комитета по цифровым адресам в Интернете).

    Машине, работающей в Интернете, для связи с сервером обычно нужен только IP адрес. Например, можно набрать в браузере URL 209.116.69.66 и связаться с машиной, на которой располагается WEB сервер сайта PCWork. Для связи с некоторыми серверами одного только IP адреса недостаточно, однако для большинства больших серверов этого вполне хватает - далее этот вопрос будет освещен более подробно.

    Инструкция

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

    Когда на веб-сервере создается сайт, то ему присваивается IP-адрес. IP – аббревиатура, «интернет-протокол». IP-адрес состоит из десяти цифр с точками (например, 127.21.61.137). Для того чтобы сделать запрос у веб-сервера о том или ином сайте, браузер на компьютере сначала должен узнать IP-адрес этого сайта. Если этой информации нет в кэше браузера, то он делает соответствующий запрос у DNS-сервера через интернет.

    Затем DNS-сервер сообщает браузеру, по какому IP-адресу расположен данный сайт. После этого браузер запрашивает URL-адрес сайта у веб-сервера. Сервер откликается, отправляя запрашиваемую страницу. Если этой страницы не существует, сервер отправляет сообщение об ошибке. Браузер получает сообщение и отображает его.

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

    Веб-сервер обычно содержит информацию о более чем одном сайте. Многие хостинговые компании предоставляют место сотням и даже тысячам веб-сайтам на одном веб-сервере. Каждому веб-сайту обычно приписывается свой уникальный IP-адрес. Этот адрес расшифровывается DNS-сервером с целью получения доменного имени.

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

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

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

    Каждый веб-сервер согласуется с протоколом HTTP. Самая элементарная форма взаимодействия, понимаемая сервером HTTP, содержит всего одну команду: «Получить». Первоначально протокол ограничивался тем, что сервер отправлял клиенту запрашиваемый файл и отключался. Позднее протокол был усовершенствован, и клиенту стал отсылаться весь URL.

    Когда пользователь печатает в строке браузера название ссылки URL, то браузер разбивает название на три части: протокол, название сервера, название файла. Браузер получает информацию об IP-адресе сайта через название сервера, и с его помощью подключается к компьютеру-серверу. Затем браузер соединяется с веб-сервером по этому IP-адресу через порт. Следуя протоколу, браузер посылает серверу команду «Получить». Сервер отправляет текст в формате HTML на веб-страницу. Браузер считывает HTML- тэги и форматирует страницу для экрана компьютера-клиента.

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

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

    Веб-сервер (web-server ) – это сервер, отвечающий за прием и обработку запросов (HTTP-запросов) от клиентов к веб-сайту. В качестве клиентов обычно выступают различные веб-браузеры. В ответ веб-сервер выдает клиентам HTTP-ответы, в большинстве случаев – вместе с HTML-страницей, которая может содержать: всевозможные файлы, изображения, медиа-поток или любые другие данные.

    Также веб-сервер выполняет функцию исполнения скриптов, например, таких как CGI, JSP, ASP и PHP, которые отвечают за организацию запросов к сетевым службам, базам данных, доступу к файлам, пересылке электронной почты и другим приложениям электронной коммерции.

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

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

    HTTP (англ. HyperText Transfer Protocol – протокол передачи гипертекста) – это сетевой протокол прикладного уровня передачи данных. Основным принципом протокола HTTP является технология «клиент-сервер», обеспечивающая взаимодействие сети и пользователя.

    В случае малой организации веб-сервер может быть целостной системой, которая будет состоять из: HTTP-сервера – служит для запросов к веб-страницам; FTP-сервера – применяется для загрузки файлов через Интернет; NNTP-сервера – выполняет доступ к группам новостей; SMTP-сервера – для электронной почты.

    История

    Изобретателем первого веб-сервера считается британский ученый Тим Бернерс-Ли. Работая с 1980 года в Европейской лаборатории ядерных исследований (фр. Conseil Européen pour la Recherche Nucléaire, CERN) консультантом по программному обеспечению, он приступил к своим разработкам. В Женеве он для своих собственных потребностей разработал программу «Энквайр» (англ. enquire – спрашивать), которая использовала случайные ассоциации для хранения данных и заложила концепцию для основы Всемирной паутины.

    В 1989 году Тим Бернерс-Ли, работал над внутренней сетью организации CERN и предложил основать глобальный гипертекстовый проект, который заключался в публикации гипертекстовых документов, связанных между собой гиперссылками. Внедрение этого проекта, по его мнению, облегчило бы объединение, поиск и обмен информацией для ученых CERN. Для осуществления проекта Тим Бернерс-Ли вместе со своими помощниками изобрел идентификаторы URI и URL, протокол HTTP, а также язык HTML. Все эти технологии теперь широко применяются в современном Интернете и без них уже не обойтись.


    В результате выполнения этого проекта Бернерс-Ли разработал первый в мире веб-сервер, называвшийся «httpd», а также первый в мире гипертекстовый веб-браузер для компьютера NeXT, получивший название WorldWideWeb (Всемирная паутина).

    Первый веб-браузер работал на платформе NeXTSTEP – объектно-ориентированной, многозадачной операционной системе, и был разработан с помощью Interface Builder. Интерфейс веб-браузера был очень простым, и почти вся информация отображалась в текстовом формате только лишь с несколькими изображениями. Помимо стандартного протокола FTP, Тим Бернерс-Ли использовал новый, изобретенный им, протокол HTTP. В период с 1991 по 1993 год Бернерс-Ли усовершенствовал технические свойства своих новых разработок: идентификаторов URI и URL, протокола HTTP и языка HTML и опубликовал их. Позже веб-браузер был переименован в "Nexus", чтобы не возникло путаницы с названием операционной системы, на которой был разработан браузер и его названием.

    Первый в мире веб-сервер и первый веб-браузер работали на персональном компьютере NeXTSTEP; сейчас этот компьютер выставлен в музее CERN (Микрокосм).

    Первый в мире веб-сайт Тим Бернерс-Ли разместил по адресу http://info.cern.ch ; сейчас этот сайт хранится в архиве. Первый сайт появился в Интернете 6 августа 1991 года. На этом веб-сайте было дано:

    • описание Всемирной паутины;
    • инструкция правильной установки веб-сервера;
    • информация о том, как приобрести веб-браузер;
    • прочая техническая информация.

    Этот сайт также представлял собой первый в мире интернет-каталог. Бернерс-Ли разместил на нем список ссылок на другие сайты и регулярно обновлял его.

    12 декабря 1991 года в Стэнфордском центре линейного ускорителя (SLAC) в США был установлен первый в мире веб-сервер.

    Основные и дополнительные функции

    Все основные и дополнительные функции веб-сервера:

    • Прием запросов от веб-браузеров по протоколу стандарта HTTP с использованием сетевых протоколов TCP/IP;
    • Выполнение поиска и отсылки файлов с гипертекстом или каких-либо документов в браузер по протоколу HTTP;
    • Обслуживание и обработка запросов, типа: mailto, FTP, Telnet и т. п.;
    • Запуск прикладных программ на веб-сервере с последующей передачей и возвратом параметров обработки через стандарт интерфейса CGI;
    • Работа и обслуживание навигационных карт изображений (Image map);
    • Администрация и оперативное управление сервером;
    • Авторизация пользователей и их аутентификация;
    • Ведение регистрационного журнала обращений пользователей к различным ресурсам;
    • Автоматизированная работа веб-страниц;
    • Поддержка страниц, которые генерируются динамически;
    • Поддержка работы протокола HTTPS для защищенных соединений с клиентами.

    Описание работы веб-сервера

    Веб-браузеры поддерживают связь с веб-серверами с помощью протокола передачи гипертекстовых сообщений (HypertextTransferProtocol, HTTP). Это простой протокол запросов и ответов для пересылки информации с использованием протокола TCP/IP. Веб-сервер получает запрос, обнаруживает файл, посылает его браузеру, а затем разрывает соединение. Графическая информация, которая имеется на странице, обрабатывается таким же образом. Далее настает очередь веб-браузера – вывести на монитор пользователя загруженный из сети HTML-документ.

    Кроме HTML-страниц и графики, веб-серверы могут хранить любые файлы, в том числе текстовые документы, документы текстовых процессоров, видеофайлы и аудиоинформацию. На сегодняшний день, если не учитывать анкет, которые заполняют пользователи, основная часть веб-трафика передается в одном направлении – браузеры считывают файлы с веб-сервера. Но это положение изменится после общего принятия описанного в проекте HTTP 1.1 метода PUT, который позволяет записывать файлы на веб-сервер. Сегодня метод PUT используется в основном пользователями, создающими веб-страницы, но в перспективе он может пригодиться и остальным пользователям для обратной связи с информационными центрами. Запросы методом PUT намного проще, чем обыкновенная POST загрузка файлов на веб-сервер.

    На веб-сервере также выполняют свою работу различные приложения, наибольшую популярность среди которых получили поисковики и средства связи с базами данных. Для разработки этих приложений применяются такие стандарты, как общий шлюзовой интерфейс (CommonGatewayInterface, CGI), языки сценариев JavaScript, а также языки программирования Java и VisualBasic. Кроме интерфейса стандарта CGI, некоторые фирмы-разработчики веб-серверов создали интерфейсы прикладного программирования (API) такие как, например, Netscape Server API и Internet Server API, которые созданы компаниями Microsoft и Process Software AG. Эти интерфейсы позволяют разработчикам непосредственно обращаться к конкретным функциям веб-сервера. Некоторые веб-серверы обладают связующим программным обеспечением (middleware) для подключения к базам данных, работа с которыми может потребовать профессиональных знаний в программировании.

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

    Обзор веб-серверов

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

    Большинство веб-серверов инсталлируется легко и быстро.

    Самая сложная часть процесса инсталляции – это проведение конфигурации нескольких имен доменов на одном физическом устройстве или другими словами организация виртуальных серверов.

    Веб-серверы имеют средства для управления информационным модулем, характеризующие общую организацию веб-узла, а также обладают инструментами для проверки правильности внутренних и внешних гипертекстовых связей. Пакет LiveWire фирмы Netscape Communications, который поставляется вместе с Novell Open Enterprise Server (OES) и дополнительно предлагаемый с сервером FastTrack, обладает утилитой управления узлом, которая формирует список всех связей выбранной страницы. Эта утилита также предоставляет общий перечень всех некорректных связей, которые обнаруживает. Программа WebView компании «O"Reilly & Associates» обладает такой же функцией и может выводить на экран подробное дерево файлов, в котором все некорректные связи выделяются красным цветом.

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

    С увеличением популярности веб-серверов и все более широкого их применения в интрасетях, усиливается коммерческая активность в Интернете, поэтому возрастает важность защиты информации. Чаще всего системы обеспечения безопасности веб-сервера оказываются или избыточными, или недостаточными для современных интрасетей. Если необходимо ограничить доступ к определенной информации внутри компании, то есть выбор между использованием незашифрованных паролей, которые передаются по каналам связи, и применением протокола SSL (англ. Secure Sockets Layer – уровень защищенных сокетов) – сложного и медленного метода, который используется для шифровки паролей и данных.

    Для того чтобы организовать работу отдельных пользователей и их групп могут быть использованы внутренние приложения сервера или определенные функции операционной системы. Для того чтобы организовать работу отдельных пользователей и их групп могут быть использованы внутренние приложения сервера или определенные функции операционной системы. В пакетной службе Microsoft IIS предусмотрено применение средств базовой сетевой ОС Windows NT.

    Пакет NetWare Web Server фирмы Novell, Inc. целиком интегрирован со службами адресных каталогов (NetWare Directory Services, NDS). Налаживать работу пользователей из общего центра удобно, но это может нести угрозу безопасности. Пароли распространяются по каналам связи в незашифрованном виде, и если их перехватят, то подвергнется риску не только веб-сервер, но и безопасность всей сетевой операционной системы.

    Разработка приложений – это одна из основных функций веб-сервера. Среда разработки приложений и инструменты подключения к базам данных очень важны для расширения возможности веб-сервера, поскольку разработка приложений зависит от различных своеобразных деталей интерфейса прикладного программирования (англ. application programming interface, API), а также от особенностей языков программирования или индивидуальных предпочтений программистов.

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

    Для малых корпоративных интрасетей лучше всего подойдет пакет Internet Information Server (IIS), созданный и распространяемый компанией Microsoft. IIS отличается достаточно простой инсталляцией и простыми настройками конфигурации. Этот пакет веб-сервера отлично интегрирован со средствами управления доступом, инструментом контроля параметров системы Performance Monitor (Системный монитор), а также с программой просмотра журнала событий Event Viewer. Еще веб-сервером IIS представляется несколько инструментов для динамической передачи информации из баз данных. IIS отличается очень высоким быстродействием. Компоненты IIS поддерживают такие протоколы, как: HTTP, HTTPS, FTP, NNTP, SMTP, POP3.

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

    Любой персональный компьютер, который подключен к сети Интернет, можно сделать веб-сервером, если установить на него специальное серверное программное обеспечение.

    Самые распространенные веб-серверы: Apache (компания Apache Software Foundation), IIS (компания Microsoft) и iPlanet server (от компаний Sun Microsystems и Netscape Communications Corporation). Сейчас на рынке программного обеспечения для веб-серверов, существует огромный выбор продуктов, как коммерческих, так и бесплатных.

    Одним из самых распространенных веб-серверов, является Apache от компании Apache Software Foundation. По ориентировочным подсчетам, он используется на 65% всех веб-серверов в мире. Одно из основных достоинств программного обеспечения Apache – бесплатное распространение. Разработчики регулярно устраняют найденные ошибки и предоставляют хорошую поддержку пользователей. Данный веб-сервер поддерживает большое количество модулей, утилит и дополнений. Поскольку с самого начала Apache разрабатывался как программное обеспечение для администраторов и опытных пользователей, то есть недостаток – сложность настройки и обслуживания для неопытных вебмастеров.

    Далее по популярности идет веб-сервер IIS от компании Microsoft. По данным компании Netcraft веб-сервер IIS составляет 12,46% от общего числа веб-серверов. Этот продукт входит в состав серверного программного обеспечения семейства Windows NT. Его основные преимущества – стабильность, высокая скорость работы, возможность подключения дополнительных модулей. Компания Microsoft стремится к тому, чтобы любой пользователь смог пользоваться ее продуктами без помощи специалистов, если ему нужно решить стандартные задачи. Поэтому система IIS очень проста в установке, настройке и обслуживании. Веб-сервер поддерживает технологию.NET, набирающую, в последнее время, популярность в среде разработчиков и профессиональных пользователей. Эти достоинства выводят веб-сервер IIS на новый уровень и можно ожидать, что его использование возрастет.

    Другие известные веб-серверы:

    • nginx - свободный веб-сервер и почтовый прокси-сервер, разрабатываемый Игорем Сысоевым. Простой, быстрый и надежный сервер. Работает в Linux и других Unix-подобных операционных системах, а также в Windows. Пользуется популярностью на крупных веб-сайтах;
    • lighttpd - свободный веб-сервер. Разработчик Ян Кнешке. Быстрый и безопасный веб-сервер. Работает в Linux и других Unix-подобных операционных системах, а также в Windows;
    • Google Web Server - веб-сервер, который основан на Apache и используется компанией Google для организации своей веб-инфраструктуры;
    • Resin - свободный веб-сервер и сервер приложений для Java. Разработчик – компания Caucho Technology Inc.;
    • Cherokee - свободный веб-сервер, который управляется только через веб-интерфейс. Написан на языке программирования Си;
    • Rootage - веб-сервер, который написан на языке программирования Java. Работает в Linux и Windows;
    • THTTPD - простой, маленький, быстрый и безопасный веб-сервер. Разработчик компания ACME Labs Software.

    Клиенты веб-сервера

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

    • Веб-браузер, который установлен на стационарном персональном компьютере;
    • Веб-браузер, который установлен на КПК или другом переносном устройстве;
    • Мобильные телефоны и смартфоны, с помощью которых пользователь получает доступ к ресурсам веб-сервера по WAP-протоколу;
    • Различные программы, которые могут обращаться к веб-серверу самостоятельно для обновления либо получения другой информации. Пример – различные антивирусы, которые периодически обращаются к веб-серверу, чтобы обновить базу данных;
    • Разные цифровые устройства, а также некоторая бытовая техника.

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

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

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

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

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

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

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

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

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

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

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

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

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

    Введение

    Понятие « веб-сервер» может относиться как к аппаратной начинке, так и к программному обеспечению. Или даже к обеим частям, работающим совместно.

    1. С точки зрения "железа", « веб-сервер» - это компьютер, который хранит файлы сайта (HTML-документы, CSS-стили, JavaScript-файлы, картинки и другие) и доставляет их на устройство конечного пользователя (веб-браузер и т.д.). Он подключен к сети Интернет и может быть доступен через доменное имя, подобное mozilla.org .
    2. С точки зрения ПО, веб-сервер включает в себя несколько компонентов, которые контролируют доступ веб-пользователей к размещенным на сервере файлам, как минимум - это HTTP-сервер . HTTP-сервер - это часть ПО, которая понимает (веб-адреса) и HTTP (протокол, который ваш браузер использует для просмотра веб-страниц).

    На самом базовом уровне, когда браузеру нужен файл, размещенный на веб-сервере, браузер запрашивает его через HTTP-протокол. Когда запрос достигает нужного веб-сервера ("железо"), сервер HTTP (ПО) принимает запрос, находит запрашиваемый документ (если нет, то сообщает об ошибке ) и отправляет обратно, также через HTTP.

    Статический веб-сервер , или стек, состоит из компьютера ("железо") с сервером HTTP (ПО). Мы называем это « статикой» , потому что сервер посылает размещенные файлы в браузер « как есть» .

    Динамический веб-сервер состоит из статического веб-сервера и дополнительного программного обеспечения, чаще всего сервера приложения и базы данных . Мы называем его « динамическим» , потому что сервер приложений изменяет исходные файлы перед отправкой в ваш браузер по HTTP.

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

    Активное изучение

    Активное изучение пока не доступно. .

    Погружаемся глубже

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

    Хостинг файлов

    Прежде всего, веб-сервер должен содержать файлы веб-сайта, а именно все HTML-документы и связанные с ними ресурсы, включая изображения, CSS-стили, JavaScript-файлы, шрифты и видео.

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

    • всегда запущен и работает
    • всегда подключен к Интернету
    • имеет неизменный IP адрес (не все провайдеры предоставляют статический IP-адрес для домашнего подключения)
    • обслуживается третьей, сторонней компанией

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

    Как только вы решили проблему с хостингом, вам понадобится только загрузить свои файлы на ваш веб-сервер .

    Связь по HTTP

    Во-вторых, веб-сервер обеспечивает поддержку HTTP (англ. H ypert ext T ransfer P rotocol - гипертекстовый транспортный протокол ). Как следует из названия, HTTP указывает, как передавать гипертекст (т.е. связанные веб-документы) между двумя компьютерами.

    Протокол представляет собой набор правил для связи между двумя компьютерами. HTTP является текстовым протоколом без сохранения состояния.

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

    HTTP задает строгие правила взаимодействия клиента и сервера. Мы рассмотрим сам протокол HTTP в технической статье немного позднее. Пока достаточно знать об этих правилах:

    • Исключительно клиенты могут производить HTTP-запросы, и только на сервера . Сервера способны только отвечать на HTTP-запросы клиента .
    • При запросе файла по HTTP, клиент должен сформировать файловый .
    • Веб-сервер должен ответить на каждый HTTP-запрос, по крайней мере сообщением об ошибке.

    На веб-сервере HTTP-сервер отвечает за обработку входящих запросов и ответ на них.

    1. При получении запроса, HTTP-сервер сначала проверяет, существует ли ресурс по данному URL.
    2. Если это так, веб-сервер отправляет содержимое файла обратно в браузер. Если нет, сервер приложения генерирует необходимый ресурс.
    3. Если ничто из этого не возможно, веб-сервер возвращает сообщение об ошибке в браузер, чаще всего “404 Not Found”. (Это ошибка настолько распространена, что многие веб-дизайнеры тратят большое количество времени на разработку 404 страниц об ошибках .)

    Статический и Динамический контент

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

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

    Возьмем для примера страницу, которую вы сейчас читаете. На веб-сервере, где она хостится, есть сервер приложения, который извлекает содержимое статьи из базы данных, форматирует его, добавляет в HTML-шаблоны и отправляет вам результат. В нашем случае, сервер приложения называется Kuma , написан он на языке программирования Python (используя фреймворк Django). Команда Mozilla создала Kuma для конкретных нужд MDN, но есть множество подобных приложений, построенных совершенно на других технологиях.

    Существует так много серверов приложений, что довольно трудно предложить какой-то один. Некоторые серверы приложений заточены под определенные категории веб-сайтов, такие как блоги, вики-страницы или интернет-магазины; другие, называемые CMSs (системы управления контентом), более универсальны. Если вы создаете динамический сайт, потратьте немного времени на выбор инструмента, который соответствует вашим потребностям. Если вы не хотите изучать веб-программирование (хотя это увлекательно само по себе!), то вам не нужно создавать свой собственный сервер приложения. Это будет изобретением очередного велосипеда.

    Следующие шаги

    Теперь, когда вы познакомились с веб-серверами, вы можете:

    • прочитать насколько сложно делать что-либо в веб
    • узнать больше о разнообразии ПО, которое может пригодиться для создания веб-сайта
    • двигаться к практике: например, .