CGI-скрипты: что это такое, способы создания
Опубликованно 08.02.2019 05:40
CGI-это акроним от слов Common Gateway Interface. Так что есть небольшая программа, которая предоставляет вам способ взаимодействия Web-сервера в браузере, установив его таким образом, что не было возможным с помощью HTML. Большинство CGI-скрипты написаны на Perl. Это обычный язык программирования, который используется для создания сценариев на стороне сервера при помощи стандартного текстового файла с расширением (.cgi). Основные условия программы
Прежде чем скрипты иконки CGI, пользователь должен проверить, уточнить, есть ли ваш веб-хост-сайта, а также, если застройщик полномочия на их применение. Некоторые хостеры не позволяют. Если разработчик сайта выглядит папка CGI-bin при загрузке HTML-файлов, которое позволяет, сценарии GCI.
Некоторые хозяева не позволяют запросить не имеют функция bin, CGI, потому что это не предусмотрено по умолчанию всегда. Другие хозяева могут проверить и утвердить сценарии, прежде чем разрешение скриптов для использования CGI.
Если разработчик не требуется редактирование, будет нем по-прежнему текстовый редактор для написания скриптов на запросы. Какой редактор не планируется к использованию, важно, сохраните файл в текстовом формате.
Кроме того, вам понадобится FTP-программа, которая поставляется с коммерческой версией Pro и бесплатную версию Lite. Любой вариант будет работать, пока он загрузится в режиме ASCII, пользователя по установке, так как создание CGI-скриптов может длиться очень долго. Конфигурация и монтаж
Если пользователь CGI-bin, то есть хороший шанс для исполнения скриптов CGI. Для правильной установки рекомендуется предварительно посмотреть на странице часто задаваемые вопросы веб-хостинга, панель управления сайтом, поддержка документов или уведомления об установке. Одна из самых распространенных ошибок для вебмастера установка CGI-скриптов с неправильным методом.
Использовать если у вас уже есть сценарий, есть, путь должен быть правильно, иначе сервер не будет работать. До открывает скрипт, проверить обратную связь относительно всех переменных, для настройки этих строк и комментарии, начинающиеся с «#».
Если скрипт для сервера, определены, вы можете начать загружать. Неизбежно это приводит в ASCII режиме, так как простой CGI-скрипт-это текстовый файл. Технически сценарии могут быть выполнены из любого каталога, но большинство Hosts позволит только запускать CGI-Bean. Важно также правильное решения для файлов, скрипт CGI. Решение для файлов
Существует три типа доступа к данным с трех разных разрешениях для каждой группы.
UNIX-сервера, различные уровни доступа. Важно знать, какие права имеет скрипт: Группа состоит из добавленных пользователем на сервере. При необходимости разрешается удалить разрешение. Пользователя состоит только владелец файла в группе, это хостинг-аккаунт. Другая группа состоит из всех других аспектах на сервере. Чтение - позволяет пользователям читать данные и понять, что в файле. Write - разрешение на запись позволяет пользователям расшифровывать и записывать новую дату, удалить старые данные из архива. Execute, будет отправить файл только, если программа или загрузки скриптов CGI запускать exe. Предварительно убедитесь, что скрипт работает до тех пор, пока слева в режиме общего пользования. Пример Применения Application
CGI - приложение упрощает создание сложных, мощный, многоразовый веб-приложений, выполнение проектирования, документирования и разработки веб-проектов. Это полезно при использовании современных технологий и методов применяется, разработчики связывают с каждым инструментарий операционной системы или сервера.
Малый вес (в плане использования памяти), что делает его подходящим для нормальной среды CGI, выбор и высокую производительность в таких постоянных условиях, как FastCGI или mod_perl.
Добавлять ПЛАГИНЫ по мере роста потребностей, можно использовать более сложную функцию, если нужно, например, нужно написать приложение для поиска в базе данных-виджеты. Сценарий экземпляра - это то, что на самом деле пользователь-Web-сервер называется. Это очень маленький, простой файл, просто экземпляр заданных пользователем приложений и вызывает унаследованный метод run (). Ниже вы найдете полное описание «widget View.cgi»:
#!/usr/bin/perl -wuse widget View
my $webapp = widget View->new()
$webapp->run()
Как видите, виджет View.cgi приложение просто использует модуль Perl-пакет под названием widget View.ПМ.
CGI Application заботится о реализации метода new () и run (). Пользователь никогда не должен print () для отправки любого вывода в STDOUT вызова. Вместо этого весь вывод будет вернуться, как скаляр.
CGI - самый значительный вклад в управление состоянием приложения. Все, что нужно для продвижения приложения заранее, то можно отправить значение параметра HTML-формы «РМ» на «режим работы», то обращайтесь в форму. Это ключ к CGI Application. Методы Сценариев
С CGI Application, пользователь получает доступ к ряду встроенных методов. Ниже тех, которые вызываются из скрипта перечислены.
Метод new () - это конструктор для CGI. Есть ссылка на пакет приложений (класса). Есть ряд параметров как пары: ключ => значение.
Этот метод может занять несколько специфических параметров: TMPL_PATH - определяет путь к каталогу шаблонов. QUERY - позволяет указать уже созданный запрос к CGI-объект.ПМ. PARAMS - этот параметр позволяет установить время выполнения ряд пользовательских режимов. Давая различные значения в различных сценариях экземпляров, этот же модуль можно достичь применением более высокий уровень повторного использования.
Run () вызывается на объект Application Module из сценария. При вызове он выполняет функции для прикладного модуля.
Этот метод сначала определяет состояние приложения, установив значение параметра CGI-параметры, указанные mode_param (). По умолчанию В «РМ» для «Run Mode», которая содержит имя рабочего режима. Если это не указано, start_mode состояние по умолчанию равно значению (). После того, как определен режим, run () отправить просматривает таблицы, сохраненные run_modes (), и находит индекс функция, состоящая из названия режима. Если найден, вызывается функция, и возвращаемые данные print () 'ed STDOUT и отправлен в браузер. Если вы не нашли этот режим, в таблице run_modes (), run () будет croak (). Поддержка PSGI
Приложение обеспечивает встроенную поддержку PSGI. Предмет запроса по умолчанию для этого:
psgi_app ()
$psgi_coderef = WebApp->psgi_app({ ... args to new() ... })
Создать самый простой путь и снова PSGI - совместимый coderef. Вы должны аргументы в hashref так же, как и на новый. Есть PSGI-совместимый coderef с CGI ::: PSGI в качестве объекта запроса. Чтобы выбрать другой объект запроса, создать собственный объект run_as_psgi вставка () следующим образом:
run_as_psgi ()
my $psgi_aref = $webapp->run_as_psgi
Точно так же, как run, печать, не дает и не возвращает структуру данных, необходимую спецификация PSGI. Используйте его, когда вы запустите приложение через процессор, совместимый с PSGI, например, Plack. Конечный результат может выглядеть так:
Спецификация PSGI возврата является дескриптор файла или ссылку в разделе программы вместо строки байтов. В режиме PSGI это CGI Application поддерживает напрямую. Методы возможных переопределений
CGI реализованы некоторые методы, которые, как ожидается, будут перезаписаны путем их реализации в модуле подкласс. Эти методы заключаются в следующем: Установка(). Этот метод вызывается унаследованный метод конструктора new (). Метод setup () для определения следующих свойств / методов.
Метод setup () может вызвать любой из методов экземпляра настраиваемого приложения. Эта функция является хорошим местом, чтобы свойства, специфичные для приложения, с помощью $ webapp-> param ().
Метод setup () может быть реализован, как на картинке ниже:
Однако все, что в setup () определены режимы запуска Autorun mode часто, что можно начать с такой простой синтаксис, используя атрибуты режиме.
Метод сброса (). Если он реализуется, будет автоматически после создания CGI-скриптов и запуска приложения. Его можно использовать для очистки после операции. Типичное использование функции сброса () - завершение соединения с базой данных, которая была установлена в функции setup (). Вы можете также использовать метод сброса () для хранения информации о состоянии приложения на сервере: cgiapp_init () Чистый URI для начала отправить режимов
Современные веб-фреймворки идут без ограничений в URI, вместо этого предлагает чистые URI:
/cgi-bin/item.cgi?rm=view&id=15
Чистый URI для описание ресурса может быть:
/item/15/view.
Процесс сопоставления данного URI для запуска режима называется диспетчеризацией и обрабатываются CGI :: Application :: Dispatch. Extra-менеджера не требуется.
Вы работаете над проектом CGI :: Application на рабочем столе или ноутбука без установки полнофункционального Web-сервера, такие как Apache. Вместо этого, положить CGI :: Application :: сервера из CPAN. После нескольких минут установки пользователь получает свой собственный сервер приложений.
Выполнять автоматизированные тесты. Test :: WWW :: Mechanize :: CGIApp обеспечивает функциональное тестирование проекта CGI :: приложения без запуска Web-сервера. Test :: WWW :: Mechanize может сервер для проверки приложение через настоящий веб -.
Прямые тесты и беспроблемным. CGI - приложения, как правило, издание их режимов работы печатает в STDOUT. Это можно подавить с помощью переменной среды CGI_APP_RETURN_ONLY. Приложение имеет дополнительно включаемая архитектуры, который прост в использовании и в освоении новых плагинов. Пользовательский контент CGI
Это была первая спецификация, для развития динамического контента на веб-сервере. CGI материалам, поставляемых пользователям, которые не статический HTML-код, циновка из файла на сервере. Этот динамический контент генерируется в скрипте использовать, извлекать информацию из базы данных, адаптация контента к браузеру типа, производящего дознание, если новый пользователь или нет.
PHP-это язык, специально для реализации динамического содержимого на Web-серверах. Это делает разработку CGI-скриптов PHP намного проще, чем в других языках. Когда сервер запускается, он все необходимые контекст предоставляет ему информацию: Полную информацию о запросе, включая имя/IP удаленного хоста, запрошенный URL-адрес и его аргументы, строку запроса (если таковые имеются). Файлы cookie, связанные с запросом. В случае POST-запроса, путем отправки в веб-формы, наименования и значения параметров. Простой пример PHP-скрипта
Скрипт должен запустить процесс, а потом HTML-код выдавать, включая HTTP-заголовки. Пример PHP-скрипт:
В этом скрипте первая и последняя строки HTML-кода и предложения являются маркером в PHP, то вы получите скрипт из браузера, добавляя строку запроса из двух аргументов «data1» и «data2».
Помимо глобальной переменной $ _SERVER в скрипте следующие ассоциативные массивы запускать CGI-скрипты: $ _GET - имена и значения аргументов, которые сервер в запросе GET. $ _POST имен и значений параметров, переданных на сервер POST запрос при отправке формы. $ _COOKIE - имя и значение cookie в запросе. $ _REQUEST - все элементы в $ _GET, $ _POST и $ _COOKIEnpm для исполнения php-скриптов с nodejs через cgi. Этот модуль предназначен для deskshell, чтобы обеспечить беспрепятственную обработку скриптовый язык php.
Учитывая тот факт, что разработчики требование в nodejs и имеет требование единства, так называемые req, и объект ответа, называется res, он должен использовать этот модуль, как показано ниже:
Так, по запросу /test.php php отвечает модуль для CGI-скрипты. Функция paramsForRequest читает объект request и устанавливает правильные переменные окружения cgi-запроса. Это будет, как отдельная функция, поэтому можно при необходимости добавить дополнительные переменные запроса. Функция Detect двоичной в окнах ищет дополнительный модуль узла «php-bin-win32», мобильные сервисы php-файл. Этот код работает для deskshell и, при необходимости, использовать его, чтобы использовать для других целей и дополнительные функции. Первая программа
Написать простую программу CGI на Perl, придерживаясь традиции, использовать фразу «Привет мир». Она представлена здесь в полном объеме. Вы сохраняете его в файле с именем «hello» в каталог cgi-bin и запустить его, введя URL:localhost/cgi-bin/hello в браузере. Пользователь должен текст «Hello world» в браузере. Если нет, сделать знакомство с разделом boxout для отладки CGI-программ, чтобы помочь в отслеживании проблемы.
Это простая программа. Есть только несколько моментов, благодаря которым разработка CGI-скриптов на Perl от стандартного программного обеспечения, соусы из командной строки. Первым из них является опция -T на линии притон. Этот Perl передает в режиме «окраска». В этом режиме Perl автоматически игнорирует все данные, полученные от пользователей, и не позволять передавать эти данные в операционную систему, пока они не будут удалены. В этом смысле раскраски режим - хорошая идея.
Второе отличие состоит в добавлении строки, печатая заголовок содержимого. Это будет первая попытка пользователя с протоколом CGI.
Все CGI-программы набор заголовков должны выдать в браузер пользователя. В большинстве случаев единственный титул, которого они возвращаются, содержание. Это сообщает браузеру, какие данные отправляет программа. В этом примере простой текст, так что тип содержимого «text/plain».
Обычно возвращают HTML, так что тип содержимого «text / html». Нет причин, почему программа не может возвращать более сложные данные, такие как PNG («image / png»). Набор заголовков строки должен отдельно от фактических данных пустая. Это достигается за счет печати двух символов новой строки после заголовка к CGI-скриптов на сервере.Также убедитесь, что программа пишет его вывод в STDOUT.
Веб-сервер организован, чтобы все данные в STDOUT-поток данных и передает их обратно в браузер. Предыдущий пример в самом деле ничего не сделано. Нет необходимости CGI-программа, которая показывает только Якорный текст. Он мог бы легко сделать с помощью HTML-страницы. Пользователь должен узнать, что динамическая издание. Например, скрипт, который выводит текущее время:
Этот скрипт работает по тому же принципу, что и последний, но дает системное время с помощью функции при разработке CGI-скриптов на Perl localtime и печатает это значение. Каждый раз, когда скрипт запускается заново, обновляется время. Еще раз этот скрипт выводит обычный текст. Требуется обратите внимание на версию, которая возвращает HTML:
Эта программа немного сложнее, но на самом деле делает это так же, как в предыдущем примере. Дополнительная сложность исходит исключительно из того, что вам нужно сделать полный HTML-страницы.
Если пользователь когда-либо видел в настройках вашего браузера, вероятно, флажок или переключатель видел, чтобы включить или отключить Javascript и Java, но никогда не видел их для CGI или PHP. Это потому, что Javascript и Java запускаться браузер (или нет, если пользователь отключить). Браузер ничего не знает о CGI или PHP. Это только чистый HTML-код после выполнения скрипта на сервере. Встроенный метод для создания CGI-скрипты - PHP, ColdFusion, ASP, в основном, используется разработчиками веб-странице «front end», доступ к базам данных «назад», например, клиент/сервер веб-приложения.
Основное преимущество метода CGI является то, что скрипты в файлы, то есть буквально тысячи бесплатных скриптов уже написаны и готовы для скачивания и использования на вашем сайте. Это означает, что скрипт не нужно учить язык, чтобы воспользоваться скриптами, кто-то уже эту задачу для пользователя. Автор: Иван Фролов 6. Ноябрь, 2018
Категория: Техника