Файл: Технология CGI, заголовки ответов и запросов CGI 13.pdf
Добавлен: 23.04.2023
Просмотров: 100
Скачиваний: 2
Введение
В настоящее время большим спросом пользуются веб-приложения, будь то визитная карточка фирмы или большой развернутый портал для крупной компании. Веб-приложения — это лучшее средство для предоставления потенциальным потребителям товаров, например, предоставление комплексной информации об образовательных услугах по средством образовательного портала, на котором расположена вся необходимая информацию о ВУЗе для абитуриента, работодателя, преподавателя. В сфере веб-приложений существуют большое количество средств разработки веб-приложений, которые подразделяются в зависимости от функционального назначения веб-приложений. Сейчас как никогда распространена разработка динамических веб-приложений.
Веб-приложение - клиент-серверное приложение, где клиентом выступает браузер, а сервером – веб-сервер. Работа веб-приложения происходит между сервером и клиентом, хранение данных осуществляется на сервере, обмен информацией происходит по сети. Преимуществом веб-приложений является то, что клиенты не зависят от операционной системы пользователя, поэтому веб-приложения являются межплатформенными сервисами.
Инструментальные средства создания веб-приложений подразделяются на языковые средства и программные средства создания веб-приложений.
Обзор литературы
Гаврилова И.В. Разработка приложений [Электронный ресурс] : учеб. пособие /И.В. Гаврилова. — 2-е изд., стер. — М.: ФЛИНТА, 2012 . — 241 c.
В учебном пособии описан процесс разработки приложений информационных систем. Большое внимание уделено архитектуре и технологиям разработки приложений: интерфейсам прикладного программирования, механизмам доступа к данным. Рассматриваются методики разработки пользовательского интерфейса. Изложение материала сопровождается большим количеством иллюстраций, предлагаются вопросы для самопроверки, а также практикум, в котором нашли своё воплощение теоретические вопросы.
Котеров, Д. В. PHP 7 / Д. В. Котеров, И. В. Симдянов. — СПб.: БХВ-Петербург, 2016. — 1088 с.: ил.
Рассмотрены основы языка PHP и его рабочего окружения в Windows, Mac OS X и Linux. Отражены радикальные изменения в языке PHP, произошедшие с момента вы- хода предыдущего издания: трейты, пространство имен, анонимные функции, за- мыкания, элементы строгой типизации, генераторы, встроенный Web-сервер и многие другие возможности. Приведено описание синтаксиса PHP 7, а также функций для работы с массивами, файлами, СУБД MySQL, memcached, регуляр- ными выражениями, графическими примитивами, почтой, сессиями и т. д. Особое внимание уделено рабочему окружению: сборке PHP-FPM и Web-сервера nginx, СУБД MySQL, протоколу SSH, виртуальным машинам VirtualBox и менеджеру виртуальных машин Vagrant. Рассмотрены современные подходы к Web-разра- ботке, система контроля версий Git, GitHub и другие бесплатные Git-хостинги, но- вая система распространения программных библиотек и их разработки, сборка Web-приложений менеджером Composer, стандарты PSR и другие инструменты и приемы работы современного PHP-сообщества.
Колисниченко Д. Н. К60 PHP и MySQL. Разработка веб-приложений./ Д. Н Колисниченко — 6-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2017. — 640 с.
Даны начала программирования на PHP: установка и настройка Apache, PHP и MySQL, а также кроссплатформенной сборки XAMPP, выбор редактора PHP-кода, синтаксис языка и самые полезные функции PHP. Рассмотрено создание собствен- ного движка сайта и ряда дополнительных модулей — фотогалереи, RSS-граббера, модуля для работы с MP3, сервиса reCAPTCHA, применение мощного шаблониза- тора Smarty и создание простейшего собственного шаблонизатора. Показано, как с помощью технологии Ajax добиться обновления данных на странице без ее пере- загрузки. В книге представлено два реальных проекта: универсальная система управления контентом, которая подойдет для построения типичного сайта, и одно- го из реальных проектов автора. В шестом издании рассмотрены нововведения версии PHP 7.х, особенности создания индикатора загрузки файла и разыменовывания массивов, приведены примеры устранения типичных SEO-ошибок, допускаемых программистами, опи- сана работа с PDO, Curl и MobileDetect, дано введение во фреймворк Symfony.
Будилов В.А. Основы программирования для интернета / В.А. Будилов –СП6.: БХВ-Петербург,2013.-736 е.: ил.
Книга адресована тем, кто хочет научиться профессион6ально программировать для Интернета. В сжатой форме на примерах показаны основные методы создания приложений для глобальной сети , начиная от простейших HTML- страничек и заканчивая основными принципами построения распределенных многоуровневых систем. Даются основы CGI-программирования с использованием языка PHP . Раcсмотрено создание полноценных распределенных СGI-приложений на основе языков общего назначения , таких как C++ или Java. Отдельно представлены возможности платформенно– независимых технологий Java и CORBA.
Магдануров,Г.И. ASP.NET MVC Framework / Г.И. Магдануров, В.А. Юнев. – СПб,: Петербург,2010.-320 с,6ил.-(Профессиональное программирование).
Рассмотрены основные принципы и возможности технологии APS.NET MVC Framework и показаны способы ее практического использования при разработке веб – приложений. Описаны им преимущества подхода разработки MVC и рассмотрена структура MVC- приложения. Приведено сравнение технологии Web Forms и MVC Framework и рассмотрены вопросы их совмещения.
Описаны модель и доступ к данным (технологии LINQ, Entity Framework и др.), контроллеры , представление и интерфейсов приложения , механизмы маршрутизации и Ajax-функциональность . Уделено внимание вопросам тестирование – веб-приложений .Рассмотрены особенности применения ASP.Net MVC 2 в Visual Studio 2010
Венц К. Программирование в ASP.NET AJAX/ К. Венц -Пер,с англ,-СПб:Символ-Плюс,2008.-512 с.,ил.
Книга Кристина Венца «Программирование в ASP.NET AJAX»- полное практическое введение в новую платформу Microsoft ASP.NET AJAX 1.0, которая предоставляет большие преимущества при разработке Ajax- приложений, схожие с теми которые даёт ASP.NET для разработки серверных сценариев. Вы узнаете, как с помощью технологий Ajax без особых затрат времени создавать профессионально выполненные динамические веб-страницы.
После общего обзора платформы и основ JavaScript и Ajax рассмотрена организация составляющих частей .NET, включая пакеты Extensions, Control Toolkit, Futures CTP и Microsoft AJAX Library.Также читателю предлагается исчерпывающая глава об элементе управления UpdatePanel, который позволяет организовать независимое обновления отдельных частей веб-страницы.
Прохоренок Н.А. Разработка Web-сайтов с помощью Perl и MySQL./ Н.А. Прохоренок -СПб.: БХВ-Петербург,2009.-560 с.: ил,-(Профессиональное программирование )
На практических примерах описана разработка динамических Web-сайтов с помощью Perl и MySQL. Рассмотрены основные конструкции языка Perl, даны примеры написания сценариев, наиболее часто используемых при разработке Web-сайтов. Уделено внимании способам работы с базами данных посредствам Perl , а также вопросам администрирования аз с помощью программы phpMyAdmin . Показано, как обрабатывать данные формы, отправлять письма с сайта, загружать файлы на сервер с помощью формы, создавать личный кабинет для пользователей , гостевую книгу, форму и др.
Цель исследования: Изучить средства создания программ выполняемых на стороне сервера.
Объект исследования: средства создания программ выполняемых на стороне сервера..
Задача исследования - рассмотреть
- Клиент-серверное взаимодействие
- Языковые средства создания веб-приложений
- Технология CGI, заголовки ответов и запросов CGI
- Язык Perl
- Технология ASP.NET
- Язык PHP
- Технология Java Servlets
- Технология Java Server Pages
Глава 1 Основные понятия
В данной концепции участвуют две стороны: клиент и сервер. Здесь всё как в жизни: клиент – это заказчик той или иной услуги, а сервер – поставщик услуг. Клиент и сервер физически представляют собой программы, например, типичным клиентом является браузер. В качестве сервера можно привести следующие примеры: все HTTP сервера (в частности Apache), MySQL сервер, локальный веб-сервер AMPPS или готовая сборка Denwer (последних два примера – это не проста сервера, а целый набор серверов).
Рассмотрим основные понятия:
Клиент — достаточно широкое понятие, начиная от некоторого физического лица и заканчивая некоторой программой на компьютере (например, почтовый клиент). В нашем случае это компьютер, оснащённый специальным программным обеспечением, которое позволяет пользователю задать запрос к другой машине и получить ответ. Код, выполняемый на стороне клиента, чаще всего называют клиентским кодом. Он обеспечивает создание пользовательского интерфейса. Здесь, когда речь заходит о браузере, важную роль играет JavaScript и библиотеки расширения (в нашем случае jQuery) [Гаврилова И.В. Разработка приложений [Электронный ресурс] : учеб. пособие /И.В. Гаврилова. — 2-е изд., стер. — М.: ФЛИНТА, 2012 .].
Сервер — это компьютер, оснащённый специальным программным обеспечением, которое позволяет решить задачи предоставления пользователю доступа к некоторым услугам и ресурсам, которыми владеет и управляет данный сервер. Код, выполняемый на стороне сервера, чаще всего называют серверным кодом (серверным сценарием). Он обеспечивает обработку данных. Здесь важную роль играют серверные языки программирования. Примером таких языков являются PHP и Python.
Хранилище данных – это система, предназначенная для хранения данных на сервере. Чаще всего под хранилищем данным подразумевают базу данных (например, MySQL). Также хранилищем может выступать файловая система сервера.
Клиент-серверное взаимодействие — это обмен данными между клиентом и сервером.
Браузер не единственное программное обеспечение, которое позволяет осуществлять клиент-серверное взаимодействие. Почтовые клиенты, программы обмена мгновенными сообщениями, игровые многопользовательские приложения – пример программного обеспечения, которое осуществляет клиент-серверное взаимодействие[Гаврилова И.В. Разработка приложений [Электронный ресурс] : учеб. пособие /И.В. Гаврилова. — 2-е изд., стер. — М.: ФЛИНТА, 2012 .].
Клиент и сервер взаимодействую друг с другом в сети Интернет или в любой другой компьютерной сети при помощи различных сетевых протоколов, например, IP протокол, HTTP протокол, FTP и другие. Протоколов на самом деле очень много и каждый протокол позволяет оказывать ту или иную услугу. Например, при помощи HTTP протокола браузер отправляет специальное HTTP сообщение, в котором указано какую информацию и в каком виде он хочет получить от сервера, сервер, получив такое сообщение, отсылает браузеру в ответ похожее по структуре сообщение (или несколько сообщений), в котором содержится нужная информация, обычно это HTML документ.
Сообщения, которые посылают клиенты получили названия HTTP запросы. Запросы имеют специальные методы, которые говорят серверу о том, как обрабатывать сообщение. А сообщения, которые посылает сервер получили название HTTP ответы, они содержат помимо полезной информации еще и специальные коды состояния, которые позволяют браузеру узнать то, как сервер понял его запрос.
Сейчас мы схематично описали, как взаимодействуют клиент и сервер на седьмом уровне модели OSI, но, на самом деле это взаимодействие происходит на всех семи уровнях. Когда клиент отправляет запрос, сообщение упаковывается, можно представить, что сообщение заворачивается в семь оберток (хотя их может быть намного больше или же меньше), а когда сообщение получает сервер, он начинает эти обертки разворачивать.
Также стоит заметить, что в основе взаимодействия клиент-сервер лежит принцип того, что такое взаимодействие начинает клиент, сервер лишь отвечает клиенту и сообщает о том может ли он предоставить услугу клиенту и если может, то на каких условиях. Клиентское программное обеспечение и серверное программное обеспечение обычно установлено на разных машинах, но также они могут работать и на одном компьютере.
Данная концепция взаимодействия была разработана в первую очередь для того, чтобы разделить нагрузку между участниками процесса обмена информацией, а также для того, чтобы разделить программный код поставщика и заказчика.
Принципы взаимодействия для таких приложений во многом похожи. Схематически его можно описать следующим образом (Рис. 4.1)
Рис. 1. Клиент-серверное взаимодействие
Схема (Рис. 1.) предполагает обращение клиента к серверу и ответ на запрос, однако не учитывает специфику действий, производимые сервером (средства поддержки серверных сценариев).
При работе, к примеру, с базой данных, хранящейся на сервере, подобная схема не подходит, так как необходимо произвести некоторые действия. Под действием понимается внутрисерверное взаимодействие (Рис. 2).
Рис 2. Внутрисерверное взаимодействие
Поскольку в данном случае речь идёт о взаимодействие с удалённой машиной (местоположение которой пользователю неизвестно) очень важно, чтобы запрос обрабатывался как можно быстрее, чтобы длительность отклика сервера была как можно меньше. Также очень важно, чтобы задач, которые выполняет сервер, было как можно меньше, а значит и количества запросов – эти моменты влияют на работоспособность сервера.