|
Формирование потоков данных.
═Формирование потоков
данных |
Большинство
данных, которые вы будете
передавать клиентам с помощью
HTTP-запросов, окажутся, скорее всего,
HTML-страницами. Но не исключено, что
настанет время, когда вам
понадобится в ответ на запрос
пользователя передать и другие
типы информации. Это могут быть
? в
зависимости от выбора пользователя
?
различные графические изображения
или звуковые файлы. Данные,
посылаемые пользователю, могут
иметь специальный формат и поэтому
должны быть обработаны специальным
образом броузером клиента.
Например, Netscape
предоставляет надстраиваемую
архитектуру, которая позволяет
разработчикам записывать
расширения в Navigator Browser для обработки
данных любого типа. RealAudio, Shockwave и другие типы
потоковой организации данных
служат примерами надстроек
Netscape,
способных расширить возможности
броузера клиента.
Какой бы
тип данных вы ни пожелали передать,
Delphi подставит
вам свое могучее плечо и ваш поток
данных легко найдет своего клиента.
С помощью метода TWebResponse.SendStream() и свойства
TWebResponse.ContentStream вы сможете
послать клиенту данные любого типа,
загрузив их в потоковый класс
Delphi. При
этом придется обязательно сообщить
броузеру клиента информацию о типе
посылаемых данных, что легко
достигается с помощью свойства TWebResponse.ContentType. Установив это
строковое значение равным
соответствующему MIME-типу, вы
позволите броузеру обработать
приходящие данные надлежащим
образом. Например, если вы хотите
передать Windows-файл с расширением
.WAV, придется
установить свойство ContentType равным
значению 'audio/wav'.
На
заметку |
MIME
? это сокращение от названия
стандарта Multipurpose Internet Mail Extensions
(многоцелевое расширение почты
Internet). Расширения MIME были
разработаны для того, чтобы
позволить клиентам и серверам
передавать по электронной
почте данные, которые по
сложности отличаются от
стандартной текстовой
информации. Броузеры и
HTTP-протокол адаптировали
расширения MIME, благодаря чему
вы можете передавать с
Web-сервера на Web-броузер данные
практически любого вида. Ваш
Web-броузер содержит довольно
большой список этих типов MIME и
каждое приложение или
надстройку связывает с
определенным типом MIME. При
получении информации о
конкретном типе броузер ищет
приложение, которое должно
использоваться для обработки
данных этого типа, и передает
ему эти данные. |
С помощью
потоков можно передавать данные
любого типа практически с любого
источника на ваш Web-сервер. Можно
передавать данные из файлов,
которые размещаются на вашем
сервере или в любой точке вашей
сети, а также из ресурсов Windows, встроенных в
вашу ISAPI.DLL или другие
DLL,
доступные для вашей ISAPI DLL. Вы можете
даже создавать данные "на
ходу" и тут же оправлять их
клиенту. Если броузер клиента
"знает", что делать с
принимаемыми данными, то, по сути,
вы не ограничены ни в типах
передаваемых данных, ни в способах
передачи.
Теперь
построим простое Web-приложение,
иллюстрирующее описанные выше
возможности. Подготовим
Web-страницу, в которой собраны
изображения из различных
источников. Это приложение будет
обрабатывать графические данные
надлежащим образом и по запросу
возвращать их клиенту. Причем это
будет сделано удивительно легко,
поскольку в Delphi
предусмотрены различные классы
потоков, без труда собирающие
данные в поток, а также классы
расширений ISAPI, моментально
реализующие отправку этих данных.
|
|