Строительство Интернета
АрхивСегодня можно с уверенностью сказать, что всемирная компьютерно-информационная сеть Интернет охватила не только весь западный мир, но и Россию. Еще год назад нельзя было и вообразить, чтобы в телевизионной или газетной рекламе в нашей стране было упоминание о загадочной странице в Интернете, теперь же это стало вполне обыденным явлением. Сейчас каждый Интернет-провайдер предлагает своим пользователям разместить свои домашние страницы (по-английски home page). Все знают, что эти страницы размещаются на так называемом Web-сервере, но не все знают, как это все работает.
Технология клиент-сервер
Что же происходит после того, как в окошке своего любимого Интернет-браузера вы написали строку http://www.cterra.com/index.html? А происходит следующее. Сначала ваш компьютер пытается получить из длинного имени, которое удобнее для человека, число (1). Затем компьютер пытается соединиться с указанным компьютером по полученному адресу (числу), используя протокол HTTP (Hyper Text Transfer Protocol). Если это удается, он направляет серверу команду с просьбой выдать файл с заданным именем. Сервер после получения этого запроса посылает требуемый файл. Если файла с этим именем на сервере нет, сервер посылает сообщение об ошибке.
Полученный файл обрабатывается Интернет-браузером клиентского компьютера.
Вся описанная и проиллюстрированная технология называется "технология клиент-сервер" и в настоящий момент применяется очень широко.
Что такое Web-сервер
Прежде всего, необходимо понимать, что Web-сервер - это программа, которая работает на компьютере. Как и любая серверная программа, Web-сервер ждет к себе обращений или запросов. Как только кто-то обращается с запросом, сервер моментально должен понять, что от него "хотят", и выполнить требуемый запрос. Как правило, от Web-сервера "хотят" файл, то есть требуемый файл надо отправить клиенту.
Время, которое проходит от момента получения запроса до времени начала реакции, называется временем реакции Web-сервера. Конечно же, у хорошего Web-сервера это время должно быть минимальным. Этого можно достичь двумя способами: либо оптимизировать программу, либо наращивать мощность компьютера, который используется как Web-сервер. Компьютер, на котором работает программа Web-сервер, тоже можно называть Web-сервером или WWW-сервером. Слова Web-сервер и WWW-сервер являются синонимами.
"Сложный" Web-сервер
Иногда кажется, что всего вышеописанного хватает для того, чтобы сделать полноценное представление в Интернете. Но со временем становится ясно, что это не совсем так.
Итак, страница с какой-то информацией создана и размещена на Web-сервере. Сразу же создателя страницы интересует, что надо сделать, чтобы узнать, сколько человек в мире прочитали его страницу. Ответ на этот вопрос очевиден. Каждый Web-сервер создает так называемый журнал, в котором записано, кто и в какое время соединялся с сервером и какие файлы с этого сервера загрузил.
Предположим, имеется программа, которая, используя этот журнал, подсчитывает, сколько всего людей увидело эту страницу.
После месяца нахождения страницы на сервере выясняется, что эта страница пользуется невероятным успехом. Понятно, что создатель захочет всем, заходящим на эту страницу в дальнейшем, показать неслыханную ее популярность.
Это означает, что каждый раз, когда какой-нибудь клиент требует рассматриваемую страницу, должна вызываться программа, которая, исходя из информации, зафиксированной в журнале обращений, подсчитывает, сколько людей увидело эту страницу, и полученный результат показывает на той же странице. Такой механизм существует в современном Web-сервере, и называется он Common Gateway Interface, или сокращенно CGI. С помощью этого интерфейса программа связывается с программой Web-сервер.
CGI-программа должна обладать определенными свойствами и работать по определенным простым правилам. Этот интерфейс поддерживают практически все Web-серверы. Необходимо отметить, что CGI-программы выполняются исключительно на сервере и на работу клиентского компьютера никак не влияют. Иногда удобно писать эти программы на скриптовых языках, таких как shell, perl и пр., а не на языках высокого уровня. Скриптовые языки чаще всего используются в операционной системе Unix. Поэтому CGI-программы чаще называют не программами, а скриптами.
Делаем свой сервер
Что же надо сделать, чтобы открыть свой Web-сервер?
В отличие от создания простой странички, которая делается в большей мере для самовыражения, разработка любого Web-сервера подразумевает одновременную работу по двум направлениям. Разработка содержания (по-английски content), которое готовят дизайнеры, художники, маркетологи, служба PR (служба по связи со средствами массовой информации). Имеется также технологическая часть, которой занимаются сетевые администраторы, программисты, сетевые инженеры. Оба направления очень важны для того, чтобы пользователи Web-сервера были удовлетворены работой с ним, ведь любой сервис делается, прежде всего, для пользователей. Только в этом случае Web будет иметь успех.
Чтобы понять, что такое хороший Web-сервер, надо пересмотреть не один десяток различных серверов, поработать с ними, поискать на них интересующую информацию, после этого у любого человека появляется свое мнение на сей счет. Рассмотрим техническую сторону WWW-сервера.
Прежде всего, необходимо иметь достаточно мощный или высокоскоростной канал в Интернет. Для России в настоящее время можно использовать канал емкостью 64 кбит/с. Каналы меньшей емкости использовать можно, но в этом случае желающие посмотреть этот WWW будут чаще томиться в ожидании, чем читать и смотреть интересующую их информацию.
Есть альтернативный путь: размещение сервера на компьютере Интернет-провайдера. Сервис-провайдер имеет каналы в Интернет достаточной емкости, для того чтобы пользователи могли размещать свои WWW-серверы. Многие сервис-провайдеры предлагают такую услугу.
Вторая задача - это выбор платформы, на которой будет работать WWW-сервер. Если WWW-сервер будет размещен на компьютере Интернет-провайдера, то выбора, конечно, никакого не будет. Для серьезного дела имеется две платформы. Первая - это Unix, а точнее, Sun Solaris на аппаратной платформе Sun Sparс. Вторая - Microsoft Windows NT Advanced Server на процессоре корпорации Intel. В настоящее время большинство людей в мире выбирает Unix-платформу с WWW-сервером от Apache, что видно из графика. Статистикой использования платформ для Web-серверов занимается компания Netcraft (www.netcraft.com/Survey/).
Apache является бесплатным продуктом, который эффективно и бесперебойно работает на Unix-платформе. Подробную информацию о настройке и использовании сервера Apache можно получить на сайте www.apache.org. Совсем недавно вышла версия сервера Apache, которая работает на платформе Windows 95/Windows NT. Однако в случае использования операционной системы Microsoft рекомендуется использовать и Web-сервер, разработанный той же компанией. Опыт обслуживания WWW-серверов показывает, что выбор Unix-Apache оправдан, особенно если WWW-сервис не требует дополнительной разработки, сопряжения его с базами данных, с простейшим поиском. Но уже сегодня серверов, не требующих поиска, регистрации пользователей, становится все меньше и меньше, поэтому не всегда этот выбор будет правильным. В связи с чем многие администраторы выбирают соответствующее решение от Microsoft: компьютер на платформе Intel, операционную систему Windows NT AS, Internet Information Server версии 3.0 или даже 4.0. Кроме того, такое решение может оказаться даже правильнее, учитывая то, что найти человека, умеющего вести разработки под Windows NT, гораздо проще, чем под Unix. Это же можно сказать и в отношении сетевых администраторов: поддержка Windows NT гораздо проще и специалистов больше.
Рассмотрим несколько подробнее возможности, которые открываются перед создателями WWW-сервера в случае использования технологии Microsoft. Сразу заметим, что тот же результат можно получить и при использовании альтернативной технологии. Другой разговор, насколько разработка будет протекать быстрее и какова будет устойчивость и надежность работы сервера.
Оба сервера - и Apache, и Internet Information Server - имеют CGI-интерфейс, что позволяет программировать для них специальные приложения. Известно, что CGI-интерфейс, принцип работы которого описывался выше, работает недостаточно быстро. Для ускорения взаимодействия специальных серверных приложений и WWW-сервера используются различные способы. Так, сервер Microsoft применяет для запуска программ технологию ASP (Active Server Page).
WWW-сервер от Microsoft удобен для разработчиков благодаря наличию встроенного интерпретатора с Visual Basic Script, а также поддержке ActiveX. С помощью этой технологии возможна быстрая разработка необходимых приложений, в том числе обращений к базам данных. Базами данных на рассматриваемой платформе можно с успехом управлять. Если объем данных велик, следует пользоваться Microsoft SQL-сервером, который имеет соответствующую поддержку для доступа с WWW-сервера. При меньшем объеме можно порекомендовать Microsoft Access 97, входящий в Microsoft Office 97 Professional, который имеет возможность Интернет-паблишинга, что существенно упрощает подготовку интерактивных страниц для обращения к базам данных.
IIS (Internet Information Server) входит в Microsoft Windows NT Advanced Server. Кроме того, бесплатно можно получить Index Server, который без дополнительного программирования позволит осуществлять простейший поиск на WWW-сервере (конечно же, без учета падежей и кодировок русских букв).
Кодировки русских букв в Интернете - это отдельная проблема, которая усиленно обсуждается среди специалистов. Дело в том, что различные операционные системы имеют различную кодировку кириллических символов. Правильнее всего сделать так, чтобы сервер мог показывать информацию во всех основных кодировках. Другое дело, как это будет достигаться. Существует много способов, позволяющих не держать все документы во всех кодировках. Полезно также, чтобы информация была и на английском языке, так как большинство пользователей Интернета не владеет русским языком. Более того, информация для русскоязычных пользователей может отличаться от информации для их англоязычных коллег.
Более подробную информацию об ASP-сервере можно получить на сайте корпорации Microsoft (www.microsoft.com/siteserver/).
Если решено применять Apache с платформой Unix или если сервис-провайдер использует этот сервер, и требуется осуществлять обращение к базам данных, то в качестве базы данных можно применять MiniSQL. MiniSQL - это очень простой SQL-сервер, который имеет CGI для организации SQL-запросов непосредственно из WWW.
Информацию о MiniSQL, а также о том, как соединить его с WWW-сервером, можно получить по адресу www.hughes.com.au/.
Конечно, можно использовать и другие продукты. Однако перечисленные выше возможности проверены на практике и показали хорошую работу и относительно легкую настройку.
Достаточно популярна Web-платформа от корпорации Netscape (www.netscape.com). Большой плюс ее состоит в том, что Netscape сделала коммерческую версию Web-сервера практически под все популярные аппаратные платформы.
Естественно, что перечисленным выше не ограничивается количество программного обеспечения, которое можно использовать для организации Web-сервера. В мире уже написаны сотни различных серверов, и с каждым днем такого вида программного обеспечения становится все больше и больше. В этой статье обозначено только популярное программное обеспечение, которое реально используется в работе. Конечно, каждый желающий может использовать все, что ему нравится.
1 Все компьютеры в сети Интернет пронумерованы, и двух одинаковых номеров нет. Естественно, что компьютеры обращаются друг к другу по этим номерам. Для удобства людей, кроме этих номеров, некоторые компьютеры, к которым обращаются люди, имеют имена. В Интернете существует служба, которая умеет переводить имена в номер, и номер - в имя.