Обзорные по Веб14.ppt
- Количество слайдов: 62
Обзорные лекции WEB-технологии
СТРУКТУРА И ПРИНЦИПЫ WWW n n Сеть WWW объединяет веб-серверы, независимо от их расположения, ПО, платформы. Веб-сервер - программа, запускаемая на подключённом к сети компьютере и передающей данные по протоколу HTTP. Для идентификации ресурсов (файлов или их частей) в WWW используются идентификаторы ресурсов URI (Uniform Resource URI Identifier). Для определения местонахождения ресурсов в этой сети используются локаторы ресурсов URL (Uniform Resource URL Locator). Такие URL-локаторы представляют собой комбинацию URI и системы DNS. Доменное имя (или IP-адрес) входит в состав URL для обозначения компьютера (его сетевого интерфейса), на котором работает программа веб-сервер.
СТРУКТУРА И ПРИНЦИПЫ WWW n n n На клиентском компьютере для просмотра информации, полученной от веб-сервера, применяется специальная программа — веббраузер. Основная функция веб-браузера — браузер отображение гипертекстовых страниц. Для страниц создания гипертекстовых страниц в WWW изначально использовался язык HTML Множество веб-страниц образуют веб-сайт Далее – см. основные компоненты Веб (в лекциях).
ПРОТОКОЛЫ ИНТЕРНЕТ ПРИКЛАДНОГО УРОВНЯ n n n DNS - распределённая система доменных имён, которая DNS по запросу, содержащему доменное имя хоста сообщает IP адрес; HTTP - протокол передачи гипертекста в Интернет; HTTPS - расширение протокола HTTP, поддерживающее HTTPS шифрование; FTP - протокол, предназначенный для передачи файлов в FTP компьютерных сетях; Telnet - сетевой протокол для реализации текстового Telnet интерфейса по сети; SSH - протокол прикладного, позволяющий производить SSH удалённое управление операционной системой и передачу файлов. В отличие от Telnet шифрует весь трафик;
ПРОГРАММЫ, ВЫПОЛНЯЮЩИЕСЯ НА СЕРВЕРЕ n n Код программы, работающей на сервере, не передается клиенту. При получении от клиента специального запроса, предполагающего выполнение такой программы, сервер запускает ее и передает параметры, входящие в состав запроса. Результаты своей работы программа оформляет в виде HTML-документа и передает их веб-серверу. Веб-сервер дополняет полученные данные HTTPзаголовком и передает их клиенту.
ПРОГРАММЫ, ВЫПОЛНЯЮЩИЕСЯ НА СЕРВЕРЕ Запуск программы и передача параметров Веб - сервер Программа (CGIсценарий) Результаты выполнения программы Запуск программы и передача параметров Веб - клиент
FTP n n n FTP (File Transfer Protocol - RFC 959) — протокол, предназначенный для передачи файлов в компьютерных сетях. FTP позволяет подключаться к серверам FTP, просматривать содержимое каталогов и загружать файлы с сервера или на сервер; кроме того, возможен режим передачи файлов между серверам; FTP позволяет обмениваться файлами и выполнять операции над ними через TCP -сети. Данный протокол работает независимо от операционных систем. Модель работы протокола FTP
FTP Алгоритм работы протокола FTP: n n Сервер FTP использует в качестве управляющего соединение на TCP порт 21, который всегда находится в состоянии ожидания соединения со стороны пользователя FTP. После того как устанавливается управляющее соединение модуля "Интерпретатор протокола пользователя" с модулем сервера — "Интерпретатор протокола сервера", пользователь (клиент) может отправлять на сервер команды. FTP-команды определяют параметры соединения передачи данных: роль участников соединения (активный или пассивный), порт соединения (как для модуля "Программа передачи данных пользователя", так и для модуля "Программа передачи данных сервера"), тип передачи, тип передаваемых данных, структуру данных и управляющие директивы, обозначающие действия, которые пользователь хочет совершить (например, сохранить, считать, добавить или удалить данные или файл и другие). После того как согласованы все параметры канала передачи данных, один из участников соединения, который является пассивным (например, "Программа передачи данных пользователя"), становится в режим ожидания открытия соединения на заданный для передачи данных порт. После этого активный модуль (например, "Программа передачи данных сервера") открывает соединение и начинает передачу данных. После окончания передачи данных, соединение между "Программой передачи данных сервера" и "Программой передачи данных пользователя" закрывается, но управляющее соединение "Интерпретатора протокола сервера" и "Интерпретатора протокола пользователя" остается открытым. Пользователь, не закрывая сессии FTP, может еще раз открыть канал передачи данных.
Переопределение стилей пользователем В целях обеспечения пользовательского контроля над стилями, CSS 2 меняет семантику оператора !important, определенного в CSS 1. В CSS 1 авторы всегда имеют последнее слово в отношении стилей. В CSS 2, если таблица стилей пользователя содержит !important, она имеет приоритет над любым применимым правилом в таблице стилей автора. Это важная возможность для пользователей, которые требуют или должны избегать конкретные сочетания цветов или контрастов, пользователей, которым необходимы большие размеры шрифтов, и т. д. Пример. n P { font-size: 24 pt ! important } Значение CSS 2 inherit, которое может принимать любое свойство, позволяет сократить использование правил !important, касающихся всего или почти всего документа. Например, следующий стиль делает фон каждого объекта белым, а цвет текста — черным: Пример. n /* Установить черный текст и белый фон для тела документа. */ BODY { color: black ! important ; background: white ! important } /* Наследовать значения color и background всеми другими элементами, усилив правило при помощи !important. Обратите внимание, это можно по-прежнему переопределить более конкретными пользовательскими стилями */ * { color: inherit ! important ; background: inherit ! important } CSS 2 также включает следующие возможности пользовательского контроля: n —Системные цвета (для свойств color, background-color, border-color и outline-color) и шрифты (для font) означают, применяют к веб-документу настройки системы пользователя. —Динамические обводки (свойство outline) позволяют пользователям (например, с плохим зрением) создавать вокруг контента рамки, которые не влияют на верстку, но подсвечивают информацию. Например, для рисования жирной черной линии вокруг элемента, на который наведен фокус и красной вокруг активного элемента, можно использовать следующие правила: n Пример. n : focus { outline: thick solid black } : active { outline: thick solid red }
JScript И ECMASCRIPT n n Интерпретируемый язык программирования, стандартизированный международной организацией ECMA в спецификации ECMA-262. Языки Java. Script, JScript и Action. Script являются расширением стандарта ECMA-262. Название "ECMAScript" явилось фактически компромиссом между организациями, вовлеченными в процесс стандартизации, в частности Netscape и Microsoft. Хотя Java. Script и JScript стремились к совместимости с ECMAScript, они имеют ряд дополнительных возможностей не предусмотренных спецификацией ECMA.
JScript И ECMASCRIPT n n Синтаксис JScript во многом аналогичен языку Java. Script, однако, помимо добавления клиентских скриптов на вебстраницы и некоторых других функций, JScript может использоваться и для других целей, например: § автоматизация администрирования систем Microsoft Windows; § создание страниц ASP. Язык JScript получил дальнейшее развитие в виде языка JScript. NET, который ориентирован на работу в рамках платформы Microsoft. NET
ОБЩАЯ ХАРАКТЕРИСТИКА JScript n n n JScript - интерпретируемый, объектно-ориентированный язык. Хотя он JScript имеет существенно меньшее количество возможностей, чем такие объектно-ориентированные языки как C++ и Java. Возможности языка существенно ограничены: § язык не позволяет разрабатывать самостоятельные приложения; § сценарии на JScript могут выполняться только при помощи интерпретатора, в частности Web-браузером. JScript - язык без строгого контроля типов. Поэтому не требуется объявлять тип переменных явно. Кроме того, во многих случаях JScript исполняет преобразования автоматически, когда они необходимы. Например, при сложении строки и числа, число будет преобразовано в строку.
ОСНОВЫ JScript n n Код на JScript пишется в текстовом формате, и организован в инструкции, блоки, состоящие из связанных наборов инструкций, и комментариев. В пределах инструкции можно использовать переменные и данные, такие как строки, числа и выражения. Для объявления конца инструкции используется точка с запятой (; ). Группа JScript-инструкций, заключенная в фигурные скобки {}, называется блоком. Комментарием в JScript является текст, расположенный после // до конца строки. Многострочный комментарий начинается с /*, и кончается */.
ОСНОВЫ JScript n n n Знак равенства (=) используется в JScript как присваивание. Следующий код Pi = 3. 14; подразумевает "Присвоить значение 3. 14 переменной Pi" При сравнении двух значений на равенство применяется двойной знак равенства (==). == JScript выражения можно разделить на логические или числовые. Выражения содержат некоторые особенности, к примеру, символ "+" означает "добавить к. . . ". Любая допустимая комбинация значений, переменных, операторов, и других
ОСНОВЫ JScript: ПЕРЕМЕННЫЕ n n n Объявление переменной перед использованием является необязательным. Для этого используется инструкция var. Инструкция var является обязательной при объявлении локальной переменной внутри функции. Разрешается объявление переменной неявно - без инструкции var. Однако, в выражениях var применять необъявленные переменные не допускается. JScript различает регистр в имени переменной. Name и name рассматриваются как различные переменные.
ОСНОВЫ JScript: ПРЕОБРАЗОВАНИЯ ТИПОВ n n n JScript - язык с нестрогим контролем типов, переменные в JScript не имеют строго фиксированного типа. Переменные имеют тип, эквивалентный типу значения, которое они содержат. Однако, в некоторых случаях, необходимо принудительное преобразование переменной в определенный тип. Числа могут быть объявлены как строки, а строки необходимо преобразовать в числовой тип. Для этого применяют функции parse. Int()
ОСНОВЫ JScript: ТИПЫ ДАННЫХ n n n В JScript используется шесть типов данных. Основные - числа, строки, объекты, логический. Остальные два - null и undefined (т. е. неопределенный). Строки объявляются при помощи двойных кавычек или Строки апострофов. Строка может состоять из нуля или более символов unicode. Когда количество символов равно нулю, это называется пустой строкой (""). JScript поддерживает числа как целые, так и с плавающей целые запятой. Также существуют специальные представления чисел, например Na. N (не число). Примеры чисел: 3. 14 // Вещественное число. 15 // Целое число. 0177 // Восьмеричное число 177. 0 XA 8 // Шестнадцатиричное число A 8.
ОСНОВЫ JScript: ТИПЫ ДАННЫХ n n n Логический тип допускает значения - true и false. Любое выражение, равное 0, считается эквивалентным false, а любое выражение, равное числу, отличному от 0 будет эквивалентным true. Undefined – означает, что тип не определен. Значение undefined имеет переменная после ее объявления и до присвоения ей какого-либо определенного значения. Переменная типа null - не имеет никакого определенного значения.
ОСНОВЫ JScript: УПРАВЛЕНИЕ ХОДОМ ПРОГРАММЫ n n n В JScript поддерживаются условные выражения if и if if. . . else. При использовании нескольких условий if. . . else одновременно можно использовать операторы ||(ИЛИ || ) или &&(И). && В JScript поддерживается несколько типов циклов: for, for. . . in, while, do. . . while и switch. for. . . in while switch В JScript существует инструкция остановки выполнения цикла. Оператор завершения break может использоваться, чтобы остановить цикл, при выполнении какого-либо условия. Инструкция continue используется, чтобы немедленно перейти к continue выполнению следующей итерации, пропуская остальную часть выполнения кода текущей итерации, но обновляя переменную-счетчик.
Функции n n В JScript имеется два вида функций: встроенные и определяемые. JScript позволяет создавать собственные функции. Определение функции состоит из объявления параметров и блока инструкций JScript. Объекты n n В JScript объекты по сути являются совокупностями методов и свойств. В JScript объекты можно разделить на три вида: встроенные, созданные и браузерные. В JScript, обработка объектов и массивов идентична. Можно обратиться к любой части объекта (его свойствам и методам) либо по имени, либо по индексу. Нумерация индексов в JScript начинается с нуля.
DHTML n n Динамический HTML или DHTML представляет собой набор технологий, которые совместно позволяют создавать интерактивные веб-сайты на основе статического языка разметки (HTML), языка создания клиентских сценариев (Java. Script), языка описания представления документа (CSS) и документной объектной модели (DOM). DHTML позволяет сценарным языкам изменять переменные языка описания представления документа, таким образом изменяя вид и поведение прежде статического содержимого HTML документа уже после полной загрузки документа и в процессе просмотра его пользователем. Таким образом, динамичность привносимая DHTML проявляет себя в процессе просмотра страницы, но не имеет никакого отношения к генерации содержимого страницы при каждой ее загрузке. В противоположность этому динамически генерируемая страница - более широкое понятие, подразумевающее, например, генерацию содержимого веб-страницы индивидуально для каждого пользователя. Это достигается созданием страниц с помощью клиентских или серверных (например на PHP или Perl) сценариев.
ПРИЛОЖЕНИЯ, ПЛАГИНЫ, СЦЕНАРИИ n Для расширения возможностей клиент-серверного взаимодействия в рамках протокола HTTP помимо создания на клиентской стороне расширений стандартных возможностей, предоставляемых языками разметки и браузерами, можно также разрабатывать на стороне веб -сервера приложения, плагины и сценарии, расширяющие возможности самого веб-сервера. n Основные подходы к реализации серверных приложений n Непосредственная обработка запросов и формирование ответов. Встраивание программного кода в шаблоны HTML страниц. n
ПРИЛОЖЕНИЯ, ПЛАГИНЫ, СЦЕНАРИИ n n Плагин (plug-in) — независимо Плагин компилируемый программный модуль, динамически подключаемый к основной программе, предназначенный для расширения или использования ее возможностей. Обычно выполняются в виде разделяемых библиотек. Сценарий (скрипт, script) — программа, Сценарий которая автоматизирует некоторую задачу, которую пользователь выполняет вручную используя интерфейсы программы.
CGI n n CGI (Common Gateway Interface, «общий интерфейс CGI шлюза» ) — стандарт интерфейса, используемого для связи внешнего приложения с веб-сервером. Приложение, использующее такой интерфейс с вебсервером, принято называть шлюзом, сценарием ( «скриптом» ) или «CGI-программой» . Благодаря этому интерфейсу для разработки приложений можно использовать любой язык программирования, который располагает средствами взаимодействия со стандартными устройствами ввода/вывода. Такими возможностями обладают в также сценарии для встроенных командных интерпретаторов операционных
CGI n Каждый раз, когда веб-сервер получает запрос от клиента, он анализирует содержимое запроса и возвращает соответствующий ответ. Если запрос содержит указание на файл, находящийся на жестком диске, то сервер возвращает в составе ответа этот файл; ¨ Если запрос содержит указание на программу и необходимые для нее аргументы, то сервер исполняет программу и результат ее работы возвращает клиенту. ¨ n CGI определяет: ¨ каким образом информация о сервере и запросе клиента передается программе в форме аргументов и переменных окружения; ¨ каким образом программа может передавать назад дополнительную информацию о результатах (например о типе данных) в форме заголовков ответа сервера.
СЦЕНАРИИ n К основным достоинствам разработки приложений на стороне веб-сервера в форме сценариев можно отнести следующие: поскольку сценарии не компилируются а интерпретируются, то ошибки в сценарии вызовут только диагностическое сообщение, но не приведут к дестабилизации веб-сервера или операционной системы. ¨ лучшие выразительные возможности. Язык сценариев как правило имеет собственный проблемно-ориентированный набор команд, и одна строка сценария может делать то же, что несколько десятков строк на традиционном языке. Как следствие, на этом языке может писать программист низкой квалификации. ¨ Поддержка кроссплатформенности. ¨
СЦЕНАРИИ n n Поскольку сценарии интерпретируются из исходного кода динамически при каждом исполнении, они выполняются обычно значительно медленнее готовых программ, транслированных в машинный код на этапе компиляции. В плане быстродействия сценарные языки можно разделить на: Языки динамического разбора (например command. com). Интерпретатор считывает инструкции из файла программы минимально требующимися блоками, и исполняет эти блоки, не читая дальнейший код. ¨ Предварительно компилируемые (например Perl). Вначале считывается вся программа, затем компилируется либо в машинный код, либо в один из внутренних форматов, после чего получившийся код исполняется. ¨
ASP n n n ASP (Active Server Pages) — технология, разработанная компанией Microsoft, позволяющая легко создавать приложения для Веб. Программирование на ASP дает разработчикам доступ к интерфейсу программирования приложений Internet Information Server с помощью языка сценариев VBScript и JScript. ASP работает на платформе операционных систем линии Windows NT и на веб-сервере
АРХИТЕКТУРА ASP Запрос HTTP Веб-сервер Клиент Ответ HTTP ASP. DLL Расширение ISAPI Содержимо е файла ASP Результаты работы сценария Запрос HTTP Команды ASP Запрос HTTP Windows Scripting Host Ответ Вызов или включение Файл ASP. asp. asa Библиотека DLL COM-объекта или другие ASPдокументы
АРХИТЕКТУРА ASP n n n Файлы ASP представляют собой сценарии, интерпретируемые по мере поступления запросов. ISAPI-расширение ASP. DLL связано в IIS с расширениями файлов. asp или. asa. ASP. DLL просматривает файлы с указанными расширениями на предмет наличия тегов, обозначающих внедренный код для выполнения на сервер и передает найденный код в Windows Script Host (WSH). WSH выполняет этот код и возвращает результат файлу ASP. DLL передает IIS этот результат и содержимое самого файла ASP.
ОСНОВЫ ASP n IIS различает код, выполняющийся на сервере, и содержимое, отправляемое клиенту с помощью ASP. DLL, анализируя файл ASP на наличие начального “<%” и конечного “%>” тегов и выполняя <% %> код, расположенный между ними, с помощью WSH. <% Language=VBScript %> <HTML> <BODY> <% Response. Write(“<p>Hello world!</p>”) %> </BODY> </HTML> n Первая строка кода <% Language=VBScript %> сообщает о необходимости использовать
ОСНОВЫ ASP. ОБЪЕКТЫ ASP n Событие веб-запроса обрабатывается с помощью следующих объектов: ¨ Response. Используется для записи данных в запрос Response HTTP, возвращаемый клиенту. ¨ Application. Содержит параметры и конфигурации по Application настройке работы ASP для данного веб-сайта. ¨ Request. Хранит содержимое HTTP-запроса и Request обеспечивает вспомогательные функции для обработки данных HTTP-запроса. ¨ Server. Содержит информацию о веб-сервере, веб. Server сайте, а также обеспечивает поддержку вызывающей программы.
Сервлеты (Java Server Pages) n n n Технология Java Servlets (сервлеты) была разработана компанией Sun Microsystems, чтобы использовать преимущества платформы Java для решения проблем технологии CGI и API расширений сервера. Технология решает проблему производительности, выполняя все запросы как нити в одном процессе. Сервлеты также могут легко разделять ресурсы, и не зависят от платформы, поскольку выполняются внутри Java Virtual Machine (JVM). Любой сервлет является классом Java, и, поэтому, должен быть выполнен внутри Java VM так называемым сервлет - контейнером (servlet container, servlet engine). Сервлет - контейнер загружает класс сервлета при первом обращении к нему, либо сразу при запуске сервера при специальном указании. Далее сервлет остается загруженным для обработки запросов, пока он не выгружается явным образом, либо до остановки контейнера. Технология является распространенной, и может быть использована со всеми популярными Web - серверами (Enterprise Server от Netscape, Microsoft Internet Information Server (IIS), Apache, Java Web Server от Sun)Страницы Java Server Pages представляют из себя шаблоны страниц HTML, схожие с шаблонами РНР и ASP. Основным отличием от других подобных технологий является то, что код, находящийся внутри специальных тэгов не интерпретируется при обращении к странице, а предварительно компилируется в Java Servlet. Статические участки шаблона преобразуются в вызовы к функциям для их помещения в поток вывода. Код компилируется так, как если бы он находился внутри сервлета. Компиляция JSP страниц в сервлеты является трудоемкой, но проводится один раз - либо при первом обращении к странице, либо при запуске сервлет – контейнера.
PERL Perl (Practical Extraction and Report Perl Language) — язык программирования, сильными сторонами которого считаются его богатые возможности для работы с текстом, в том числе реализованные при помощи регулярных выражений. n Perl имеет огромную коллекцию дополнительных модулей CPAN. n
СИНТАКСИС ЯЗЫКА PERL n n Первая строка исходного кода может начинаться с «#!/путь к интерпретатору Perl [-ключи]» для указания системе пути к интерпретатору Perl для выполнения программы. Например: #!/usr/bin/perl print "Content-type: text/htmlnn"; print "Hello, world!";
ТИПЫ ДАННЫХ PERL n n Основные типы данных языка: скаляр, массив, ассоциативный массив (хеш-таблица), функция, файловый дескриптор и константа. Различие между переменными разных типов выражается специальным знаком, который ставится перед именем переменной: § § § $a - скаляр или указатель a @b – скалярный массив %c – ассоциативный массив (хеш-таблица) &d- функция F - дескриптор ввода-вывода или константа
ОСНОВНЫЕ ТИПЫ ДАННЫХ PERL n n Скалярные переменные используются для хранения одиночных значений. Они могут содержать числа, строки и ссылки на другие объекты. Перед именем скалярной переменной необходимо ставить знак доллара '$'. Тип скалярной переменной не фиксирован и определяется динамически в зависимости от контекста.
ОСНОВНЫЕ ТИПЫ ДАННЫХ PERL n n n Массив (скалярный) является упорядоченным списком скаляров. Каждый элемент массива имеет порядковый номер (индекс), с помощью которого к нему можно получить доступ. Нумерация элементов начинается с нуля. Перед именем переменной типа массив указывается знак @, а для доступа к определенному элементу массива необходимо ставить знак $, так как определенный элемент массива является скаляром.
ТИПЫ ДАННЫХ PERL n n Тип скалярной переменной не фиксирован и определяется динамически в зависимости от контекста Скалярный массив: § Является упорядоченным списком скаляров. § Каждый элемент массива имеет порядковый индекс, с помощью которого к нему можно получить доступ. § Нумерация элементов начинается с нуля. § Перед именем переменной-массива необходимо ставить знак '@' § При доступе к определенному элементу массива
ОСНОВНЫЕ ТИПЫ ДАННЫХ PERL n n Хеш-таблица представляет собой Хеш-таблица ассоциативный массив, позволяющий ассоциировать строку (ключ) со скаляром (значение). Строка называется ключом, а скаляр в хештаблице значением. Перед именем переменной-списка необходимо ставить знак процента %, а для доступа к определенному элементу массива рекомендуется ставить знак $. Хеш-таблица представляет собой массив, где в
ОСНОВНЫЕ ТИПЫ ДАННЫХ PERL n n n Например, для того чтобы присвоить значение трем элементам массива %dict с индексами first, second и third, можно воспользоваться одним из двух способов, указанных ниже. $dict {'first' } = "первый"; $dict {'second' } = "второй"; $dict {'third' } = "третий"; или %dict { 'first', 'second', 'third' } = "первый", "второй", "третий"; Существует способ одновременной записи в ассоциативный массив и ключевых слов, и их значений: имя_массива = ( ключ 1, значение 1, ключ 2, значение 2, . . . ); Для примера, приведенного выше, это выражение будет
ОСНОВНЫЕ ТИПЫ ДАННЫХ PERL Функция представляет собой фрагмент Функция исполняемого кода. n Функция всегда возвращает какое-либо значение либо UNDEF. n Если возвращаемое значение явно не указано оператором return, возвращается последнее вычисленное значение. n
ФАЙЛОВЫЕ ДЕСКРИПТОРЫ PERL n n Файловый дескриптор представляет собой указатель дескриптор на файл, устройство или PIPE канал, открытые для записи, чтения или для записи и чтения Оператор “<>” в Perl называется бриллиантовым <> оператором (diamond operator). Он определяет операцию чтения строки из потока, дескриптор которого содержится в угловых скобках. $str=<STDIN>; #чтение строки из дескриптора STDIN (стандартного потока ввода) § @lines=<F>; #чтение всех строк из связанного с дескриптором файла F. § print STDOUT $str; #печать в STDOUT (стандартный поток вывода) §
ПРЕДОПРЕДЕЛЕННЫЕ ПЕРЕМЕННЫЕ n n В языке Perl существует предопределенная скалярная переменная $_, используемая по умолчанию. В нее помещаются данные, в том $_ случае если в выражении отсутствует операция присваивания результата. Кроме $_ в Perl имеются и другие предопределенные переменные. § $] - номер версии Perl. $] § $. - номер строки, прочитанной из файла последней. $. § $! - сообщение об ошибке. $! § $$ - идентификатор текущего процесса. $$ § $^T - время в секундах с начала 1970 года до запуска данной программы. § $O - имя файла, в котором содержится выполняемая программа. $O § $1. . . $9 - фрагменты текста, отмеченные при выполнении операции сопоставления с шаблоном.
ПРЕДОПРЕДЕЛЕННЫЕ ПЕРЕМЕННЫЕ n n n Подобно предопределенным скалярным переменным, в Perl существуют массивы, имеющие специальное значение. Наиболее важный из них - ассоциативный массив %ENV, содержащий текущие значения %ENV переменных окружения. Чтобы получить значение переменной окружения, надо обратиться к элементу данного массива, указав в качестве индекса имя переменной окружения: $path_string = $ENV { 'PATH' };
РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ В PERL В Perl встроена мощная поддержка регулярных выражений. n Благодаря этому Perl очень эффективен для обработки текстов. n Большая часть работы с регулярными выражениями производится при помощи операторов поиска и замены n
ОПЕРАТОР ПОИСКА В PERL n n n Оператора поиска m// записывается следующим образом: m/шаблон/ Если значение переменной $_ содержит подстроку, соответствующую указанному шаблону, оператор поиска возвращает значение true. В простейшем случае в качестве шаблона может быть задана последовательность символов. print "Введите путь к файлу: "; $_ = <INPUT>; if (m/usr/) { print "В составе пути есть последовательность 'usr'n"; } else { print "В составе пути нет последовательности
ОПЕРАТОРЫ ЗАМЕНЫ В PERL n n n Оператор замены записывается следующим образом: s/шаблон поиска/выражение для замены/[набор модификаторов] При выполнении оператора s/// производится поиск соответствия шаблону Если поиск завершается успешно, найденная подстрока заменяется указанным выражением. Подобно оператору m//, оператор s/// использует переменную $_. $_ $_ = "CGI-сценарий написан на языке С"; s/C$/Perl/; print; В результате выполнения сценария на консоль будет выведена следующая строка:
PHP n n n PHP (PHP: Hypertext Preprocessor). PHP — один из наиболее популярных сценарных языков ввиду своей простоты, скорости выполнения, богатой функциональности и распространенности исходных кодов на основе лицензии PHP состоит из ядра и набора подключаемых расширений: для работы с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и др.
PHP n n n Возможна разработка своих собственных расширений с их последующим подключением. Хотя существуют сотни расширений, однако в стандартную поставку входит лишь несколько десятков хорошо зарекомендовавших себя. Интерпретатор PHP подключается к веб-серверу либо через DLL модуль, созданный специально для этого сервера, либо в виде CGI-приложения. В настоящее время PHP используется сотнями тысяч разработчиков. Порядка 20 миллионов сайтов сообщают о работе с PHP, что составляет более пятой доли доменов Интернета
PHP n n Синтаксис PHP подобен синтаксису языка Си. При этом некоторые элементы, как например ассоциативные массивы и цикл foreach, заимствованы из языка Perl. Для работы программы не требуется описывать какие-либо переменные, используемые модули, и т. п. Любая программа может начинаться непосредственно с оператора PHP. <? php echo 'Hello, world!'; ? >
n n n PHP Помимо ограничителей <? php ? >, допускается использование дополнительных вариантов, таких как <? ? > и <script language="php"> </script>. Кроме того, до версии 6. 0 допускается использование ограничителей языка программирования ASP <% %>. Имена переменных начинаются с символа $, тип переменной объявлять не требуется. В отличие от имён функций и классов, имена переменных чувствительны к регистру. Переменные обрабатываются в строках, заключённых в двойные кавычки. Инструкции завершаются точкой с запятой (; ) PHP поддерживает два типа комментариев: комментариев • • n в стиле языка Си (ограниченные /* */), C++ (начинающиеся с // и идущие до конца строки) PHP является языком программирования с динамической типизацией, не требующим указания типа при объявлении переменных, равно как и самого объявления переменных.
ТИПЫ ДАННЫХ PHP n Преобразования между скалярными типами может осуществляться автоматически (хотя и имеются возможности для явного преобразования типов). n Скалярные типы данных: целый тип (integer), вещественный тип n данных (float, double), логический тип (boolean), строковый тип (string), специальный тип NULL. Нескалярные типы: массив (array), объект (object), «ресурс» (resource). n n n Тип NULL предназначен для переменных без определённого значения. Значение NULL принимают неиницализированные переменные, переменные инициализированные константой NULL, а также переменные, удалённые при помощи конструкции unset(). Ссылки на внешние ресурсы имеют тип resource. Переменные данного типа, как правило, представляют собой дескриптор, позволяющий управлять внешними объектами, такими как файлы, динамические изображения, результирующие таблицы базы данных и т. п. Массивы поддерживают числовые и строковые ключи и являются гетерогенными. Массивы могут содержать значения любых типов, включая другие массивы.
СУПЕРГЛОБАЛЬНЫЕ МАССИВЫ n Суперглобальными массивами (superglobal arrays) в PHP называются предопределённые массивы, которые видны в любом месте исходного кода без использования ключевого слова global. n $GLOBALS - массив всех глобальных переменных (в том числе $GLOBALS и пользовательских). $_SERVER - содержит множество информации о текущем запросе и сервере. $_ENV - текущие переменные среды. Их набор специфичен для $_ENV каждой конкретной платформы, на которой выполняется сценарий. $_GET - ассоциативный массив с параметрами GET-запроса. В $_GET исходном виде эти параметры доступны в $_SERVER['QUERY_STRING'] и в $_SERVER['REQUEST_URI'] в составе URI. n n n
СУПЕРГЛОБАЛЬНЫЕ МАССИВЫ n n $_POST - ассоциативный массив значений полей HTML-формы при $_POST отправки методом POST. $_FILES - ассоциативный массив со сведениями об отправленных методом $_FILES POST файлах. Каждый элемент имеет индекс идентичный значению атрибута «name» в форме и, в свою очередь, также является массивом со следующими элементами: • • • n n n ['name'] — исходное имя файла на компьютере пользователя. ['type'] — указанный агентом пользователя MIME-тип файла. ['size'] — размер файла в байтах. ['tmp_name'] — полный путь к файлу во временной папке. ['error'] — код ошибки. $_COOKIE - ассоциативный массив с переданными агентом пользователя $_COOKIE значениями cookie. $_REQUEST - общий массив вводных данных запроса пользователя как в $_REQUEST массивах $_GET, $_POST, $_COOKIE. Начиная с версии PHP 4. 1 включается и содержимое $_FILES. $_SESSION - информация о текущей сессии пользователя. $_SESSION
ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В PHP n n n PHP поддерживает широкие объектно-ориентированные возможности, полная поддержка которых была введена в пятой версии языка. Класс в PHP объявляется с помощью ключевого слова class. Методы и поля класса могут быть общедоступными (public, по умолчанию), защищёнными (protected) и скрытыми (private). PHP поддерживает все три основные механизма ООП — инкапсуляцию, полиморфизм и наследование (родительский класс указывается с помощью ключевого слова extends после имени класса). Поддерживаются интерфейсы (ставятся в соответствие с помощью implements). Разрешается объявление финальных, абстрактных методов и классов.
ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ PHP § § § имеется большой набор функций для работы со строками; работа с регулярными выражениями PCRE. работа с базами данных, осуществляемая посредством модулей: o php 5 -mysql для My. SQL, o php 5 -pgsql для Postgre. SQL для PHP разработаны средства шаблонирования вебстраниц, позволяющие эффективно разделить представление от модели, например Smarty; имеется библиотека для работы с графическими изображениями GD, позволяющая производить преобразования с графическими файлами, и создавать изображения «на лету» ;
Серверные API n n n API предназначен для реализации удаленного вызова функций модуля исполняемого на сервере приложения из клиентского кода Web-приложения. Web-часть в данном случае не строится на основе форм, и использует традиционную серверные технологии, например JSP, бизнес-логика при этом выполняется на сервере приложений. С помощью вызова серверных функций обычно запрашиваются данные, которые потом могут быть отображены на клиенте, осуществляеся сохранение изменений и т. д. . Вызов серверных функций происходит прозрачно для клиентского кода, в действительности вызываются методы объектов-прокси, при этом сериализация/десериализация аргументов и возвращаемых функцией результатов и сетевое взаимодейсвие происходит "под капотом". Для серверного кода вызов фунции модуля также происходит "как обычно" - в аргументы функции передаются десериализованные объекты Java. Script, которые были переданы на стороне клиента. Серверная функция возвращает обычный объект, который потом будет сериализован, передан по сети и затем десериализован на клиенте. (Platypus Web API, специализированные API You. Tube, API-интерфейсы доступа к Web (в Windows) C помощью этих API приложения могут предоставлять и использовать сервисы Gopher, FTP и HTTP, не зная внутреннего устройства соответствующих протоколов. Клиентские API включают Windows Internet, также называемый Win. Inet (позволяет приложениям взаимодействовать с протоколами Gopher, FTP и HTTP), и Win. HTTP (дает возможность приложениям взаимодействовать с протоколом HTTP). B определенных ситуациях Win. HTTP удобнее Win. Inet. HTTP — это серверный API, введенный в Windows Server 2003 для поддержки разработки серверных Web-приложений.
ОПРЕДЕЛЕНИЕ AJAX - Asynchronous Java. Script and XML. Это концепция AJAX использования нескольких смежных технологий, ориентированная на разработку высокоинтерактивных приложения, быстро реагирующих на действия пользователя, выполняющих большую часть работы на стороне клиента и взаимодействующих с сервером посредством внеполосных обращений. Внеполосным обращением называется запрос к серверу, который обращением приводит к оперативному обновлению страницы вместо ее замены. Требования n n Приложение должно передавать пользователям свежие данные, полученные с сервера. Новые данные должны интегрироваться в существующую страницу без ее полного обновления. Для браузера n Поддержка посредников (для внеполосных вызовов HTTP). Обычно реализуется в форме объекта Xml. Http. Request. n Поддержка обновляемой модели DOM .
ВНЕПОЛОСНЫЙ ВЫЗОВ HTTP n n n Внеполосный вызов HTTP – это HTTP запрос, который выдается за пределами встроенного модуля, обеспечивающего отправку форм HTTP. Инициируется событием страницы HTML и обслуживается компонентом-посредником, обычно объектом Xml. Http. Request. Объект XMLHTTPREQUEST Представляет собой компактную объектную модель для отправки сценарием обращений HTTP в обход браузера. Клиентский код сценария не может влиять на процесс размещения запроса и результат отправки запроса. Позволяет сценарию отправлять HTTP запросы и обрабатывать полученные ответы.
ФОРМАТ ПЕРЕДАЧИ ДАННЫХ В AJAX ФОРМАТ n n В качестве формата передачи данных обычно используются JSON или XML. JSON (Java. Script Object Notation) - текстовый JSON формат обмена данными, основанный на Java. Script и обычно используемый именно с этим языком. Несмотря на происхождение от Java. Script, формат считается языково-независимым и может использоваться практически с любым языком программирования. Для многих языков существует готовый код для создания и обработки данных в формате JSON.
JSON строится на двух структурах данных: Набор пар имя/значение (объект, запись, структура, словарь, хэш-таблица, список с ключом или ассоциативный массив). Пронумерованный набор значений. (массив, вектор, список, последовательность). § Пример { "first. Name": "Сергей", "last. Name": "Иванов", " profile": { " position": “доцент, к. ф. -м. н. ", "department": "кафедра информационных систем", "age": 40 }, "subjects": [ “интернет-технологии", «информационные технологии" ] }
Обзорные по Веб14.ppt