Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Серверное программирование.docx
Скачиваний:
11
Добавлен:
01.07.2025
Размер:
591 Кб
Скачать
☆
    1. Программы cgi, схема их работы

Для того чтобы сервер Web мог вести диалог с пользователем, был разработан механизм программных расширений сервера, на- зываемый стандартным шлюзовым интерфейсом Common Gate- way Interface (CGI). Это часть Web-сервера, которая может взаи- модействовать с другими программами, выполняющимися на этом Web-узле. И в этом смысле CGI является шлюзом для пере- дачи данных, полученных от клиента.

Общая схема работы CGI состоит из следующих этапов:

  • получение (через протокол HTTP) информации с клиент- ских машин (от пользователя);

  • обработка полученной информации. В некоторых случаях CGI-программа не может обработать информацию (ответить на запрос) самостоятельно. Например, запрос может потребовать обращения к некоторой базе данных, которую CGI-программа читать не умеет. В этом случае CGI-программа на основании по- лученной информации формирует запрос к компетентной про- грамме, выполняющейся на том же Web-сервере;

  • отправка обработанной информации обратно в виде нового документа HTML.

При этом для ввода информации со стороны пользователя в документ HTML встраиваются формы, содержащие такие органы управления, как текстовые поля, списки, переключатели, кнопки и т.д.

Обычно одна из кнопок (типа Submit) предназначена для за- вершения ввода данных в форму. Когда пользователь заполнит всю форму, он нажимает эту кнопку, и данные из полей формы передаются программе CGI. Обработав данные, программа CGI динамически формирует новый документ HTML с результатами обработки и отправляет его обратно пользователю. При необхо- димости программа CGI может обращаться к СУБД.

Этот процесс проиллюстрирован на рис. 1.1.

Рис. 1.1. Взаимодействие браузера и сервера Web

Таким образом, программы CGI позволяют Web-серверу вести диалог с пользователем.

Что представляет собой программа CGI?

Это обычное консольное приложение, работающее в среде операционной системы сервера Web и осуществляющее обмен данными через стандартные потоки ввода и вывода.

Такое приложение загружается в оперативную память сервера и запускается только по явному запросу пользователя, когда к не- му выполняется обращение из документа HTML (с помощью тега типа <form action=“obrabotka.php” method = “post”>). Здесь CGI- программа — это “obrabotka.php”. Окончив обработку запроса пользователя, программа CGI завершает свою работу и выгружа- ется из памяти сервера.

Программа CGI работает на сервере как отдельный процесс. В рамках этого процесса она способна, в частности, обращаться к базам данных для выборки или обновления информации.

    1. Язык создания cgi-сценариев — php

Для использования технологии CGI программа Web-сервер должна удовлетворять определенным критериям — «поддерживать CGI». CGI-программы, запускаемые на Web-сервере, представлены не двоичным кодом (т.е. скомпилированным файлом), а текстовым. Поэтому для их выполнения требуется программа-интерпретатор того языка, на котором написана эта программа. Такой интерпрета- тор включается в состав Web-сервера и вызывается им при необхо- димости заняться выполнением программного кода.

CGI-сценарий (CGI-скрипт) — программа (в текстовом виде), предназначенная для исполнения на Web-сервере. Для создания CGI-скриптов можно использовать любой язык программирова- ния — важно лишь, чтобы на том Web-сервере, где предполагает- ся эту программу запускать, имелся интерпретатор этого языка.

Препроцессор — программа (интерпретатор), работающая со- вместно с Web-сервером, которая просматривает все или некото- рые файлы, выдаваемые Web-сервером посетителям, и выполняет над ними определенные действия в зависимости от содержащихся в этих файлах инструкций. Примером препроцессора является РНР (первоначальная расшифровка была Personal Home Page).

От других CGI-языков РНР отличается в лучшую сторону прежде всего своей простотой.

При создании программы на РНР нет необходимости учиты- вать все те многочисленные мелочи, которые усложняют жизнь программистам на Perl или C++ [9]. Синтаксис языка РНР допус- кает его легкое освоение как начинающим программистом, так и тем, кто уже использовал ранее какой-либо язык программирова- ния. Можно целиком и полностью сосредоточиться на решаемой задаче и не думать о мелочах.

Именно это и делает РНР наиболее подходящим вариантом для Web-дизайнера.

Одним из достоинств РНР является возможность без особых затруднений работать с серверами баз данных. Благодаря РНР использование базы данных на сайте стало едва ли не элементар- ным. Для работы с подавляющим большинством типов баз дан- ных в РНР есть встроенные функции, поэтому теперь достаточно лишь установить на Web-сервере программу работы с базой дан- ных (наиболее часто используется бесплатная MySQL — http://www.mysql.com) и включить в текст PHP-сценария команды работы с нею.