Чтение онлайн

на главную - закладки

Жанры

Язык программирования Perl

Шохирев Михаил Васильевич

Шрифт:

Цель лекции: вкратце ознакомиться с основами web-программирования и богатыми средствами, которые имеются в Perl, для работы с ресурсами Всемирной Паутины. На примерах узнать приемы работы с некоторыми из них.

Всемирная Паутина (World Wide Web, WWW или просто Web) стала важнейшим технологическим достижением в области обработки информации. Она не только сделала доступ к ресурсам сети Интернет простым и удобным для пользователей, но стимулировала развитие многих информационных технологий, а также утвердила в практике программирования новые подходы к работе с информационными ресурсами. Самыми важными из них можно назвать следующие.

1 Благодаря универсальной адресации самых разных ресурсов с помощью унифицированных указателей

ресурсов (Uniform Resource Locator, URL), доступ к информации выполняется единообразно, а средства доступа динамически настраиваются на расположение ресурса, протокол передачи данных и его формат. (Например, для указателя на ресурспотребуется инициировать запрос к серверу по протоколу HTTP на доставку указанной HTML-страницы. А необходимость получить ресурс по указателю ftp://ftp.server.net/path/file.mp3 должна привести к организации сеанса взаимодействия с сервером по протоколу FTP для загрузки требуемого файла.)

2 Гипертекстовые (а если быть точнее - "гипермедийные") документы позволяют с помощью гиперссылок (hyper-link) логически компоновать информационные ресурсы, причем разными способами и независимо от их физического расположения. То есть можно считать, что ресурсы располагаются не в файловой системе, пусть даже и сетевой, а в гиперссылочном информационном пространстве. (Например, гиперссылка на одно и то же изображение может размещаться в электронном учебнике, присутствовать на странице тестового упражнения и включаться в научную презентацию. А во фреймах одного окна браузера могут отображаться страницы, загруженные по гиперссылкам с серверов, расположенных в разных странах.)

3 Тим Бернерс-Ли, который придумал и в 1991 году реализовал для научных целей WWW, основанную на гиперссылках с использованием URL, конечно же, достоин бесконечного восхищения. Но не менее плодотворной идеей оказался CGI (Common Gateway Interface) - интерфейс простого шлюза для обращения web-сервера к внешним программам. Взаимодействие посредством CGI упрощенно сводится к запуску сервером в виде отдельного процесса внешней программы, которой через стандартный входной поток передаются параметры, полученные в запросе от клиента. Результат своей работы программа передает через стандартный выходной поток серверу, который возвращает его в качестве ответа на запрос клиента. Эта традиционная для Unix схема обращения к программе-фильтру позволяет бесконечно расширять возможности web-сервера: динамически создавать HTML-страницы, генерировать диаграммы и графики, черпать информацию из баз данных, "на лету" конструировать документы в формате PDF и так далее.

4 Принципы, применяемые в WWW для организации информации, оказались настолько технологичными и имели такой большой успех у пользователей, что стали использоваться в локальных сетях (Intranet) и на отдельных компьютерах. А web-браузер превратился в универсальное клиентское приложение, применяемое для доступа к базам данных, различным справочным и информационным системам.

Поэтому web-программирование стало важным и чрезвычайно востребованной отраслью информационной промышленности. (Именно промышленности, если судить по инвестициям и доходам информационных компаний во всем мире.) Ну а Perl, как обычно, не просто предоставляет для этого все необходимые средства, но и предлагает их широкий выбор: ведь принцип TIMTOWTDI продолжает работать и здесь...

Прославившийся своими богатыми средствами обработки текстовых данных, Perl оказался легко применим для работы с гипертекстом. Язык разметки гипертекста HTML (Hyper-Text Markup Language) - это подмножество довольно старого универсального языка разметки SGML, использовавшегося для форматирования документов. HTML ориентирован на разметку гипертекстовых документов. Со времени своего создания он видоизменялся под влиянием корпоративных интересов нескольких компаний, но конкурентная борьба постепенно приводит к повышению роли стандартов. Стандартизацией HTML и других видов деятельности, касающейся WWW, занимается международный консорциум W3C, который возглавляет сэр Тимоти Джон Бернерс-Ли. Чтобы отдельно от содержимого HTML-документа описывать особенности его представления (шрифт, цвет,

размер, расположение и так далее), был создан еще один стандарт - таблицы каскадных стилей CSS (Cascading Style Sheets). А сам язык HTML был переработан для обеспечения совместимости с форматом XML (о котором речь пойдет далее), и новая версия была оформлена в виде стандарта XHTML.

На Perl написано множество модулей, ориентированных на работу с гипертекстовыми документами в форматах HTML и XHTML. Большинство из них связано с динамической генерацией web-страниц и работе с HTML-формами. Поисковая машина на сайте CPAN находит более тысячи модулей, в названии которых встречается "HTML". Упомянем лишь некоторые из них, доступные для загрузки из архива CPAN. Простые средства создания разметки HTML предоставляет класс HTML::Base. Модуль HTML::Parser, напротив, представляет из себя средство синтаксического разбора HTML-документа на составляющие объекты. Кстати, для преобразования "старой доброй документации" из формата POD в HTML-документ можно пользоваться утилитой pod2html. Она, естественно, написана на Perl и входит в стандартный дистрибутив. Например, в результате выполнения вот такой команды:

pod2html --infile=CGI.pm --outfile=CGI.html

будет сгенерирован гипертекстовый документ из 54 страниц, описывающий стандартный модуль для разработчиков CGI-программ на Perl. По солидному объему этого руководства можно судить о том, что многие трудности web-программирования уже решены усилиями Perl-сообщества. Примеры программного формирования документов HTML будут рассмотрены далее в этой лекции при обсуждении средств разработки CGI-программ.

Узлы Всемирной Паутины - это разбросанные по всему миру миллионы web-серверов. Самым популярным и распространенным в сети Интернет остается web-сервер Apache (www.apache.org), распространяемый свободно с открытыми исходными текстами. Хорошо спроектированная архитектура сервера позволяет подключать к нему модули для расширения функциональности сервера. Одним из популярнейших модулей расширения стал mod_perl, который позволяет интегрировать интерпретатор perl с сервером Apache. Это позволяет не только кардинально увеличить скорость работы CGI-программ, но и разрабатывать на Perl собственные модули, получая полный контроль за выполнением клиентских запросов.

Web-сервер общается с клиентскими программами по протоколу передачи гипертекста HTTP (Hypertext Transfer Protocol). Поскольку весь остальной материал этой лекции связан с передачей данных по указанному протоколу, познакомимся с ним поближе. В соответствии с протоколом HTTP запрос состоит из трех частей, которые приведены в таблице 18.1.

Таблица 18.1. Структура HTTP-запроса

Составные части Описание Примеры
Строка запроса содержит команду, называемую методом, например, GET для запроса ресурса или POST для отправки данных на сервер, и имя ресурса GET /index.html HTTP/1.1
POST /cgi-bin/guestbook.pl HTTP/1.0
Заголовки запроса содержат дополнительную информацию, например, данные о клиенте или указания о языке и кодировке ответа, которые предпочитает клиент User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.8.0.1) Gecko/20060130 SeaMonkey/1.0
Accept-Language: "ru-ru,ru; q=0.8,en-us;q=0.5,en;q=0.3"
Тело запроса в нем может содержаться передаваемая на сервер информация (например, данные из полей HTML-формы). nick=Ray&email=ray@conchilomania.ru&comments=Your%20photos%20and%20info%20about%20perl%20are%20fine!
Поделиться:
Популярные книги

Протокол "Наследник"

Лисина Александра
1. Гибрид
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Протокол Наследник

Запечатанный во тьме. Том 3

NikL
3. Хроники Арнея
Фантастика:
уся
эпическая фантастика
фэнтези
5.00
рейтинг книги
Запечатанный во тьме. Том 3

Виктор Глухов агент Ада. Компиляция. Книги 1-15

Сухинин Владимир Александрович
Виктор Глухов агент Ада
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Виктор Глухов агент Ада. Компиляция. Книги 1-15

Романов. Том 4

Кощеев Владимир
3. Романов
Фантастика:
фэнтези
альтернативная история
5.00
рейтинг книги
Романов. Том 4

Последний Паладин. Том 9

Саваровский Роман
9. Путь Паладина
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Последний Паладин. Том 9

Запечатанный во тьме. Том 2

NikL
2. Хроники Арнея
Фантастика:
уся
эпическая фантастика
фэнтези
5.00
рейтинг книги
Запечатанный во тьме. Том 2

Я еще барон. Книга III

Дрейк Сириус
3. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще барон. Книга III

Первый среди равных. Книга VI

Бор Жорж
6. Первый среди Равных
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Первый среди равных. Книга VI

Седина в бороду, Босс… вразнос!

Трофимова Любовь
Юмор:
юмористическая проза
5.00
рейтинг книги
Седина в бороду, Босс… вразнос!

"Новый Михаил-Империя Единства". Компиляцияя. Книги 1-17

Марков-Бабкин Владимир
Избранные циклы фантастических романов
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Новый Михаил-Империя Единства. Компиляцияя. Книги 1-17

Сирота

Ланцов Михаил Алексеевич
1. Помещик
Фантастика:
альтернативная история
5.71
рейтинг книги
Сирота

Диверсант

Вайс Александр
2. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Диверсант

Ваше Сиятельство 3

Моури Эрли
3. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ваше Сиятельство 3

Князь Андер Арес 5

Грехов Тимофей
5. Андер Арес
Фантастика:
историческое фэнтези
фэнтези
героическая фантастика
5.00
рейтинг книги
Князь Андер Арес 5