CGI
CGI (от англ. Common Gateway Interface — «общий интерфейс шлюза») — стандарт интерфейса, используемого для связи внешней программы с веб-сервером. Программу, которая работает по такому интерфейсу совместно с веб-сервером, принято называть шлюзом, хотя многие предпочитают названия «скрипт» (сценарий) или «CGI-программа».
Сам интерфейс разработан таким образом, чтобы можно было использовать любой язык программирования, который может работать со стандартными устройствами ввода/вывода. Такими возможностями обладают даже скрипты для встроенных командных интерпретаторов операционных систем, поэтому в тех случаях, когда нет нужды в сложной функциональности, могут использоваться даже такие простые командные скрипты.
Все скрипты, как правило, помещают в каталог cgi (или cgi-bin) сервера, но это необязательно: скрипт может располагаться где угодно, но при этом большинство веб-серверов требуют специальной настройки. В веб-сервере Apache, например, такая настройка может производиться при помощи общего файла настроек httpd.conf или с помощью файла .htaccess в том каталоге, где содержится этот скрипт.
CGI является одним из наиболее распространённых средств создания динамических веб-страниц.
Содержание |
[править] Пример
Пример скрипта Hello World на языке Python:
#!/usr/bin/python import sys try: import cgitb cgitb.enable() except ImportError: sys.stderr = sys.stdout def cgiprint(inline=''): sys.stdout.write(inline) sys.stdout.write('\r\n') sys.stdout.flush() contentheader = 'Content-Type: text/html' thepage = '''<html><head> <title>%s</title> </head><body> %s </body></html> ''' h1 = '<h1>%s</h1>' if __name__ == '__main__': cgiprint(contentheader) # заголовок вывода cgiprint() # обязательная пустая строка для отделения заголовка от выводимых данных title = 'Hello World' headline = h1 % 'Hello, world!' print thepage % (title, headline) # вывод кода html
Пример исходного кода программы на языке 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.
| Веб и веб-сайты | |
|---|---|
| Глобально | |
| Локально | |
| Виды сайтов и сервисов |
Виртуальный атлас • Баннерная сеть • Блог (Блог-платформа) • Видеохостинг • Вики-движок (Вики-хостинг • список) • Сайт-визитка • Вопрос-ответ • Закладки • Службы знакомств • Каталог ресурсов • Сервис контекстной рекламы • Интернет-магазин • Микроблог • Тамблелог • Новостной сайт • Поисковая система (список) • Порносайт • Социальная сеть • Торрент-трекер • Файлообменник • Форум (сервис форумов • имиджборд) • Фотохостинг • Чат |
| Создание и обслуживание |
|
| Техническое |
Веб-сервер (сравнение) • Браузер (список • сравнение) • Фреймворк (Список CMF) • Система управления содержимым (Список CMS) • HTTP (ответы • заголовки) • SPDY • CGI • HTML • XHTML • CSS • JavaScript • DHTML • DOM • XML • AJAX • JSON • Flash • RSS • Atom • Микроформаты • favicon.ico • robots.txt • Sitemaps • Карта сайта • .htaccess |
| Маркетинг | |
| Социум и культура | |

