Ж у р н а л   о   к о м п ь ю т е р н ы х   с е т я х   и   т е л е к о м м у н и к а ц и о н н ы х   т е х н о л о г и я х
СЕТИ И СИСТЕМЫ СВЯЗИ on-line
  ПОИСК: ПОДПИСКА НА НОВОСТИ: НОМЕР:
    ДОМОЙ • Архив: Новостей | Конференций | НомеровПодписка
 
   
 
   
    
РЕДАКЦИЯ
 
Все о журнале
Подписка
Как проехать
Где купить
Отдел рекламы
График выхода журнала
Адреса в Интернет

РУБРИКАТОР
   
• Инфраструктура
• Информационные
   системы

• Сети связи
• Защита данных
• Кабельные системы
• Бизнес
• Колонка редактора
• Электронная
   коммерция

• Только на сервере
• Системы
   учрежденческой
   связи

• Новые продукты


Rambler's Top100

  

Давайте познакомимся

Мартин Хеллер

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

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

Простой способ организации обратной связи

Однако если приложить немного усилий, можно сделать так, чтобы пользователь сам рассказал о себе. Для достижения этой цели наиболее простым и распространенным способом нужно определенным образом подключить электронную почту к своим Web-страницам. Предположим, что в конце моей главной Web-страницы имеется следующий код на языке HTML:

<b>The doctor is IN.

Click here to send

him e-mail: </b>

<a href=”mailto:mheller

@cmp.com”>

mheller@cmp.com</a>

А вот как это выглядит в окне браузера:

The doctor is IN. Click here to send him e-mail: mheller@cmp.com (Доктор вас слушает. Чтобы передать ему свое сообщение, нажмите здесь.)

Текстовые вставки в угловых скобках являются метками языка HTML. Метка <b> означает начало текста, выделенного жирным шрифтом, а метка </b> — его завершение. Метка <a href=”mailto:mheller@cmp. com”> определяет гипертекстовую ссылку, которая в данном случае устанавливает связь, используя адрес электронной почты.

Чаще всего гиперссылки начинаются с http://, что позволяет быстро переключаться на другие страницы Web. Метка </a> завершает оператор ссылки на другой документ. Текст ссылки, лежащий между метками начала <a href=”...”> и окончания </a>, обычно выводится на экран в виде подчеркнутой строки, выделенной синим цветом, хотя в некоторых браузерах стиль выделения можно изменить. В качестве гиперссылки можно также использовать изображения, которые обычно выводятся на экран в синей рамке.

Если пользователь щелкнет мышью на подчеркнутой синей строке из нашего примера, то начнет работать его почтовое приложение, а если оно уже запущено, то становится текущим, причем в поле “to:” уже будет установлен мой адрес e-mail. Но это не принуждает пользователя называть свое имя, прежде чем он перекачает мои файлы или прочтет мои статьи. Я не смогу автоматически узнать его имени и адреса, чтобы воспользоваться ими для дальнейшей связи.

Воспользуемся формой

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

Хотя форму HTML трудно создать совершенно не имея знаний о языке разметки, но этому можно научиться в течение нескольких часов с помощью обыкновенного текстового редактора. Для боўльшей эффективности можно даже воспользоваться утилитами разметки HTML для вашего текстового редактора, но в этом, наверное, нет особой необходимости.

Мы уже знаем, что некоторые метки HTML заключаются в скобки. Формы описываются по этому же правилу: они начинаются с метки <form> и заканчиваются меткой </form>. Метка <form> использует три параметра: действие, метод и тип шифрования. Проанализируем следующий пример кода HTML для форм.

<html> <head> <TITLE>

Form Test</TITLE>

</head>

<body> <h1>Form Test

</h1> <hr>

<form method=post

action=”cgitest.exe”>

My name is: <input type

=”text” name=”name”

value=”” size=50,1

maxlength=50><br>

My e-mail address is:

<input type=”text”

name=”email” value=””

size=80,1 maxlength=

80><br>

Please add me to your

mailing list: <input

type=”checkbox” name=”

checkbox”><br>

My preferred color is:

<select size=5 name=”

select”>

<option selected>red

<option>blue <option>

green

</select><br>

<input type=”submit”

value=”Submit”>

<input type=”reset”

value=”Reset”>

</form> </body><hr>

<address>

This Form Last Updated:

Monday, February 19,

1996, 3:34:45 PM

</address> </html>

В браузере это выглядит так:

После задания имени страницы и заголовка первого уровня, в третьей строке мы определяем действие. В качестве действия представлено имя программы — CGITEST.EXE. Вместо него в операторе действия мы могли бы задать указатель какого-либо ресурса Internet URL (Uniform Resource Locator) или просто опустить оператор действия, и тогда выходные данные будут отправлены в текущий URL документа.

Следующее, что мы определяем, — это параметр “метод” (способ передачи данных, адресованных какому-либо объекту. — Прим. ред.). В нашем примере использован метод post. Это означает, что выходные данные формы будут отправлены в указанный URL в качестве стандартного входного потока, размер которого определяется значением переменной операционной среды CONTENT_LENGTH. Альтернативным является метод get, что подразумевает посылку выходных данных формы в указанный URL в качестве длинной командной строки, в которой пробелы заменяются на знаки +, а поля разделяют знаки & (амперсанд). Метод get обычно используется для организации операций поиска, а метод post — для обработки содержимого полей ввода в форме HTML.

Если использовать метод get, то выходные данные формы в нашем примере будут выглядеть следующим образом: cgitest.exe?name= Martin+Heller& email=mheller@cmp. com&checkbox= on&select=red.

Текущее содержание формы определяется значениями ее полей. В данном примере мы использовали четыре поля и две кнопки: текстовые поля для имени и адреса e-mail; поле типа checkbox для установления в дальнейшем почтовой связи; поле select для выбора цвета; кнопки выполнения действия (Submit) и инициализации полей (Reset).

Поле типа checkbox предоставляет возможность выбора одного из двух ответов — да или нет. Возможный выбор поля типа select ограничен несколькими заранее определенными вариантами. Кнопка Reset возвращает все поля к значениям, заданным по умолчанию, в то время как кнопка Submit выполняет передачу выходных данных формы объекту, описанному в операторе действия.

Полям ввода в тексте нашего примера соответствуют следующие метки: две метки <input> с параметром type=text; метка <input> c параметром type= checkbox и метка <select>. Между метками <select> и </select> находятся три метки <option>, первая из которых определяет значение red, используемое при инициализации формы как значение по умолчанию. Оставшиеся метки <input> соответствуют кнопкам Submit и Reset. Многочисленные метки <br> отвечают за разбивку полей формы на отдельные строки.

Создать осмысленную структуру выходных данных формы немного сложнее, для этого вам уже действительно придется программировать. Стандартный интерфейс между формой HTML и программой называется Common Gateway Interface (CGI). CGI — это не язык программирования в привычном понимании. Чтобы написать программу CGI, можно использовать почти любой язык программирования. Требуется только, чтобы программа CGI могла читать переменные настройки среды, соответствующим образом обрабатывать текстовые строки, считывать и выводить стандартные выходные данные (обычно представленные в формате HTML, чтобы впоследствии их можно было вывести на экран браузера).

В процессе обработки значений полей имени и адреса e-mail программа использует переменную среды QUERY_STRING и разбивает принятую текстовую строку на поля, отыскивая в ней амперсанды &. При обработке отдельных полей программа заменяет знаки + на пробелы. Значение поля name (name= Martin+Heller) после такой замены выглядело бы так: “Martin Heller”.

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

Создание формы для поиска документов

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

Обычно полнотекстовый поиск файлов, расположенных на локальном сервере, осуществляется при помощи программ, сходных с Unix-утилитами grep, fgrep и egrep. Но эти программы не способны работать напрямую с CGI и выдавать выходные данные в формате HTML, хотя и существуют программы-оболочки, адаптирующие их к работе с серверами Web. Надо заметить, что непосредственный поиск текста — долгий процесс, и такое оживленное место, как Web-сервер, не в состоянии обеспечить постоянное сканирование своих текстовых файлов. Чтобы решить эту проблему, специально были написаны несколько индексирующих программ и поисковые средства на основе индексных файлов.

Например, на Web-сервере TechWeb издательской компании CMP используются специальное поисковое средство WAIS, позволяющее выполнять запросы на естественном языке с применением логических операторов, а также специальная версия программы-шлюза между Web-сервером и сервером WAIS — WAISGATE. Ниже приведен простой пример HTML-формы, позволяющей задавать параметры поиска. В пункте “действие” описания формы задана ссылка URL c указанием полного пути к программе CMP_WAISGATE, а в тексте запроса используется логический оператор AND.

<FORM METHOD=POST

ACTION=http://techweb

.cmp.com/techweb/

programs/cmp_waisgate>

<P><STRONG>More articles

on:</STRONG>

<INPUT NAME=”search_

term” VALUE=”Micro-

soft AND Internet”

SIZE=25>

<INPUT TYPE=”submit”

VALUE=”Submit Query”>

Publication: <SELECT

NAME=”field.pub”>

<OPTION>Windows Magazine

<OPTION>ALL CMP

Publications

</SELECT>

</FORM>

А вот как это выглядит в браузере:

WAIS классифицирует найденные им документы в соответствии с вашим запросом, а программа WAISGATE генерирует отчет с результатами поиска в формате HTML. В этом документе содержатся заголовки текстов и ссылки на них, что позволяет вам продолжать поиск уточненными параметрами. Другие версии WAIS, такие как FREEWAIS, можно просто “скачать” из Internet. Существуют и другие бесплатные средства поиска и шлюзы для WAIS, например SWISH, HARVEST и WWWWAIS. Для поиска этих средств можно воспользоваться одним из них же. Попробуйте поискать и здесь: http://www. yahoo.com/ или http://www. webcrawler.com/.

Поскольку индексный поиск документов — естественная область применения СУБД, некоторые Web-серверы используют для этих целей СУБД общего назначения, например SQL Server или Access.

Проблемы использования CGI

CGI — это стандарт, который не зависит от платформы, впрочем, как и сам язык HTML. Но у CGI есть некоторые ограничения. Дело в том, что интерфейсы передачи обоих методов — как get, так и post — не всегда удобны в применении. Кроме того, сами программы CGI могут отнимать у сервера значительные ресурсы, а некоторые из них — даже представлять угрозу для безопасности серверов. Однако многочисленные тексты свободно распространяемых программ помогут вам разобраться со сложными форматами строк и неудобным интерфейсом передачи параметров. Их можно найти в WWW, набрав в строке для поиска: “CGI”. Существует также проблема нехватки ресурсов, поскольку программа CGI является исполняемым файлом, и при каждом запуске с клиентской машины будет порождаться ее новая копия. Это может привести к переполнению памяти.

Корпорация Microsoft изобрела свое “лекарство” от этой “болезни”2 — ISAPI. Это программный интерфейс, выполненный в виде динамической библиотеки для ее же собственного Web-сервера IIS. Его принципиальное преимущество заключается в том, что единственный экземпляр запущенной DLL используется совместно несколькими пользователями, поэтому снижаются как потребление памяти, так и необходимое для загрузки программы время. Еще один программный интерфейс — IDC — связывает базу данных сервера SQL с сервером IIS. Он обеспечивает весьма простую процедуру описания такой связи и ее дальнейшую поддержку.

Довольно неприятным вопросом является проблема безопасности. Хозяева Web-серверов должны определять, какие программы CGI может запускать на сервере пользователь. Эта проблема решается путем ограничения доступа к каталогам, содержащим нежелательные программы. Также имеет смысл тщательно протестировать все CGI-программы перед тем, как сделать их общедоступными.

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


распечатать статью




  
8 '1996
СОДЕРЖАНИЕ

колонка редактора

• Вся сеть в кармане

локальные сети

• Выбор сетевой операционной системы

• Недорогие серверы

• В любви и согласии... со своим делом

корпоративные сети

• Блокнотные компьютеры

• Клиентское ПО протокола DHCP

• Разные решения одной проблемы

• I-PNNI — интегрированный протокол маршрутизации

• Незаконченная картина RMON

услуги сетей связи

• Терминология сетей Синхронной Цифровой Иерархии

• Несколько слов о любви... и заметки о создании пейджинговой системы

• Компьютерная телефония. Пути развития

• Беспроводная передача данных: CDPD

• Блюзы говорящих модемов

интернет и интрасети

• Серверы Internet под ключ

• Семь смертных грехов Web

• Стройте Intranet!

• Радио по запросу

• Давайте познакомимся

• Программирование Web-сервера: последний рубеж

приложения клиент-сервер

• Информационные системы для крупных индустриальных объектов

• Intranet и Lotus Notes: новый взгляд

защита данных

• Дебаты о шифровании

• Протокол PPP и безопасность

новые продукты

• Маршрутизаторы 7200 фирмы Cisco, FTP Software поднимает ставки в игре TCP/IP, Оптимизаторы MAXcess, Kraftway выпускает новый сервер

только на сервере

• Обзор Web-браузеров

• Методика интерпретации результатов измерения производительности адаптеров Fast Ethernet



 Copyright © 1997-2007 ООО "Сети и Системы Связи". Тел. (495) 234-53-21. Факс (495) 974-7110. вверх