Как уже упоминалось, большинство этих систем служат для расширения возможностей веб-броузеров и потому в конечном итоге действуют поверх протокола HTTP, который мы исследовали в этой главе. Например:
• Система Jython — компилятор, который поддерживает написанные на Python апплеты Java, представляющие собой программы общего назначения, загружаемые с сервера и выполняемые локально на стороне клиента при обращении к ним по URL, которые расширяют возможности веб-броузеров и взаимодействий.
• Аналогично, пол но функ цио наль ные Ин тер нет-при ло же ния предоставляют поддержку технологии взаимодействий AJAX и комплекты виджетов, позволяющие реализовать на языке JavaScript взаимодействие с пользователем внутри веб-броузеров, обеспечивая более высокую динамичность и богатство возможностей, чем способна обеспечить разметка HTML.
• В главе 19 мы также познакомимся с инструментами языка Python для обработки XML — структурированного текста, который используется в качестве носителя данных в диалогах клиент/сервер в протоколах веб-служб, таких как XML-RPC, позволяющего передавать объекты в формате XML по протоколу HTTP и поддерживаемого пакетом xmlrpc в стандартной библиотеке Python. Такие протоколы позволяют упростить интерфейс к веб-серверам на стороне клиента.
Однако, принимая во внимание отсутствие времени и места, мы не станем углубляться в детали этих и других инструментов, используемых на стороне клиента. Если вас интересует применение Python в клиентских сценариях, следует потратить немного времени и ознакомиться с перечнем инструментов Интернета, имеющимся в справочном руководстве по библиотеке Python. Все они действуют на сходных принципах, но имеют несколько различающиеся интерфейсы.
В главе 15 мы перемахнем по ту сторону барьера в мире Интернета и рассмотрим сценарии, выполняющиеся на серверах. Эти программы позволят начать лучше понимать приложения, целиком живущие в Веб и запускаемые веб-броузерами. Осуществляя этот скачок в структуре, нужно помнить, что инструментов, с которыми мы ознакомились в этой и предыдущей главах, часто достаточно для полной реализации распределенной обработки, требуемой во многих приложениях, и работать они могут в согласии со сценариями, выполняемыми на сервере. Однако для полного понимания картины мира Веб необходимо также исследовать и царство серверов.
Но до того как мы туда попадем, в следующей главе будут объединены понятия, рассматривавшиеся ранее, и представлена законченная клиентская программа — полнофункциональный клиент электронной почты с графическим интерфейсом, использующий многие инструменты, которые мы изучили и реализовали. Фактически большая часть из того, что было создано в этой главе, задумывалось как фундамент, который должен лечь в основу более реалистичного и масштабного примера PyMailGUI, демонстрируемого в следующей главе. На самом деле, многое из того, что до сих пор приводилось в этой книге, было предназначено, чтобы выработать навыки, необходимые для решения этой задачи: как мы увидим далее, PyMailGUI объединяет в себе системные инструменты, графические интерфейсы и приемы работы с протоколами Интернета на стороне клиента, образуя полезную систему, которая делает настоящую работу. В качестве дополнительного вознаграждения этот пример поможет нам понять взаимоотношения между клиентскими решениями, с которыми мы встретились здесь, и серверными решениями, которые мы будем рассматривать в следующей части книги.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, II том, 2011