Visual Basic 6. Руководство разработчика

       

Взаимодействие клиент-сервер


На рис. 22.1 показана типичная Web-страница для ввода информации, необхо­димой серверу для извлечения данных из базы. Это страница Infoseek - наиболее популярного справочного Web-узла. В данном примере аргументом поиска является строка "VB + books" (поиск документов VB, содержащих слово "books").

Рис. 22.1. Поиск документов по ключевому слову с помощью Web-узла Infoseek

Нажав кнопку Search (Поиск), клиент пересылает на сервер следующий URL

http://www.infoseek.com/Titles?qt=VB+%2Bbooks&rf=11&lk=noframes&st=10

Здесь

Titles — это имя приложения на сервере, которое будет выполнять поиск в базе данных и возвращать результат. Оно не является ASP-приложением, но в данном случае это не имеет значения. Для ASP-приложения понадобились бы те же параметры, и оно возвратило бы тот же результат. Все, что нужно знать клиенту, — это имя приложения, которое обрабатывает параметры его запроса на сервере. Эта информация помещается в тег <FROM> документа (подробности о размещении элементов управления на Web-странице см. в гл. 20).

Запустите Internet Explorer, подключитесь к узлу Infoseek и передайте аргументы поиска. Когда сервер передаст результаты поиска, вы увидите имя приложения, выполнившего поиск в базе данных на сервере, и аргументы поиска (строку, напоминающую приведенную выше) в поле Address (Адрес) броузера.

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

parameter=value

Если для ввода параметров используется форма, то именами параметров являются имена элементов управления на форме, а значениями — значения элементов. Пары имя-значение отделяются символом '&'.

LastName=Petroutsos&FirstName=Evangelos

Строка с параметрами присоединяется в конец URL с помощью вопросительного знака после имени приложения, обрабатывающего запрос на сервере (имя ASP-файла). Если имя элемента управления содержит пробелы, то каждый из них замещается знаком "+".


Title=Mastering+VB6

В примере с узлом Infoseek имя первого параметра - qt

(сокращение от query text - текст запроса), а его значение - строка "VB+%2Bbooks". В ней пробел заменен знаком "+", а плюс в оригинале запроса - на %2В (2В является шестнадцатеричным значением ASCII-кода знака плюс). Параметр lk=noframes сообщает приложению на сервере, что генерируемый HTML-документ не должен содержать панелей (frame); параметр st=10 определяет,

что имена найденных в результате поиска файлов должны выводиться по 10 штук. На рис. 22.1 видно, что в результате поиска найдено 80000 файлов, но выводиться они будут по 10 за один раз. Всякий раз, когда пользователь выполняет щелчок на гиперссылке "Next 10", значение st увеличивается на 10 (а при щелчке на гиперссылке "Previous 10" — уменьшается на 10). Это вся информация, необходимая приложению Titles для отображения страницы с результатами поиска.

Примечание

В протоколе HTML используется множество символов, имеющих специальные значения, которые нельзя помещать в строку параметров. Например, нельзя использовать символы "/" и "&". Поэтому все специальные символы (т.е. не являющиеся буквой или цифрой) должны быть заменены шестнадцатеричным значением их ASCII-кода, перед которым указан знак процента (%).

Web-сервер запускает приложение, имя которого указано в строке URL, и передает ему полученные параметры. Программы, обрабатывающие запрос пользо­вателя в реальном времени, обычно называют сценариями (scripts). Большая их часть написана на языке Perl.

Примечание

Perl — это аббревиатура от Practical Extraction and Report Language (Практический язык для извлечения данных и создания отчетов). Он является языком написания сценариев для Unix, позволяющим создавать мощные приложения для обработки данных и текстов. Однако рядом с Visual Basic и VBScript язык Perl выглядит подобно китайской грамоте. Программистам, работающим с Windows, он обычно незнаком.


Содержание раздела