Common Gateway Interface

У этого термина существуют и другие значения, см. CGI.

CGI (от англ. Common Gateway Interface — «Общий интерфейс шлюза») — спецификация интерфейса, используемого внешней программой для связи с веб-сервером. Последний вариант описан в RFC 3875. Шлюзом тут является веб-сервер, который получает запрос от клиента, преобразует в CGI-форму, вызывает обработчик и конвертирует его ответ из CGI-формы в форму HTTP-ответа клиенту. По сути позволяет использовать консоль ввода и вывода для взаимодействия с клиентом.

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

Все скрипты, как правило, помещают в каталог cgi (или cgi-bin) сервера, но это не обязательно: скрипт может располагаться где угодно, но при этом большинство веб-серверов требует специальной настройки. В веб-сервере Apache, например, такая настройка может производиться при помощи общего файла настроек httpd.conf или с помощью файла .htaccess в том каталоге, где содержится этот скрипт.

CGI ранее был одним из наиболее распространённых средств создания динамических сайтов.

Пример

Пример скрипта Hello World на языке Python:

#!/usr/bin/python
print("Content-Type: text/plain\n\nHello, world!")

Пример исходного кода программы на языке Pascal:

Program first;
Begin
  Writeln('Content-Type: text/plain');
  Writeln;
  Writeln('Hello, world!');
End.

Пример программы Hello World на языке C:

#include <stdio.h>
int main(void) {
  printf("Content-Type: text/plain;charset=us-ascii\n\n");
  printf("Hello, world!\n\n");
  return 0;
}

См. также

Литература

  • Кевин Мельтцер, Брент Михальски. Разработка CGI-приложений на Perl = Writing CGI Application with Perl. — М.: «Вильямс», 2001. — С. 400. — ISBN 0-201-71014-5.
  • Рейф Колберн. Освой самостоятельно CGI-программирование за 24 часа = Sams Teach Yourself CGI in 24 Hours. — М.: «Вильямс», 2001. — С. 368. — ISBN 0-672-31880-6.

Ссылки

  • Стандарт CGI 1.1(RFC3875) (англ.)
  • CGI шаг за шагом
Перейти к шаблону «Стандарты W3C»
Продукты
и стандарты
Рекомендации
ООСО
  • IndieAuth[англ.]
  • XAdES[англ.]
  • XBL[англ.]
  • XHTML+SMIL[англ.]
  • XUP[англ.]
Рабочие проекты
Руководства
  • Руководящие принципы доступности веб-контента[англ.]
Инициативы
  • Markup Validation Service[англ.]
  • Web Accessibility Initiative[англ.]
  • WebPlatform[англ.]
Выведенные
из использования
Устаревшие
Организации
Рабочие группы
  • TAG[англ.]
  • CSS
  • SVG[англ.]
  • WebAuthn[англ.]
  • WHATWG
Группы сообщества и бизнеса
  • Web Advertising BG[англ.]
Закрывшиеся группы
  • Device Description (DDWG)[англ.]
  • HTML[англ.]
  • Multimodal Interaction Activity (MMI)[англ.]
ПО
Браузеры
  • Line Mode (1990–)[англ.]
  • Arena (1993–98)[англ.]
  • Agora (1994–97)[англ.]
  • Argo (1994–97)[англ.]
  • Amaya (браузер/редактор, 1996–2012)
Конференции