ПредишенСледващото

Common Gateway Interface - ключът към интерактивни сайтове Web.

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

Използването на прости тагове, нищо не ви струва да се направи препратка към всяка дума или фраза. Въпреки това, хипервръзка може да бъде не само текст, но също така и изображения. Ние няма да бъде неоснователно, и се обърнат към следния кодов фрагмент:

Този код фрагмент показва графично представяне на FROG.GIF. Ако зададете на този образ и кликне върху бутона на мишката, уеб браузър изпраща заявка към страница, Web (FROG.HTML) Web сървър (www.amphibian.com).

Общата портал интерфейс

От началото на уеб разработчиците търсят начини да се правят интерактивни уеб сървъри, за да позволяват на потребителите не само да получават, но и да въведете информацията. Стандартният начин за създаване на тази информация, сега е известен като Common Gateway Interface. А потребител поиска информация от уеб сървъра, и един с помощта на CGI, управлява програма за търсене на информация, както и връща резултата на потребителя. За да направите това, уеб сървър, обикновено генерира HTML страница, като поставите няколко HTML изявления на някоя от съществуващите страници. Server уеб, като се прилагат CGI по този начин може потенциално да стартирате различни програми.

Ако сте използвали уеб търсачки за намиране на текста, който искате, тогава ще се използва CGI. CGI, но само по себе си не е търсачката. В действителност, тя осигурява програми за взаимодействие като търсачките, с уеб сървъри.

HTTP сървъри (Web) е предназначен предимно за обслужване на HTML документи. CGI файлове, обаче, документи и програми. За да съхранявате CGI програми повечето сървъри използват специална директория, обикновено се нарича CGI-BIN. Уеб сървър знае, че файлът се съхранява в директория CGI-BIN, трябва да бъдат изпълнени и не е изпратено да играе браузър Web на потребителя. CGI програми могат да бъдат написани на множество различни езици, включително езика на партида файлове DOS, Basic, C и скриптови езици описания като Perl. CGI задача просто се крие във факта, че в точното време, за да активирате програма CGI и програмата за прехвърляне на всички необходими данни, създадени от потребителя или операционната система. Програмата на CGI после ги обработва входните данни. След завършване на обработка (време за изпълнение, - не повече от няколко секунди, тъй като целта е интерактивен) на програмата трябва да се върне някакъв резултат до потребителя чрез браузъра си Web. За браузъра, за да се възпроизведе в резултат, CGI програма, трябва да конвертирате своята продукция на HTML документ.

ФОРМА за всеки повод

съраунд таговете форма на изходен код

и
(Cm. 1, редове 14 и разпечатки 1). ДЕЙСТВИЕ определя действието трябва да се вземат след формата на прехвърляне. С други думи, ДЕЙСТВИЕ определя кои CGI програма трябва да работи, за да обработи формуляра и като посочите или пълно или частично URL на програмата (в този случай /SGI-BIN/EXAMPLE.PL). В зависимост от уеб сървър, можете да посочите за всички програми CGI директория по подразбиране. Ако програмата, която искате да стартирате се съхраняват в тази директория, достатъчно е да се уточни само името на файла, тя съдържа. В противен случай, може да се наложи да напишете пълния URL адрес на файла.

МЕТОД използва за прехвърляне на входни данни от формата в програма CGI че обработва данните. Малко по-късно, ние ще обсъдим представени тук метод, но за сега ние отбелязваме, че можете да използвате два основни начина: GET и POST. Ако ще трябва да се използва за предаване на данни от мухъл в програмата за CGI, посочен в ACTION = "/SGI-BIN/EXAMPLE.PL", GET метод, се уверете, че програмата за CGI е способен да приеме данни, предавани по този начин. В допълнение, ако използвате за прехвърляне на данни от вашия метод форма POST, се уверете, че програмата се очаква да получи данните са в съответствие с този метод.

Допълнителна подредени под формата на бутони за превключване на, и по-долу - рамката за издаване на знамена. И двете позволяват избор между няколко възможности, но те са малко по-различен от предназначението им. Можете едновременно да маркирате няколко отметки, но изберете само един бутон за избор. За сравнение, при избора на една опция не отменя избора на друг.

Нека първо поговорим за бутоните се променят. бутон за избор, се определя като се посочва вида на вход. Три линии (6 до 8) се отнасят до бутоните превключване, всеки от които могат да бъдат избрани. Всички линии съдържа комбинация NAME = "PRODTYPE", определяне на логически име поле PRODTYPE. Ако отбеляза първия бутон, поле PRODTYPE ще бъде настроен на моста. (Стойността е комбинация от "стойност =" МОСТ ""). Имайте предвид също така ключова дума проверени в съответствие 6. първата поява на формата се открои бутон BRIDGE; С други думи, тази стойност направихме стойността по подразбиране; потребителят може да го промените, като кликнете върху бутона рутер или суич.

След това идва серия от три отметки да изберете кои от мрежови протоколи поддържа продукт (линии 9 и 11). Когато кликнете в полето за отметка се появява "X", което показва, че флагът е вдигнат; Ако кликнете върху "Х" изчезва, т.е. квадратче се изчиства.

знамена рамка е създадена чрез използване на фразата "INPUT TYPE =" отметката ". За да работи правилно програмата, трябва да определите типа на входния параметър като една дума. Трябва да посочите името на полето за въвеждане. разпечатка един вход името на полето за първото знаме се определя като . Както можете да видите на ПР, кодът все още съдържа проверяваната ключова дума, което означава, че по подразбиране това квадратче е маркиран, потребителят може да го изчистите, като кликнете в кутията.

Когато се вдигне този флаг, стойността по подразбиране за област със същото име все още "On". Въпреки, че примерът не е уточнено, по желание можете да използвате стойност на атрибут, за да зададете стойност, като например "зелени", ако това квадратче е маркиран. В нашия пример, избран всички квадратче три подразбиране. Така, ако потребителят освободи кутия форма ПР за връщане стойност = ON, IPX = ON и AppleTalk = ON. Ако се нанесе само проверката IP, формата ще се върне само IP = ON. Кутии съответните IPX, AppleTalk, не сме включени.

Линия 12 дефинира Разпечатките 1 Предложи бутон. След като попълните формата за предаване на своите CGI програми, които работят на уеб сървър, потребителят трябва да кликнете върху бутона SUBMIT. Както може да се види в ред 12, бутон създаден чрез определяне като вход SUBMIT SUBMIT тип. В текста на бутона, можете да настроите стойността на променливата.

Когато потребителят натисне бутона за изпращане, уеб браузър, като някои действия, определени в действие за тази форма (например, по линия 1 Обява 1). В този случай, уеб сървър стартира скрипт език Perl, която в нашия пример се нарича EXAMPLE.PL и се намира в директорията, CGI-BIN.

Като уеб сървър знае, че тя трябва да стартирате програмата, а не само да го изпрати обратно на искането на уеб браузъра? Това следва от името на директорията, в която се намира програмата - CGI-BIN. Повечето уеб сървъри, тази директория е резервиран специално за изпълними файлове. (Можете да съхранявате изпълними файлове и други директории, но CGI-BIN следва да съдържа всички документи, които се управляват от разстояние в мрежата.)

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

В нашия пример сме споменали Perl, Практически добив и отчет език. За тези, които не знаят, да му обясня. Perl е интерпретиран език, който първоначално е бил предназначен за употреба в Unix-базирани системи, но сега той се мести в много други операционни системи. Perl преводач, има, например, за Macintosh системи и Windows NT. Програма на Perl скриптове, обикновено по-нататък, в сравнение с развитието на програми в C или други стандартни програмни езици, те са сравнително бързо и лесно. Perl е по-близо до езика на DOS партида файлове, отколкото класическите езици за програмиране на. Perl е особено добър в работата с низове, които, както вече видяхме, че е много важно за CGI програмиране.

Row 13 разпечатки 1 описва бутона Reset. Ако потребителят кликне върху този бутон, всички параметри са настроени на стойности по подразбиране. В нашия пример, ние ще бъдат маркирани с бутон за превключване на мост и в трите квадратчета (IP, IPX и AppleTalk).

Когато кликнете върху бутона Изпращане, информацията се предава на уеб сървъра под формата на двойки имена на полета (известни също като клавиши) и ценности. Да предположим, че в примера на движени форми за контакт, като потребителското име на продукта, въведена SuperDuper, каза превключване бутон рутер и като поддържаните протоколи IP и IPX. В този случай, когато щракнете върху бутона Изпрати, формата ще бъде приет до името на параметрите = SuperDuper, ПР = ON и IPX = ON. (Когато отметката AppleTalk не е отметнато, стойността на поле Appletalk на ( "AppleTalk = изключено") просто няма да peredanon.)

Така че ние погледна как HTML форми са информирани за интернет потребител и да го предадат на програмата CGI под формата на двойки ключ / стойност. От ДЕЙСТВИЕ оператор, определен в началния маркер

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

Запознат с CGI

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

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

Да предположим, добавяте следния хипервръзка в документа HTML:

Ако изберете тази връзка, браузърът започва следващата заявка за уеб сървър:

Следват две GET заглавна Приемете с глава посочва, че браузърът може да получава файлове от обикновен текст или във формат. Ако браузърът може да получи по-голям брой типове данни в заявката ще се появи повече заглавия на приемам, описвайки всеки тип данни по отношение на многоцелеви Internet Mail Разширения (MIME).

Уеб сървър отговор на това искане ще изглежда по следния начин:

Заглавие "сървър" уеб сървър изпраща номера на името и версията, както и версията на HTTP. Други заглавия описват вида на съдържанието (в този случай, текстът в HTML формат) и дължина (231 байта) на предава документа. Уеб браузър след това чете и обработва HTML-сегмента на файла.

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

Аз вече посочи, че информацията, получена от потребителя или уеб браузър, могат да се изпращат до уеб сървър по един от двата начина: чрез GET или POST метод.

Когато методът за да получите всички данни във формуляр, включени в URL адреса в т.нар заявка низ. Да предположим, че имаме една проста форма, която има само две области, наречени цвета и размера, и че потребителят е влязъл и съответно небесно синьо голям. Да предположим също, че програмата за CGI, който се очаква да обработват данните, скрипт език Perl една, наречена EXAMPLE.PL и се намира в директорията, CGI-BIN. Натискате бутона Изпрати и браузър, за да променят формата на заявката за HTML, да го изпрати на уеб сървъра.

Код HTML форма трябва да съдържа оператор ДЕЙСТВИЕ и кажи на сървъра Web, някои от методите (в този случай, GET) ще се използва за пренос на данни. По този начин, първата форма на нашия оператор ще:

Това ще позволи на уеб сървър, за да знаят пълния път до програмата, за да се управлява ( "/CGI-BIN/EXAMPLE.PL"), както и това, което трябва да се използва методът на GET. Както беше отбелязано по-рано, на метода на GET използва низ на заявка за пренос на данни в програмата CGI. В нашия пример, когато потребителят кликне върху бутона за изпращане, неговата уеб браузър ще се с молба към уеб сървъра:

Низ от текст, който следва въпросителния знак е низа на заявката. В отговор на това искане, сървърът започва сценария и поставя EXAMPLE.PL линия COLOR = SKY% 20BLUEsize = LARGE HTTP 1.0 в променливата на QUERY_STRING среда.

Следващия път, ние ще продължим да говорим за това какво да направите, ако вашата CGI програма за обработка на низа на заявката. В допълнение, ние ще говорим за метода POST на предаване на данни до програмата CGI.

Html и CGI

Фигура 1.
Пример HTML форма с няколко различни полета за въвеждане, включително текстовото поле, бутоните за превключване и квадратчетата.

Печат 1 - КОД Пример HTML форми

Подробности В ИНТЕРНЕТ

С предложения или въпроси, моля не се колебайте да се свържете с нас

Свързани статии

Подкрепете проекта - споделете линка, благодаря!