Movatterモバイル変換


[0]ホーム

URL:


Перейти до вмісту
Вікіпедія
Пошук

Common Gateway Interface

Матеріал з Вікіпедії — вільної енциклопедії.
У Вікіпедії є статті про інші значення цього терміна:CGI.

Common Gateway Interface,CGI — (укр.«загальний інтерфейс шлюзу») — стандартінтерфейсу, який використовується для організації взаємодії програмивебсервера із зовнішньоюпрограмою. Програму, яка працює за таким інтерфейсом спільно з вебсервером, прийнято називати шлюзом. Також вживаються терміни«скрипт» (сценарій) або «CGI-програма».

Сам інтерфейс розроблений таким чином, щоб можна було використовувати будь-яку мову програмування. Для обміну даними використовуються стандартні інтерфейси вводу/виводу.

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

CGI був одним з найпоширеніших засобів створеннядинамічних вебсторінок.

Призначення інтерфейсу CGI

[ред. |ред. код]

Інтерфейс CGI виконує функції шлюзу між різними програмами, встановленими наweb-сервері, і браузерами користувачів. Коли браузер запитує певний ресурс, web-сервер запускає програму, яка вже повертає результат в браузер користувача. Використання CGI-програм потрібно, коли необхідно в браузері користувача показати сторінку, сформовану на основі будь-яких дій користувача. Наприклад, коли користувачі вводять в форму будь-які дані, а на їх основі формується посилається вам сторінка. CGI-програма може також визначити IP-адресу вашого комп'ютера в мережі, і на основі його визначити вашу країну, в результаті передавши вамhtml документ вашою рідною мовою!

Механізм CGI перенаправляє висновок програми на web-сервер, а той, у свою чергу, в браузер користувача. З точки зору програми немає нічого незвичайного — вона лише виводить інформацію. Абсолютно будь-яка програма не може бути CGI-програмою, тому що перед своїм висновком вона повинна вивести певні заголовки сервера — вказати хоча б тип виведеної інформації. Наприклад, якщо користувач хоче вивести картинку, він повинен відправити заголовокContent-type: image / gif. Якщо CGI-програмі потрібно передати параметри, то робиться це дуже просто — як і у випадку зі звичайною програмою. Наприклад, потрібно передати рядок запиту name=Taras&surname=Grygorovych сценаріємcgi.exe. Для цього необхідно викликати програму cgi.exe з вказаною рядком запиту: cgi.exe name=Taras&surname=Grygorovych.

Розділяють параметри за допомогою символу &.PHP розбирає параметри рядка запиту самостійно.

Такий спосіб посилки параметрів сценарієм (коли дані містяться вкомандний рядок URL) називається методом GET. Фактично, навіть якщо не передається ніяких параметрів (наприклад, при завантаженні статичної сторінки), все одно застосовується метод GET. Однак, існує ще один поширений спосіб — передача параметрів запиту методом POST.

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

Способи створення CGI-програм

[ред. |ред. код]

Наведемо приклад CGI-програми на C:

#include<time.h> // Потрібна для ініціалізації функції rand ()#include<stdio.h> // Включаємо підтримку функцій введення / виводу#include<stdlib.h> // для підтримки функції rand ()// Головна функція. Саме вона і запускається при старті сценарію.voidmain(void){// ініціалізуємо генератор випадкових чиселintNum;time_tt;srand(time(&t));// до Num записується випадкове число від 0 до 9Num=rand()%10;// далі вводимо заголовки відповіді. Тип - html-документprintf("Content-type: text/html\n");// заборона кешуванняprintf("Pragma: no-cache\n");// порожній заголовокprintf("\n");// виводимо текст документа - його ми побачимо в браузеріprintf("<html><body>");printf("Випадкове число в діапазоні 0-9: %d",Num);printf("</body></html>");}

Посилання

[ред. |ред. код]

Див. також

[ред. |ред. код]
Отримано зhttps://uk.wikipedia.org/w/index.php?title=Common_Gateway_Interface&oldid=43254181
Категорія:

[8]ページ先頭

©2009-2025 Movatter.jp