Выбрать главу

Введение

Следующие главы были сделаны доступными в OnLine, как небольшие заметки, статьи и "белые книги".

От переводчика: данные заметки были доступны только как статьи в Интернете на странице доктора Боба, с моей стороны было сделано преобразование в формат Word 97, как английского варианта, так и перевод его на русский язык.

Форматы кодирования файлов Интернет

Рассматриваются форматы кодирования файлов Интернет, такие как uuencode/decode, xxencode/decode, Base64 encode/decode, сосредоточенные в едином компоненте TBUUCode (часть пакета DrBob42 для Delphi и C++Builder). Также рассмотрены основы HTML (HyperText Markup Language) и CGI (Common Gateway Interface).

HTML и CGI/WinCGI "трудный путь"

В данной главе показывается, как опубликовать вашу базу данных в Интернете путем (1) генерации статических страниц из таблиц базы данных, (2) написания CGI/WinCGI приложений для выполнения запросов к базе данных без использования Delphi Web Modules.

Microsoft WinInet

В данной главе приводятся детальные примеры использования WinInet.DLL (только для Win32 разработчиков) с помощью протоколов HTTP и FTP, примеры DrBobFTP и другие магические инструменты Веб-мастера.

Delphi ActiveForms (intranet)

Показывает, чем активные формы (ActiveForms) отличаются от обычных ActiveX. Как сделать ActiveForms, затем как использовать их, как распространять и как преобразовать существующие формы в активные формы. Также подробно рассмотрены вопросы безопасности и уменьшение размеров файлов (с помощью использования пакетов), как распространять BDE и использование активных форм для создания n-tier приложений.

Delphi Web Modules (internet)

Краткое введение в CGI, WinCGI и ISAPI/NSAPI, с помощью Web Modules, WebDispatcher и WebAction компонент. Генерация HTML с помощью PageProducer, DataSetTableProducer и QueryTablePoducer, включая методы сохранения текущего состояния с помощью куки (cookie) и "невидимых" полей.

1. Форматы кодирования файлов Интернет

Форматы файлов Интернет можно разделить на несколько групп. Во первых форматы передачи файлов по FTP, для чего очень давно была разработана схема uuencode/decode, замененная затем на xxencode/decode. В дальнейшем произошел отказ в пользу Base64 и MIME, которая сейчас используется большинством почтовых программ. Второй тип Интернет форматов это HTML, который со всеми его версиями (часто специфичными для конкретного браузера) и улучшениями сам в себе. Третий тип Интернет форматов это больше интерфейс или протокол связи: CGI, который может быть или стандартный CGI (консольный, или Windows CGI или WinCGI.).

1.1. Передача файлов через Интернет

Дельфи имеет сильный набор средств для написания новых компонентов и для иллюстрации мы напишем кодирование с помощью uuencode/uudecode, xxencode/xxdecode и Base64. Мы напишем достаточно мощный компонент, который реализует данные алгоритмы. Новый компонент реализует uuencode и uudecode алгоритмы, которые могут быть использованы для передачи файлов через Интернет (ранее использовались для передачи файлов между Unix системами).

Для более утонченного способа передачи файлов смотри главу об WinInet и FTP компонентах. Эти алгоритмы кодирования файлов д в основном используются для передачи файлов в почте и группах новостей

1.1.1. UUEncode и UUDecode

Необходимость кодирования файлов при передаче является то, что в файле могут находиться любые двоичные данные, для этого файл преобразовывается в "читаемую" или "печатаемую" форму в набор из 64 символов: [`!"#$%&'()*+,-./0123456789:;<=?@ABC…XYZ[\]^_], чтобы кодированный файл прошел через различные сети и почтовые шлюзы. Эти 64 печатных символа представлены в следующей таблице.

Набор символов UEncode
0 `  8 ( 16 0 24 8 32 @ 40 H 48 P 56 X
1 ! 9 ) 17 1 25 9 33 A 41 I 49 Q 57 Y
2 " 10 * 18 2 26 : 34 B 42 J 50 R 58 Z
3 # 11 + 19 3 27 ; 35 C 43 K 51 S 59 [
4 $ 12 , 20 4 28 < 36 D 44 L 52 T 60 \
5 % 13 – 21 5 29 = 37 E 45 M 53 U 61 ]
6 & 14 . 22 6 30 > 38 F 46 N 54 V 62 ^
7 ' 15 / 23 7 31 ? 39 G 47 O 55 W 63 _

Алгоритм выдает файл состоящий из строки заголовка, за ней несколько кодированных строк и в конце завершающая строка.

Любые строки до строки заголовка или после завершающей строки игнорируются (так как они не содержат специальных ключевых слов "begin" или "end", которые однозначно определяют заголовок и завершающую строку).

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