CGI (общ вход интерфейс) 1

CGI (C инж БЩАТА G ateway аз nterface -. «Общ интерфейс врата") - стандартен интерфейс, използван за свързване на външен програма на уеб сървъра. Програма, която работи на интерфейса във връзка с уеб сървър, наречен шлюз, въпреки че мнозина предпочитат името "сценарий" (скрипт) или "CGI-програмата." Обикновено хипертекстови документи, извлечени от WWW (World Wide Web) сървъри, които съдържат статични данни. С CGI, можете да създадете CGI-програми, наречени шлюзове, които във връзка със системите за прилагане, като система за управление на бази данни, електронни таблици, бизнес графики и т.н. ще бъде в състояние да даде на дисплея динамична информация на потребителя. Програмата работи WWW междинен сървър в реално време. WWW сървър предоставя потребител шлюзове заявка, а тя, от своя страна, означава, използвайки системата за кандидатстване, се връща в резултат на обработката на заявката на екрана на потребителя. [1]

Основната цел на CGI

Осигуряване на единна поток от данни между сървъра и програмата за кандидатстване, който се стартира от сървъра. CGI определя протокол за комуникация между сървъра и програмата.

  • CGI дефинира процедурата за сървъра, за да общуват с приложната програма, в която сървърът изпълнява започване на партията;
  • CGI определя механизъм за обмен на данни в реално и контрол команди в това взаимодействие, което не е определено в HTTP.

Концепции като метод за достъп, променливи заглавката на MIME, типове данни са взети от спецификацията на HTTP, и ясно за тези, запознати със самия протокол.

При описването на различните програми, които се наричат ​​с HTTP сървър и изпълняват в стандартната CGI г. се използват следните термини:

Gateway - е CGI-скрипт, който се използва за обмен на данни с други Интернет информационни ресурси и приложения-демони. Обичайната CGI-програма се управлява от сървър HTTP за извършване на някаква работа, и се връща на резултатите към сървъра завършва неговото изпълнение. Gateway извършва също толкова добре, но в действителност, той инициира взаимодействие като клиент с трета програма. Ако тази трета програма е интернет услуга, например, Gopher сървър, шлюза става клиент на Gopher, който изпраща искането на порт Gopher, и след получаване на отговор, го изпраща на сървъра на HTTP. [2]

Common Gateway Interface CGI

CGI (Common Gateway Interface) - механизъм за достъп до програми на уеб сървъра. спецификация CGI е разработен, за да разшири възможностите за WWW услуги чрез свързване на различни допълнителен софтуер. Ако използвате CGI, стартиране му (сървър), страна с помощта на стандартни входящи и изходящи потоци на уеб сървъра е за достъп на браузъра, за да изпълними програми.

CGI интерфейс се използва за създаване на динамични уеб сайтове, например, когато дадена уеб страница, генерирана от резултатите от заявката към базата данни. Сега CGI популярност е намалял, тъй като имаше по-добри алтернативи (например, модулни разширителни на уеб сървъри).

Уеб сървъри

Web Server - уеб-базирано приложение, което обслужва HTTP-заявки от клиенти, обикновено уеб браузъри. Уеб сървърът получава искания и връща отговор, обикновено с HTML-страници, снимки, файлове, поточни медии, или други данни. Уеб сървъри - създаването на World Wide Web. С разпространението на мрежови услуги на уеб сървъри са все по-често се използва като шлюзове за сървърите за приложения себе си или представляват такива функции (например Apache Tomcat).

Софтуер уеб развитие сървъри, които участват в много от разработчиците, но най-популярни са софтуера като Apache (фондация Apache Software), IIS (Microsoft), Google Web Server (GWS, Google Inc.) и Nginx.

Исторически погледнато, първият браузър в съвременния смисъл на думата (т.е., GUI, и т.н.) е НДСО Mosaic програма, разработена от Марк Anderisenom и Ерик Бина. Мозайка имаше доста ограничен капацитет, но с отворен код се превърна в основата на много от по-нататъшно развитие. [3]

Принцип на работа CGI

Общата алгоритъм работи чрез CGI може да бъде представен, както следва:

Механизми за обмен на данни

  • чрез променливи на средата;
  • командния ред;
  • стандартния;
  • чрез стандартния изход.

променливи

сървъра създава специфични променливи, през които преминава жалбата като служебна информация и данни във външни програми. Всички променливи могат да бъдат разделени на общите променливи за средата, които са получени при всяка форма на разследване и издирване ориентирани променливи.

променливи общата среда

  • SERVER_SOFTWARE - определя името и версията на сървъра.
  • SERVER_NAME - определя сървъра на име на домейн.
  • GATEWAY_INTERFACE - определя версията на интерфейса.

Запитване-ориентирана среда

идентификация на потребителя и неговата кола

Променливите, които определят вида и продължителността на предаваната информация от клиента към сървъра

  • CONTENT_TYPE - определя MIME-тип данни подадени на скрипта. С помощта на тази променлива, използвайте един скрипт, за да се справят с различни формати на данни.
  • CONTENT_LENGTH - определя размера на данни в байтове, които са подадени на скрипта. Тази променлива е изключително важно в обмена на данни по метода POST, т.е.. А. Няма друг начин да се определи размера на данни, за да се чете от стандартния вход.

Предаване и други екологични променливи. В този случай, "HTTP_" префикс пред името показва. Отделен случай е, че променливите, генерирани от заглавието на документа в HTML-tagah META. Те са преминали в заглавката на съобщението, както и някои сървъри могат да генерират системни променливи полета на заглавката.

опции за командния ред

Командният ред се използва само, когато тип заявка ISIN-DEX. Когато HTML форми, или всякакви други искания от неустановен тип командния ред не се използва. Ако сървърът е установил, че скриптът е достъпен чрез ISINDEX-документи, критерий за търсене се извлича от URL адреса и се превръща в опции за командния ред. В същото време в знак на параметрите на разделяне е "+" символ. тип заявка се определя от наличието или липсата на "=" характер в заявката. Ако този знак е, искането не е искане ISINDEX. ако символът не е налице, искането е член на типа на ISIN-DEX. Параметри, извлечени от заявката се поставят в масив от команден ред аргументи argv. В този случай, след раздялата се случва от конвертиране на всички шестнадесетични знака в техните ASCII-кодове. Ако броят на параметрите превишава лимитите, установени в езика команда, като в черупката, тя се образува от командния ред не се случва и данните се предават само чрез QUERY_STRING. Най-общо казано, трябва да помислите предварително за количеството данни, подадени на скрипта и да изберете най-подходящия метод за достъп. Размерът на околната среда променливи също е ограничено, и ако трябва да се прехвърлят много данни, че е по-добре да изберете метода на POST, т.е. предаване на данни чрез стандартния вход.

Формат стандартния вход

стандартния изход Формат

На стандартния изход на скрипта се използва за връщане на данни към сървъра. Когато този изход се състои от заглавна част и реални данни. Резултатът от сценария може да се предава на клиента без никакви промени от страна на сървъра, ако сценарият позволява да се изгради пълна HTTP заглавната част, в противен случай сървъра променя заглавната в съответствие със спецификацията на HTTP. Заглавие трябва да бъдат отделени от тялото на съобщение от един празен ред. Обикновено в скриптове посочи само три области на HTTP-заглавие: Content-Type. Местоположение. Статус.

Content-Type

Това се посочва в случаите, когато самата скрипта генерира документ "в движение", и го връща на клиента. В този случай, действителната Документът не остане в сървъра на файловата система. При използване на този вид скриптове трябва да е наясно, че не всички сървъри и клиенти да тренират, както е представено на разработчика на скрипта. Така че, когато се уточни Content-Type: текст / HTML, някои клиенти не изпълняват сканиране на текст, в резултат на присъствието на своите интегрирани графики. Обикновено в текста на съдържание тип посочи текст, различен / обикновен и текст / HTML.

Заявленията CGI

Тези функции са предоставени от факта, че CGI-скрипт може да се свърже с базата данни или да се свържете със сървъра на файловата система. Така CGI-скрипт може да съхранява информация в таблица от база данни или файл и да го извадя по поръчка, което не може да се направи с помощта на HTML.

предимства на CGI

Много възможности сега се дублират CGI технологии като например DHTML, ActiveX или Java-аплети. Основните предимства на използване от страна на сървъра скриптове е, че можете да бъдете сигурни, че всички клиенти (с редки изключения, обикновено са свързани с блокиране на достъпа до определени ресурси на ниво защитна стена), ще бъде в състояние да работи с прилагането на сървъра. Клиент-същата програма, просто може да бъде деактивирана във вашия браузър, или не се поддържа.

недостатъците на CGI

Най-големият недостатък на тази технология са повишените изисквания спрямо изпълнението на уеб сървъра. Факт е, че всеки призив за CGI-приложение причинява образуването на нов процес, с цялата съпътстваща режийните. Ако заявлението е сгрешена, че е възможно, че това е, например, воля цикъл. Browser прекъсва връзката, след изтичане на времето, но на сървъра страна процес ще продължи, докато администраторът не го премахва със сила. В тази връзка, клиентските скриптове имат значително предимство, т. К. Те се изпълняват на местно ниво.

Друг недостатък на CGI е по-малък, в сравнение с други решения, защитен уеб сървър. Неправилно задаване на права за достъп до ресурсите на сървъра на CGI-приложенията биха могли да застрашат не само на работата на уеб сървъра, но и информационната сигурност. Въпреки това, всяка мрежа технология може да се счита потенциално несигурни по дефиниция. [5]

бележки