Что такое CGI-скрипты и как они улучшают сайты?

CGI обозначает Общий интерфейс шлюза. Это стандартный протокол для веб-серверов для выполнения программ и генерации вывода для веб-браузеров.

, Программа упоминается как программа CGI (или сценарий CGI

). Он запускается от имени веб-сервера для получения вывода, когда конкретный URL-адрес запрашивается веб-браузером пользователя.

Преимущества CGI

CGI улучшает веб-сайт во многих отношениях. Начиная с аутентификации пользователя и заканчивая предоставлением полнофункционального приложения для совершения покупок, CGI являются основой ядра, делающего Интернет динамичным и интерактивным. Ниже приведены некоторые основные преимущества использования CGI для улучшения взаимодействия с пользователем.

  • Персонализированный для пользователя: Вывод может быть персонализирован для каждого пользователя. Например, пользователь может проверять остатки на своем банковском счете, которые, возможно, потребуется извлечь из базы данных.
  • Другие виды персонализации: Пользователь может использовать мобильный телефон для доступа к веб-сайту, и выходные данные должны быть скорректированы с учетом разрешения мобильного телефона.
  • Делать обновления: Обновление выполняется в результате формы POST (объяснено ниже). Например, вы можете обновлять свой статус на Facebook.
  • Загрузка файлов: Файл, загруженный пользователем, нуждается в CGI на стороне сервера для обработки запроса загрузки файла для сохранения файла в определенном месте.
  • Генерация вывода: В дополнение к выводу, отображаемому в браузере, многие веб-сайты предлагают дополнительные формы вывода, такие как Word Document, PDF и т. Д. Некоторые из этих документов, возможно, должны генерироваться на лету CGI, такими как счет за телефон или выписка по кредитной карте. ,

Обслуживание статических файлов против CGI

HTML-файл

(а также JavaScript

и CSS

) обслуживается непосредственно веб-сервером. Программа CGI, с другой стороны, выполняется веб-сервером при запросе определенного URL. Он используется для выполнения запросов, которым необходим доступ к динамической информации, такой как находящаяся в базе данных. Примером может служить аутентификация пользователя для предоставления доступа: имя пользователя и пароль могут быть сохранены в базе данных, и запрос на подтверждение пользователя должен будет получить доступ к этой информации. Для обслуживания этого запроса веб-сервер будет выполнять программу CGI, которая будет искать информацию и проверять пользователя.

Как работает CGI

Настройка веб-серверов

Веб-сервер запускает программное обеспечение HTTP-сервера, которое предоставляет возможность предоставлять файлы HTML, а также запускать программы CGI для генерации вывода на лету. Программное обеспечение HTTP-сервера настраивается администратором веб-сервера для выполнения определенных программ при запросе URL-адресов, соответствующих определенным шаблонам.

Выполнение CGIs

Когда браузер пользователя отправляет запрос на определенный URL, он отправляет целую кучу информации в виде заголовков HTTP и, возможно, тела HTTP. Некоторые из этого могут включать в себя:

  • Тип браузера
  • Имя пользователя, если пользователь вошел в систему
  • Все файлы cookie, ранее сохраненные веб-сервером
  • Переменные формы, если запрос является запросом POST

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

Обработка формы POST

Основное использование CGI — обработка HTML-форм.

HTML-форма представляет собой устройство взаимодействия с пользователем и предоставляет множество элементов управления, чтобы пользователь мог вводить данные. Когда пользователь нажимает Отправить Кнопка (или что-то подобное) на форме, веб-браузер собирает информацию в форме и отправляет ее на целевой URL, указанный в форме. Веб-сервер, в свою очередь, обычно вызывает программу CGI и отправляет все входные данные, собранные от пользователя. Это взаимодействие называется формой POST, техническим термином, обозначающим метод отправки содержимого формы в CGI. CGI обрабатывает содержимое формы и выдает подходящий ответ для отправки в браузер.

Образец компьютерной графики

Ниже приведен пример программы CGI, написанной на Python.

, Его можно развернуть на веб-сервере, чтобы он был доступен по URL-адресу, аналогичному следующему: http://www.example.com/cgi-bin/env.cgi. При вызове CGI сообщает обо всех переменных, которые он получил в своей среде от веб-сервера. Это примерно так просто, как может получить CGI-программа.

#!/usr/bin/python
import os
print "Content-type: text/plain\n"
for key in os.environ:
print key, "=>\"", os.environ[key], "\""

Эволюция компьютерной графики

CGI были частью веб-серверов почти с самого начала Интернета. Первый веб-сервер NCSA HTTPd Web Server был запущен с поддержкой только статических файлов. Впоследствии было признано, что выполнение скрипта в ответ на запрос URL позволило веб-серверу генерировать динамический контент, и родилась спецификация CGI.

Самыми ранними программами CGI были простые скрипты, написанные на языке, таком как Perl, TCL, Shell и т. Д. Он также мог быть написан на скомпилированном языке, таком как C / C ++, но для этого требовался дополнительный шаг компиляции программы для создания исполняемого файла. CGI.

Поскольку CGI стали более сложными, и требования пользователей увеличились

Было признано, что создание отдельного процесса CGI для обслуживания каждого запроса было слишком тяжелым с точки зрения использования памяти и ресурсов ЦП. Особенно, когда на обслуживание запроса уходит меньше времени, чем на создание нового процесса.

На этом этапе веб-серверы начали встраивать полнофункциональные интерпретаторы сценариев, чтобы запросы пользователей могли обрабатываться в отдельном нить в рамках одного процесса веб-сервера. Это повысило эффективность обслуживания запросов и сократило время ответа.

Это совпало с появлением новых языков, специально разработанных для Интернета, таких как PHP. Интерпретатор PHP начал свою жизнь как сама программа CGI. Как часть обработки запроса, он анализирует запрошенный файл на наличие директив PHP и выполняет в нем команды.

Сегодня, помимо сценариев CGI, существует много технологий, используемых для выполнения кода на сервере в ответ на запрос.

Используете ли вы сценарии CGI в какой-либо части веб-сайта вашей компании? Сталкивались ли вы с какими-либо конкретными проблемами при развертывании или обслуживании сценариев CGI? Обсудите ниже в комментариях.

Ссылка на основную публикацию
Adblock
detector