Perempty commerce cgi. Elektronický obchod - čo to je. E-Commerce Partners Network - affiliate program najväčších internetových obchodov. Dôležité ukazovatele: LTV
Andover, Massachusetts, 19. november 2003
Spoločnosť The Commerce Group, Inc. (NYSE: CGI), najväčší poskytovateľ poistenia súkromných osobných automobilov v Massachusetts a CGI Group Inc. (CGI) (TSX: GIB.A; NYSE: GIB;), popredný poskytovateľ informačných technológií a služieb podnikového spracovania, dnes oznámil podpísanie šesťročnej obnovy zmluvy o outsourcingu obchodných procesov (BPO) v hodnote 35 miliónov USD. CGI bude poskytovať kompletné služby spracovania politiky pre osobné a komerčné automobilové linky v Massachusetts, ako aj poskytovanie nástroja rozhrania agentúry CGI CollaborativeEdge, aplikačnej podpory a údržby, regulačnej podpory, systémového poradenstva a služieb správy dokumentov.
Gerald Fels, výkonný viceprezident a finančný riaditeľ Commerce Group, uviedol: „Ako popredný poskytovateľ súkromných osobných automobilov v Massachusetts je naším cieľom poskytovať našim agentom a zamestnancom služby, ktoré im pomôžu dosahovať najvyššiu úroveň. V priebehu rokov sme si vybudovali silný vzťah s CGI. Ich systém je robustný a presný a ich tím dobre pozná naše interné systémy spracovania. To je pre nás dôležité."
Serge LaPalme, prezident, poisťovacie obchodné služby pre CGI, dodal: "Sme veľmi radi, že pokračujeme v našom vzťahu s Commerce Group, ktorý trvá viac ako 30 rokov. Commerce Group je aj naďalej jedným z našich vážených obchodných partnerov a strategicky náš úspech. Aby sme našim klientom pomohli ďalej sa sústrediť na ich hlavnú činnosť, využívame nové technológie vtedy a tam, kde to dáva zmysel. Náš tím dôverne pozná odvetvie poisťovníctva a veľmi unikátne regulačné prostredie štátu, a preto sa rýchlo prispôsobujeme existujúce riešenia pre tento neustále sa vyvíjajúci sektor."
O spoločnosti The Commerce Group, Inc.
The Commerce Group, Inc., holdingová poisťovňa, má ústredie vo Websteri, Massachusetts. Medzi dcérske spoločnosti majetkového a úrazového poistenia Commerce Group patria The Commerce Insurance Company a Citation Insurance Company v Massachusetts, Commerce West Insurance Company v Kalifornii a American Commerce Insurance Company v Ohiu. Commerce Group je prostredníctvom kombinovaných poisťovacích aktivít svojich dcérskych spoločností hodnotená ako 22. najväčšia skupina automobilového poistenia v krajine od A.M. Najlepšie na základe informácií o priamom predpísanom poistnom z roku 2002.
O CGI
CGI, založená v roku 1976, je piata najväčšia nezávislá firma poskytujúca služby informačných technológií v Severnej Amerike podľa počtu zamestnancov. CGI a jej pridružené spoločnosti zamestnávajú 20 000 odborníkov. Anualizované výnosy CGI sú v súčasnosti 2,8 miliardy CDN (1,9 miliardy USD) a k 30. septembru 2003 bol počet nevybavených objednávok CGI 12,3 miliardy CDN (9,1 miliardy USD). CGI poskytuje klientom po celom svete komplexné IT služby a služby podnikových procesov z pobočiek v Kanade, Spojených štátoch a Európe. Akcie CGI sú kótované na TSX (GIB.A) a NYSE (GIB) a sú zahrnuté v TSX 100 Composite Index, ako aj v S&P/TSX Canadian Information Technology a Canadian MidCap Indices. Webová stránka: .
Vďaka World Wide Web môže takmer každý poskytnúť informácie na internete vo forme, ktorá lahodí oku a je vhodná na široké šírenie. Nepochybne ste surfovali po internete a videli iné stránky a teraz už pravdepodobne viete, že strašidelné skratky ako „HTTP“ a „HTML“ sú len skratky pre „Web“ a „spôsob vyjadrovania informácií na internete“. Možno už máte nejaké skúsenosti s prezentáciou informácií na internete.
Internet sa ukázal ako ideálne médium na šírenie informácií, o čom svedčí jeho nesmierna popularita a masívny rozvoj. Zatiaľ čo niektorí spochybňujú užitočnosť internetu a jeho rozšírený rozvoj a popularitu pripisujú najmä humbuku, internet je nesporne dôležitým médiom na prezentáciu všetkých druhov informácií. Nielenže existuje množstvo služieb na poskytovanie aktuálnych informácií (správy, počasie, športové podujatia v reálnom čase) a referenčných materiálov v elektronickej forme, ale aj značné množstvo údajov rôzneho druhu. Úrad IRS, ktorý distribuoval všetky svoje daňové formuláre z roku 1995 a ďalšie informácie prostredníctvom World Wide Web, nedávno priznal, že zo svojej webovej stránky dostáva poštu od fanúšikov. Kto by si myslel, že IRS niekedy dostane poštu od fanúšikov? Stalo sa to nie preto, že jeho stránka bola dobre navrhnutá, ale preto, že sa ukázal byť skutočným užitočný nástroj pre tisíce a možno aj milióny ľudí.
Čo robí web jedinečným a tak atraktívnou informačnou službou? V prvom rade preto, že poskytuje hypermediálne rozhranie pre dáta. Zvážte pevný disk vášho počítača. Údaje sú zvyčajne vyjadrené lineárnym spôsobom, podobne ako systém súborov. Napríklad máte niekoľko priečinkov a v každom priečinku sú buď dokumenty, alebo iné priečinky. Web používa inú paradigmu na vyjadrenie informácií nazývanú hypermédiá. Hypertextové rozhranie pozostáva z dokumentu a odkazov. Odkazy sú slová, na ktoré sa klikne, ak chcete zobraziť ďalšie dokumenty alebo nájsť iné druhy informácií. Web rozširuje pojem hypertext o ďalšie typy médií, ako sú grafika, zvuky, videá (odtiaľ názov „hypermédiá“). Zvýraznenie textu alebo grafiky v dokumente vám umožňuje zobraziť súvisiace informácie o vybratom prvku v ľubovoľnom počte foriem.
Z tohto jednoduchého a jedinečného spôsobu prezentácie a distribúcie informácií môže profitovať takmer každý, od akademikov, ktorí chcú okamžite zdieľať údaje so svojimi kolegami, až po obchodníkov, ktorí zdieľajú informácie o svojej spoločnosti so všetkými. Aj keď je poskytovanie informácií mimoriadne dôležité, v posledných rokoch mnohí cítili, že získavanie informácií je rovnako dôležité.
Hoci web poskytuje jedinečné hypermediálne rozhranie pre informácie, existuje mnoho ďalších efektívnych spôsobov distribúcie údajov. Napríklad sieťové služby ako File Transfer Protocol (FTP) a diskusná skupina „Gopher“ existovali dávno pred príchodom World Wide Web. E-mail bol primárnym médiom pre komunikáciu a výmenu informácií cez internet a väčšinu ostatných sietí takmer od samého začiatku týchto sietí. Prečo sa internet stal takým populárnym spôsobom distribúcie informácií? Multimediálny aspekt internetu hmatateľne prispel k jeho bezprecedentnému úspechu, ale aby bol internet najefektívnejší, musí byť interaktívny.
Bez možnosti prijímať vstupy od používateľov a poskytovať informácie by bol web úplne statickým prostredím. Informácie budú dostupné iba vo formáte určenom autorom. To by podkopalo jednu z výpočtových možností vo všeobecnosti: interaktívne informácie. Napríklad, namiesto toho, aby ste nútili používateľa prechádzať viacerými dokumentmi, ako keby si prezeral knihu alebo slovník, by bolo lepšie umožniť používateľovi identifikovať kľúčové slová, ktoré ho zaujímajú. Používatelia si môžu prispôsobiť spôsob prezentácie údajov a nemusia sa spoliehať na pevnú štruktúru definovanú poskytovateľom obsahu.
Pojem „webový server“ môže byť zavádzajúci, pretože môže označovať fyzický stroj aj softvér, ktorý používa na interakciu s internetovými prehliadačmi. Keď prehliadač požaduje danú webovú adresu, najprv sa pripojí k zariadeniu cez internet a odošle softvéru webového servera požiadavku na dokument. Tento softvér beží nepretržite, čaká na takéto požiadavky a zodpovedajúcim spôsobom odpovedá.
Aj keď servery môžu odosielať a prijímať údaje, funkčnosť samotného servera je obmedzená. Napríklad najprimitívnejší server môže odoslať požadovaný súbor iba prehliadaču. Server zvyčajne nevie, čo má robiť s tým či oným dodatočným vstupom. Ak ISP nepovie serveru, ako má s týmito dodatočnými informáciami zaobchádzať, server bude vstup s najväčšou pravdepodobnosťou ignorovať.
Aby server mohol vykonávať aj iné operácie okrem vyhľadávania a odosielania súborov do internetového prehliadača, musíte vedieť, ako rozšíriť funkčnosť servera. Webový server napríklad nemôže prehľadávať databázu na základe kľúčového slova zadaného používateľom a vracať viacero zodpovedajúcich dokumentov, pokiaľ takáto schopnosť nebola na serveri nejakým spôsobom naprogramovaná.
Čo je CGI?
Common Gateway Interface (CGI) je rozhranie k serveru, ktoré vám umožňuje rozšíriť funkčnosť servera. Pomocou CGI môžete interaktívne pracovať s používateľmi, ktorí pristupujú na vašu stránku. Na teoretickej úrovni vám CGI umožňuje rozšíriť schopnosť servera analyzovať (interpretovať) vstup z prehliadača a vracať informácie na základe vstupu používateľa. Na praktickej úrovni je CGI rozhranie, ktoré umožňuje programátorovi písať programy, ktoré jednoducho komunikujú so serverom.
Ak chcete rozšíriť možnosti servera, zvyčajne by ste ho museli upraviť sami. Toto riešenie je nežiaduce, pretože vyžaduje pochopenie nižšej úrovne sieťového programovania internetového protokolu. Vyžadovalo by to tiež úpravu a prekompilovanie zdrojového kódu servera alebo napísanie vlastného servera pre každú úlohu. Povedzme, že chcete rozšíriť server tak, aby fungoval ako brána Web-to-e-mail (Web-to-e-mail), ktorá zachytáva vstup používateľa z prehliadača a posiela ho e-mailom inému používateľovi. Kód by sa musel vložiť na server, aby sa analyzoval vstup z prehliadača, poslal ho e-mailom inému používateľovi a odoslal odpoveď späť do prehliadača cez sieťové pripojenie.
Po prvé, takáto úloha vyžaduje prístup ku kódu servera, čo nie je vždy možné.
Po druhé, je to ťažké a vyžaduje si rozsiahle technické znalosti.
Po tretie, platí to len pre konkrétny server. Ak potrebujete presunúť svoj server na inú platformu, budete musieť spustiť alebo aspoň stráviť veľa času portovaním kódu na túto platformu.
Prečo CGI?
CGI ponúka prenosné a jednoduché riešenie týchto problémov. Protokol CGI definuje štandardný spôsob komunikácie programov s webovým serverom. Bez akýchkoľvek špeciálnych znalostí je možné napísať program v akomkoľvek strojovom jazyku, ktorý je prepojený a komunikuje s webovým serverom. Tento program bude fungovať so všetkými webovými servermi, ktoré rozumejú protokolu CGI.
CGI komunikácia prebieha štandardným vstupom a výstupom, čo znamená, že ak viete, ako tlačiť a čítať dáta pomocou vášho programovacieho jazyka, môžete napísať aplikáciu webového servera. Okrem analýzy vstupu a výstupu je programovanie CGI aplikácií takmer ekvivalentné programovaniu akejkoľvek inej aplikácie. Ak chcete napríklad naprogramovať program „Hello, World!“, použite tlačové funkcie vášho jazyka a formát definovaný pre programy CGI na vytlačenie príslušnej správy.
Výber programovacieho jazyka
Pretože CGI je všeobecné rozhranie, nie ste obmedzení na žiadny konkrétny strojový jazyk. Často kladenou dôležitou otázkou je, aké programovacie jazyky možno použiť na programovanie CGI? Môžete použiť akýkoľvek jazyk, ktorý vám umožňuje vykonávať nasledujúce činnosti:
- vytlačiť na stdout
- Čítanie zo štandardného vstupu
- Čítanie z variabilných režimov
Takmer všetky programovacie jazyky a mnoho skriptovacích jazykov robí tieto tri veci a môžete použiť ktorúkoľvek z nich.
Jazyky spadajú do jednej z nasledujúcich dvoch tried: prekladané a tlmočené. Preložený jazyk, ako je C alebo C++, je zvyčajne menší a rýchlejší, zatiaľ čo interpretovaný jazyk, ako je Perl alebo Rexx, niekedy vyžaduje načítanie veľkého tlmočníka pri spustení. Okrem toho môžete distribuovať binárne kódy (kód preložený do strojového jazyka) bez zdrojového kódu, ak je váš jazyk preložiteľný. Distribúcia interpretovaných skriptov zvyčajne znamená distribúciu zdrojového kódu.
Pred výberom jazyka musíte najprv zvážiť svoje priority. Musíte zhodnotiť výhody rýchlosti a efektívnosti jedného programovacieho jazyka s jednoduchosťou programovania iného. Ak sa chcete naučiť ďalší jazyk, namiesto toho, aby ste používali jazyk, ktorý už poznáte, starostlivo zvážte výhody a nevýhody oboch jazykov.
Dva najbežnejšie používané jazyky na programovanie CGI sú C a Perl (oba sú zahrnuté v tejto knihe). Obe majú jasné výhody a nevýhody. Perl je veľmi vysokoúrovňový, ale výkonný jazyk, vhodný najmä na analýzu textu. Zatiaľ čo jednoduchosť použitia, flexibilita a výkon z neho robia atraktívny jazyk pre programovanie CGI, jeho relatívne veľká veľkosť a pomalšia prevádzka ho niekedy robia nevhodným pre niektoré aplikácie. Programy v jazyku C sú menšie, efektívnejšie a poskytujú riadenie systému na nižšej úrovni, ale je náročnejšie na programovanie, chýbajú im ľahké vstavané rutiny na spracovanie textu a je ťažšie ich ladiť.
Aký jazyk je najvhodnejší na programovanie CGI? Ten, ktorý považujete za pohodlnejší z hľadiska programovania. Obidve sú rovnako efektívne na programovanie CGI aplikácií a so správnymi knižnicami majú obe podobné schopnosti. Ak však máte ťažko dostupný server, môžete použiť menšie skompilované programy v jazyku C. Ak potrebujete rýchlo napísať aplikáciu, ktorá si vyžaduje veľa práce s textom, môžete namiesto toho použiť Perl.
Upozornenia
Existuje niekoľko dôležitých alternatív k aplikáciám CGI. Mnohé servery teraz obsahujú programovanie API, ktoré uľahčuje programovanie priamych serverových rozšírení na rozdiel od samostatných aplikácií CGI. Servery API sú zvyčajne efektívnejšie ako programy CGI. Iné servery obsahujú vstavané funkcie, ktoré dokážu spracovať špeciálne položky bez CGI, ako je napríklad párovanie databáz. Nakoniec, niektoré aplikácie môžu byť ovládané niektorými novými technológiami na strane klienta (a nie na strane servera), ako je napríklad Java. Stane sa CGI rýchlo zastaraným vzhľadom na také rýchle zmeny v technológii?
Sotva. CGI má oproti novším technológiám niekoľko výhod.
- Je všestranný a prenosný. Aplikáciu CGI môžete napísať pomocou takmer akéhokoľvek programovacieho jazyka na akejkoľvek platforme. Niektoré z alternatív, ako napríklad serverové API, vás obmedzujú na určité jazyky a je oveľa ťažšie sa ich naučiť.
- Je nepravdepodobné, že klientske technológie ako Java nahradia CGI, pretože existujú aplikácie, pre ktoré sú serverové aplikácie oveľa vhodnejšie na spustenie.
- Mnohé z obmedzení CGI sú obmedzenia HTML alebo HTTP. Ako sa vo všeobecnosti vyvíjajú internetové štandardy, vyvíjajú sa aj možnosti CGI.
Zhrnutie
Rozhranie Common Gateway je protokol, pomocou ktorého programy komunikujú s webovými servermi. Všestrannosť CGI umožňuje programátorom písať programy brány v takmer akomkoľvek jazyku, aj keď existuje veľa kompromisov spojených s rôznymi jazykmi. Bez tejto schopnosti by bolo vytváranie interaktívnych webových stránok zložité, v najlepšom prípade by vyžadovalo úpravy servera a interaktivita by bola nedostupná pre väčšinu používateľov, ktorí nie sú správcami lokality.
Kapitola 2. Základy
Pred niekoľkými rokmi som vytvoril stránku pre univerzitu na Harvarde, kde ste mohli posielať svoje pripomienky k nim. V tom čase bol internet mladý a dokumentácia bola vzácna. Ako mnohí iní som sa pri učení CGI programovania spoliehal na stručnú dokumentáciu a programovací systém vytvorený inými. Hoci si tento spôsob štúdia vyžadoval určité hľadanie, veľa experimentov a vyvolával mnohé otázky, bol veľmi efektívny. Táto kapitola je ovocím mojej ranej práce s CGI (samozrejme s niekoľkými vylepšeniami).
Hoci úplné pochopenie a zvládnutie rozhrania spoločnej brány trvá nejaký čas, samotný protokol je pomerne jednoduchý. Každý, kto má nejaké základné programátorské zručnosti a je oboznámený s webom, sa môže rýchlo naučiť programovať pomerne zložité CGI aplikácie, tak ako som sa to naučil ja a iní pred niekoľkými rokmi.
Účelom tejto kapitoly je predstaviť základy CGI komplexným, aj keď stručným spôsobom. Každý koncept, o ktorom sa tu diskutuje, je podrobne predstavený v nasledujúcich kapitolách. Po preštudovaní tejto kapitoly však môžete hneď začať programovať CGI aplikácie. Keď dosiahnete túto úroveň, môžete sa naučiť detaily CGI, či už čítaním zvyšku tejto knihy, alebo jednoduchým experimentovaním na vlastnej koži.
Programovanie CGI môžete zredukovať na dve úlohy: získanie informácií z webového prehliadača a odoslanie informácií späť do prehliadača. Toto je pomerne intuitívne, keď sa naučíte bežné používanie CGI aplikácií. Používateľ je často vyzvaný, aby vyplnil formulár, napríklad aby vložil svoje meno. Keď používateľ vyplní formulár a stlačí Enter, tieto informácie sa odošlú do programu CGI. Program CGI potom musí tieto informácie previesť na to, čomu rozumie, vhodne ich spracovať a následne odoslať späť do prehliadača, či už ide o jednoduché potvrdenie alebo výsledok viacúčelového vyhľadávania v databáze.
Inými slovami, programovanie CGI vyžaduje pochopenie toho, ako získať vstup z internetového prehliadača a ako odoslať výstup späť. Čo sa stane medzi vstupnou a výstupnou fázou CGI programu, závisí od cieľa vývojára. Zistíte, že hlavná ťažkosť pri programovaní CGI spočíva v tomto prechodnom štádiu; potom, čo sa naučíte pracovať so vstupom a výstupom, to v podstate stačí na to, aby ste sa stali vývojárom CGI.
V tejto kapitole sa naučíte princípy vstupu a výstupu CGI, ako aj ďalšie základné zručnosti, ktoré budete potrebovať na písanie a používanie CGI, vrátane vecí, ako je vytváranie formulárov HTML a pomenovanie programov CGI. Táto kapitola sa zaoberá nasledujúcimi témami:
- Tradičný program „Ahoj, Svet!“;
- Výstup CGI: odosielanie informácií späť na zobrazenie v internetovom prehliadači;
- Konfigurácia, inštalácia a spustenie aplikácie. Dozviete sa o rôznych platformách a webových serveroch;
- Vstup CGI: Interpretácia informácií odoslaných webovým prehliadačom. Oboznámenie sa s niektorými užitočnými programovacími knižnicami na analýzu takéhoto vstupu;
- Jednoduchý príklad: pokrýva všetky lekcie v tejto kapitole;
- Stratégia programovania.
Vzhľadom na charakter tejto kapitoly sa niektorých tém dotknem len zľahka. Nebojte sa; všetky tieto témy sú oveľa hlbšie pokryté v iných kapitolách.
Ahoj svet!
Začnete tradičnou úvodnou programátorskou úlohou. Napíšete program, ktorý zobrazí "Hello, World!" vo vašom webovom prehliadači. Pred napísaním tohto programu musíte pochopiť, aké informácie webový prehliadač očakáva od programov CGI. Musíte tiež vedieť, ako spustiť tento program, aby ste ho videli v akcii.
CGI je jazykovo nezávislé, takže tento program môžete implementovať v akomkoľvek jazyku. Na preukázanie nezávislosti každého jazyka sa tu používa niekoľko rôznych jazykov. V Perle je program "Ahoj, svet!" uvedené v zozname 2.1.
Výpis 2.1. Ahoj svet! v jazyku Perl. #!/usr/local/bin/perl # Hello.cgi - Môj prvý CGI program print "Content-Type: text/html\n\n"; tlačiť"
\n";tlač"Ahoj svet!
\n";tlač" \n";Uložte tento program ako hello.cgi a nainštalujte ho na príslušné miesto. (Ak si nie ste istí, kde to je, nezúfajte; dozviete sa to v časti „Inštalácia a spustenie programu CGI“ ďalej v tejto kapitole.) Pre väčšinu serverov sa správny adresár nazýva cgi-bin . Teraz zavolajte program z webového prehliadača. Pre väčšinu to znamená otvorenie nasledujúceho Uniform Resource Locator (URL):
http://hostname/directoryname/hello.cgi
Hostname je názov vášho webového servera a directoryname je adresár, do ktorého ste vložili hello.cgi (pravdepodobne cgi-bin).
Rozdelenie hello.cgi
O hello.cgi je potrebné poznamenať niekoľko vecí.
Najprv použijete jednoduché príkazy na tlač. Programy CGI nevyžadujú žiadne špeciálne deskriptory súborov ani výstupné deskriptory. Ak chcete odoslať výstup do prehliadača, jednoducho vytlačte na stdout.
Po druhé, všimnite si, že obsah prvého tlačového výpisu (Content-Type: text/html) sa nezobrazuje vo vašom webovom prehliadači. Akékoľvek informácie, ktoré chcete, môžete odoslať späť do prehliadača (stránka HTML, grafika alebo zvuk), ale najprv musíte prehliadaču povedať, aký druh údajov ich odosielate. Tento riadok informuje prehliadač, aký druh informácií môže očakávať – v tomto prípade HTML stránku.
Po tretie, program sa volá hello.cgi. Nie vždy je potrebné použiť príponu .cgi s názvom vášho CGI programu. Aj keď zdrojový kód mnohých jazykov používa aj príponu .cgi, nepoužíva sa na označenie typu jazyka, ale je to spôsob, akým server identifikuje súbor ako spustiteľný súbor, a nie ako súbor s obrázkom, súbor HTML. alebo textový súbor. Servery sú často nakonfigurované tak, aby sa pokúsili spustiť iba tie súbory, ktoré majú túto príponu, pričom zobrazujú obsah všetkých ostatných. Aj keď je použitie prípony .cgi voliteľné, stále sa považuje za osvedčený postup.
Vo všeobecnosti sa hello.cgi skladá z dvoch hlavných častí:
- informuje prehliadač, aké informácie má očakávať (Typ obsahu: text/html)
- povie prehliadaču, čo má zobraziť (Ahoj, svet!)
Ahoj svet! v C
Aby sme ukázali nezávislosť CGI programov od jazykov, výpis 2.2 ukazuje C ekvivalent programu hello.cgi.
Výpis 2.2. Ahoj svet! v C. /* hello.cgi.c - Ahoj, svet CGI */ #include Ahoj svet!
\n"); printf(" \n"); )
Poznámka
Všimnite si, že Perl verzia hello.cgi používa Content-Type print ": text/html\n\n "; Zatiaľ čo verzia C používa Printf(" Content-Type: text/html\r\n\r\n ");
Prečo Perl tlačí príkaz končí dvoma riadkami (\n), zatiaľ čo C printf končí dvoma návratmi vozíka a novým riadkom (\r\n)?
Formálne sa predpokladá, že hlavičky (všetky výstupy pred prázdnym riadkom) budú oddelené znakmi konca riadku a novými riadkami. Bohužiaľ, na počítačoch so systémom DOS a Windows, Perl prekladá \r ako ďalší nový riadok, nie ako návrat vozíka.
Hoci výnimka \rs v Perle je technicky nesprávna, bude fungovať takmer vo všetkých protokoloch a je tiež prenosná na všetky platformy. Preto vo všetkých príkladoch v jazyku Perl v tejto knihe používam na oddelenie hlavičiek nové riadky, nie konce a nové riadky.
Vhodné riešenie tohto problému je uvedené v kapitole 4, Záver.
Webový server ani prehliadač nezaujíma, v akom jazyku sa program píše. Hoci každý jazyk má výhody a nevýhody ako programovací jazyk CGI, najlepšie je použiť jazyk, ktorý vám najviac vyhovuje. (Výber programovacieho jazyka je podrobnejšie rozobraný v kapitole 1 "Common Gateway Interface (CGI)").
CGI výstup
Teraz sa môžeme bližšie pozrieť na problematiku odosielania informácií do webového prehliadača. Z príkladu „Hello, World!“ môžete vidieť, že webové prehliadače očakávajú dve sady údajov: hlavičku, ktorá obsahuje informácie, ako napríklad informácie, ktoré sa majú zobraziť (napr. Content-Type: riadok) a aktuálne informácie (to, čo sa zobrazuje na Webový prehliadač). Tieto dva bloky informácií sú oddelené prázdnym riadkom.
Hlavička sa nazýva hlavička HTTP. Poskytuje dôležité podrobnosti o informáciách, ktoré prehliadač dostane. Je ich viacero rôzne druhy HTTP hlavičky a najvšeobecnejšia je hlavička, ktorú ste použili predtým: Content-Type: hlavička. Môžete použiť rôzne kombinácie hlavičiek HTTP oddelených znakmi konca riadku a novým riadkom (\r\n). Prázdny riadok oddeľujúci hlavičku od údajov sa skladá aj z návratu vozíka a nového riadku (prečo sú oba potrebné, je stručne popísané v predchádzajúcej poznámke a podrobne popísané v kapitole 4). O ďalších hlavičkách HTTP sa dozviete v kapitole 4; momentálne máte čo do činenia s hlavičkou Content-Type:.
Content-Type: Hlavička popisuje typ údajov, ktoré CGI vracia. Vhodný formát pre túto hlavičku je:
Content-Type: podtyp/typ
Kde podtyp/typ je správny typ MIME (Multipurpose Internet Mail Extensions). Najbežnejším typom MIME je typ HTML: text/html. Tabuľka 2.1 uvádza niekoľko bežných typov MIME, o ktorých sa bude diskutovať; úplnejší zoznam a analýza typov MIME je uvedená v kapitole 4.
Poznámka
MIME bol pôvodne vynájdený na opis obsahu tiel poštových správ. Stal sa pomerne bežným spôsobom prezentácie informácií typu Content-Type. Viac o MIME si môžete prečítať v RFC1521. RFC na internete znamená „Requests for Comments“, čo sú súhrny rozhodnutí, ktoré urobili skupiny na internete, ktoré sa snažia stanoviť štandardy. Výsledky RFC1521 si môžete pozrieť na nasledujúcej adrese: http://andrew2.andrew.cmu.edu/rfc/rfc1521.html
Tabuľka 2.1. Niektorí bežné typy pantomíma. Typ MIME Popis Text/html Hypertext Markup Language (HTML) Textové/obyčajné textové súbory Obrázky/gif GIF grafické súbory Obrázok/jpeg JPEG komprimované grafické súbory Zvukové/základné zvukové súbory Sun *.au Zvukové/x-wav Windows* súbory wav
Po hlavičke a prázdnom riadku jednoducho vytlačíte údaje vo forme, akú potrebujete. Ak posielate HTML, vytlačte HTML tagy a údaje na stdout za hlavičkou. Môžete tiež odoslať grafiku, zvuk a ďalšie binárne súbory jednoduchým vytlačením obsahu súboru na stdout. Niektoré príklady sú uvedené v kapitole 4.
Inštalácia a spustenie programu CGI
Táto časť sa trochu odchyľuje od programovania CGI a hovorí o konfigurácii vášho webového servera na používanie CGI, inštalácii a spúšťaní programov. Budete oboznámení s rôznymi servermi pre rôzne platformy viac či menej podrobne, ale budete musieť preštudovať dokumentáciu vášho servera, aby ste našli najlepšiu možnosť.
Všetky servery vyžadujú priestor pre serverové súbory a priestor pre dokumenty HTML. V tejto knihe sa oblasť servera nazýva ServerRoot a oblasť dokumentu je DocumentRoot. Na počítačoch so systémom UNIX je ServerRoot zvyčajne v /usr/local/etc/httpd/ a DocumentRoot je zvyčajne v /usr/local/etc/httpd/htdocs/. Na vašom systéme však nezáleží, preto nahraďte všetky odkazy na ServerRoot a DocumentRoot vlastným ServerRoot a DocumentRoot.
Keď pristupujete k súborom pomocou webového prehliadača, zadáte súbor v URL relatívnej k DocumentRoot. Napríklad, ak je adresa vášho servera mymachine.org, potom k tomuto súboru pristupujete pomocou nasledujúcej adresy URL: http://mymachine.org/index.html
Konfigurácia servera pre CGI
Väčšina webových serverov je predkonfigurovaná tak, aby umožňovala používanie programov CGI. Zvyčajne dva parametre informujú server, či je súbor aplikáciou CGI alebo nie:
- Určený adresár. Niektoré servery vám umožňujú určiť, že všetky súbory v určenom adresári (predvolene nazývanom cgi-bin) sú CGI.
- Prípony názvov súborov. Mnohé servery sú vopred nakonfigurované tak, aby umožňovali definovanie všetkých súborov s príponou .cgi ako CGI.
Určená metóda adresára je do istej miery pozostatkom (úplne prvé servery ju používali ako jedinú metódu na určenie, ktoré súbory boli programy CGI), ale má niekoľko výhod.
- Udržuje programy CGI centralizované, čím zabraňuje preplneniu iných adresárov.
- Nie ste obmedzení na žiadnu konkrétnu príponu názvu súboru, takže súbory môžete pomenovať, ako chcete. Niektoré servery umožňujú označiť niekoľko rôznych adresárov ako adresáre CGI.
- Poskytuje vám tiež väčšiu kontrolu nad tým, kto môže písať CGI. Napríklad, ak máte server a podporujete systém s viacerými používateľmi a nechcete, aby používali svoje vlastné skripty CGI bez toho, aby najprv zrevidovali program z bezpečnostných dôvodov, ako CGI môžete označiť iba tie súbory v obmedzenom centralizovanom adresári. . Používatelia vám potom budú musieť poskytnúť programy CGI na inštaláciu a najskôr môžete skontrolovať kód, aby ste sa uistili, že program nemá žiadne veľké bezpečnostné problémy.
Označenie CGI cez príponu názvu súboru môže byť užitočné kvôli jeho flexibilite. Pre programy CGI nie ste obmedzený na jeden jediný adresár. Väčšina serverov môže byť nakonfigurovaná tak, aby rozpoznala CGI prostredníctvom prípony názvu súboru, hoci nie všetky sú predvolene nakonfigurované týmto spôsobom.
POZOR
Pri konfigurácii servera pre CGI majte na pamäti bezpečnostné obavy. Niektoré tipy budú uvedené tu a kapitola 9, Zabezpečenie CGI, rozoberá tieto aspekty podrobnejšie.
Inštalácia CGI na servery UNIX
Bez ohľadu na to, ako je nakonfigurovaný váš server UNIX, existuje niekoľko krokov, ktoré musíte vykonať, aby ste sa uistili, že vaše aplikácie CGI bežia správne. Váš webový server bude normálne bežať ako neexistujúci používateľ (to znamená používateľ UNIX nikto – účet, ktorý nemá oprávnenia na súbory a nedá sa prihlásiť). CGI skripty (či už napísané v Perle, Bourne shell alebo inom skriptovacom jazyku) musia byť spustiteľné a čitateľné pre celý svet.
Nápoveda
Ak chcete, aby boli vaše súbory globálne čitateľné a spustiteľné, použite nasledujúci príkaz UNIX oprávnení: chmod 755 filename.
Ak používate skriptovací jazyk, ako je Perl alebo Tcl, uveďte úplnú cestu svojho tlmočníka na prvý riadok skriptu. Napríklad skript Perl používajúci perl v adresári /usr/local/bin by začínal nasledujúcim riadkom:
#!/usr/local/bin/perl
POZOR
Nikdy neumiestňujte tlmočník (perl alebo binárny súbor Tcl Wish do adresára /cgi-bin. To vytvára bezpečnostné riziko vo vašom systéme. Podrobnejšie je to uvedené v kapitole 9.
Niektoré univerzálne servery UNIX
Servery NCSA a Apache majú podobné konfiguračné súbory, pretože server Apache bol pôvodne založený na kóde NCSA. Štandardne sú nakonfigurované tak, že každý súbor v adresári cgi-bin (štandardne umiestnený v ServerRoot) je programom CGI. Ak chcete zmeniť umiestnenie adresára cgi-bin, môžete upraviť konfiguračný súbor conf/srm.conf. Formát na konfiguráciu tohto adresára je
ScriptAlias falošný názov adresára skutočný názov adresára
kde fakedirectoryname je pseudonázov adresára (/cgi-bin) a realdirectoryname je úplná cesta, kde sú CGI programy skutočne uložené. Môžete nakonfigurovať viac ako jeden ScriptAlias pridaním ďalších riadkov ScriptAlias.
Predvolená konfigurácia je dostatočná pre potreby väčšiny používateľov. Aj tak musíte upraviť riadok v súbore srm.conf, aby ste určili správny názov skutočného adresára. Ak sú napríklad vaše CGI programy umiestnené v /usr/local/etc/httpd/cgi-bin, riadok ScriptAlias vo vašom súbore srm.conf by mal vyzerať takto:
ScriptAlias /cgi-bin/ /usr/local/etc/httpd/cgi-bin/
Ak chcete získať prístup k programom CGI umiestneným v tomto adresári alebo na ne vytvoriť prepojenie, použite nasledujúcu adresu URL:
http://hostname/cgi-bin/programname
Kde názov hostiteľa je názov hostiteľa vášho webového servera a názov programu je názov vášho CGI.
Povedzme napríklad, že ste skopírovali program hello.cgi do svojho adresára cgi-bin (napr. /usr/local/etc/httpd/cgi-bin) na webovom serveri s názvom www.company.com. Ak chcete získať prístup k svojmu CGI, použite nasledujúcu adresu URL: http://www.company.com/cgi-bin/hello.cgi
Ak chcete nakonfigurovať server NCSA alebo Apache tak, aby rozpoznal akýkoľvek súbor .cgi ako CGI, musíte upraviť dva konfiguračné súbory. Po prvé, v súbore srm.conf nekomentujte nasledujúci riadok:
AddType application/x-httpd-cgi .cgi
Toto priradí typ MIME CGI k prípone .cgi. Teraz musíme upraviť súbor access.conf, aby sme mohli spustiť CGI v ľubovoľnom adresári. Ak to chcete urobiť, pridajte možnosť ExecCGI do riadku Option. Bude to vyzerať asi ako nasledujúci riadok:
Indexy možností Nasledujte SymLinks ExecCGI
Teraz sa každý súbor s príponou .cgi považuje za CGI; pristupujte k nemu ako k akémukoľvek súboru na vašom serveri.
Server CERN je nakonfigurovaný rovnakým spôsobom ako servery Apache a NCSA. Namiesto ScriptAlias používa server CERN príkaz Exec. Napríklad v súbore httpd.conf uvidíte nasledujúci riadok:
Exec /cgi-bin/* /usr/local/etc/httpd/cgi-bin/*
Ostatné UNIXové servery môžu byť nakonfigurované rovnakým spôsobom; viac podrobností je popísaných v dokumentácii k serveru.
Inštalácia CGI na Windows
Väčšina serverov dostupných pre Windows 3.1, Windows 95 a Windows NT je nakonfigurovaná s metódou "prípony názvu súboru" na rozpoznávanie CGI. Vo všeobecnosti zmena konfigurácie servera so systémom Windows jednoducho vyžaduje spustenie konfiguračného programu servera a vykonanie príslušných zmien.
Niekedy môže byť konfigurácia servera na správne spustenie skriptu (napríklad Perl) zložitá. V systéme DOS alebo Windows nebudete môcť zadať interpret v prvom riadku skriptu, ako by ste to urobili v systéme UNIX. Niektoré servery sú vopred nakonfigurované tak, aby priraďovali určité prípony súboru k interpreteru. Napríklad mnohé webové servery Windows predpokladajú, že súbory končiace na .pl sú skripty v jazyku Perl.
Ak server neimplementuje tento typ priradenia súborov, môžete definovať dávkový súbor balíčka, ktorý zavolá interpret aj skript. Rovnako ako pri serveri UNIX, neinštalujte interpret do adresára cgi-bin ani do žiadneho adresára prístupného z webu.
Inštalácia CGI na počítači Macintosh
Dve najznámejšie možnosti servera pre Macintosh sú WebStar StarNine a jeho predchodca MacHTTP. Obaja rozpoznávajú CGI podľa jeho prípony názvu súboru.
MacHTTP rozumie dvom rôznym príponám: .cgi a .acgi, čo znamená asynchrónne CGI. Bežné programy CGI nainštalované na počítači Macintosh (s príponou .cgi) udržia webový server zaneprázdnený, kým CGI nedokončí vykonávanie, čím server prinúti pozastaviť všetky ostatné požiadavky. Asynchrónne CGI na druhej strane umožňuje serveru akceptovať požiadavky, aj keď je spustený.
Vývojár CGI pre počítače Macintosh, ktorý používa ktorýkoľvek z týchto webových serverov, by mal vždy, keď je to možné, použiť príponu .acgi namiesto prípony .cgi. Mal by fungovať s väčšinou programov CGI; ak to nefunguje, premenujte program na .cgi.
CGI prevedenie
Po nainštalovaní CGI existuje niekoľko spôsobov, ako ho spustiť. Ak je váš CGI program len na výstup, ako napríklad Hello, World!, môžete ho spustiť jednoduchým prístupom k jeho URL.
Väčšina programov beží ako serverová aplikácia vo forme HTML. Predtým, ako sa naučíte získavať informácie z týchto formulárov, prečítajte si najprv krátky úvod o vytváraní takýchto formulárov.
Rýchly návod na HTML formuláre
Dve najdôležitejšie značky vo forme HTML sú značky
na označenie konca formulára. Vo formulári nemôžete mať formulár, hoci môžete nastaviť formulár, ktorý vám umožní prezentovať informácie na rôznych miestach; tento aspekt je podrobne diskutovaný v kapitole 3.Tag
Pomocou značky môžete vytvárať textové vstupné pásy, prepínače, začiarkavacie políčka a ďalšie prostriedky na prijímanie vstupu . Táto časť pokrýva iba polia na zadávanie textu. Na implementáciu tohto poľa použite značku s nasledujúcimi atribútmi:
< INPUT TYPE=text NAME = "... " VALUE = "... " SIZE = MAXLENGTH = >
NAME je symbolický názov premennej, ktorá obsahuje hodnotu zadanú používateľom. Ak do atribútu VALUE zahrniete text, tento text sa umiestni ako predvolený do poľa na zadávanie textu. Atribút SIZE vám umožňuje určiť horizontálnu dĺžku vstupného poľa, ako sa zobrazí v okne prehliadača. Nakoniec MAXLENGTH definuje maximálny počet znakov, ktoré môže používateľ zadať do poľa. Všimnite si, že atribúty VALUE, SIZE, MAXLENGTH sú voliteľné.
Odoslanie formulára
Ak máte vo formulári iba jedno textové pole, používateľ môže odoslať formulár jednoduchým zadaním informácií na klávesnici a stlačením klávesu Enter. V opačnom prípade musí existovať iný spôsob, ako môže používateľ prezentovať informácie. Používateľ odošle informácie pomocou tlačidla Odoslať s nasledujúcou značkou:
< Input type=submit >
Táto značka vytvorí vo formulári tlačidlo Odoslať. Keď používateľ dokončí vyplnenie formulára, môže kliknutím na tlačidlo Odoslať jeho obsah odoslať na adresu URL určenú atribútom AKCIA formulára.
Prijímanie vstupu z prehliadača
Vyššie boli uvedené príklady písania programu CGI, ktorý odosiela informácie zo servera do prehliadača. V skutočnosti CGI program, ktorý vydáva iba dáta, nemá veľa aplikácií (niektoré príklady sú uvedené v kapitole 4). Dôležitejšou schopnosťou CGI je prijímať informácie z prehliadača, čo je funkcia, ktorá robí web interaktívnym.
Program CGI prijíma z prehliadača dva druhy informácií.
- Najprv získa rôzne informácie o prehliadači (jeho typ, čo môže prehliadať, hostiteľský hostiteľ atď.), serveri (jeho názov a verzia, jeho vykonávací port atď.) a CGI programe. (názov programu a kde sa nachádza). Server poskytuje všetky tieto informácie programu CGI prostredníctvom premenných prostredia.
- Po druhé, program CGI môže prijímať informácie zadané používateľom. Tieto informácie sa po zakódovaní prehliadačom odosielajú buď prostredníctvom premennej prostredia (metóda GET) alebo štandardným vstupom (metóda stdin POST).
Premenné prostredia
Je užitočné vedieť, aké premenné prostredia sú dostupné pre program CGI, a to ako na učenie, tak aj na ladenie. Tabuľka 2.2 uvádza niektoré dostupné premenné prostredia CGI. Môžete tiež napísať program CGI, ktorý odosiela premenné prostredia a ich hodnoty do webového prehliadača.
Tabuľka 2.2. Niektoré dôležité premenné prostredia CGI Premenná prostredia Účel REMOTE_ADDR Adresa IP klientskeho počítača. REMOTE_HOST Hostiteľ hostiteľského počítača klienta. HTTP _ACCEPT Uvádza typy údajov MIME, ktoré môže prehliadač interpretovať. HTTP _USER_AGENT Informácie o prehliadači (typ prehliadača, číslo verzie, operačný systém atď.). REQUEST_METHOD GET alebo POST. CONTENT_LENGTH Dĺžka vstupu, ak je odoslaný prostredníctvom POST. Ak nie je zadaný žiadny vstup alebo ak sa použije metóda GET, tento parameter nie je definovaný. QUERY_STRING Obsahuje vstupné informácie pri odoslaní pomocou metódy GET. PATH_INFO Umožňuje užívateľovi zadať cestu z príkazového riadka CGI (napríklad http://hostname/cgi-bin/programname/path). PATH_TRANSLATED Preloží relatívnu cestu v PATH_INFO na skutočnú cestu v systéme.
Ak chcete napísať aplikáciu CGI, ktorá zobrazuje premenné prostredia, musíte vedieť, ako urobiť dve veci:
- Definujte všetky premenné prostredia a ich príslušné hodnoty.
- Zobraziť výsledky pre prehliadač.
Už viete, ako vykonať poslednú operáciu. V Perle sú premenné prostredia uložené v asociatívnom poli %ENV, ktoré je uvedené názvom premennej prostredia. Výpis 2.3 obsahuje env.cgi, program v jazyku Perl, ktorý splní náš cieľ.
Výpis 2.3. Perl program, env.cgi, ktorý vypisuje všetky premenné prostredia CGI.
#!/usr/local/bin/perl print "Typ obsahu: text/html\n\n"; tlačiť"
\n";tlač"Prostredie CGI
\n"; pre každý $env_var (klávesy %ENV) ( tlač " $env_var= $ENV($env_var)\n"; ) vytlačiť " \n";
Podobný program by sa dal napísať v C; celý kód je vo výpise 2.4.
Výpis 2.4. env.cgi.c v C. /* env.cgi.c */ #include Prostredie CGI
\n"); while(*p != NULL) printf("%s
\n",*p++); printf(" \n"); )
GET alebo POST?
Aký je rozdiel medzi metódami GET a POST? GET odovzdá zakódovaný vstupný reťazec cez premennú prostredia QUERY_STRING, zatiaľ čo POST ho odovzdá cez stdin. POST je preferovaná metóda, najmä pre formuláre s veľkým množstvom údajov, pretože neexistujú žiadne obmedzenia na množstvo odosielaných informácií a pri metóde GET je množstvo mediálneho priestoru obmedzené. GET má však špecifikum užitočný majetok; toto je podrobne popísané v kapitole 5 Vstup.
Na určenie, ktorá metóda sa používa, program CGI skontroluje premennú prostredia REQUEST_METHOD, ktorá bude nastavená na GET alebo POST. Ak je nastavená na POST, dĺžka zakódovaných informácií je uložená v premennej prostredia CONTENT_LENGTH.
Kódovaný vstup
Keď používateľ odošle formulár, prehliadač najprv zakóduje informácie pred ich odoslaním na server a potom do aplikácie CGI. Keď použijete značku , každé pole má priradený symbolický názov. Hodnota zadaná používateľom je reprezentovaná ako hodnota premennej.
Prehliadač na to používa špecifikáciu kódovania adresy URL, ktorá môže byť opísaná takto:
- Rôzne polia oddeľuje znakom ampersand (&).
- Oddeľuje názov a hodnoty znakmi rovnosti (=), pričom názov je vľavo a hodnota vpravo.
- Medzery nahrádza znamienkami plus (+).
- Nahradí všetky „nenormálne“ znaky znakom percenta (%), za ktorým nasleduje dvojmiestny hexadecimálny kód znaku.
Váš konečný zakódovaný reťazec bude vyzerať takto:
Meno1=hodnota1&meno2=hodnota2&meno3=hodnota3 ...
Poznámka: Špecifikácie pre kódovanie URL sú v RFC1738.
Povedzme napríklad, že ste mali formulár, ktorý požadoval meno a vek. HTML kód, ktorý bol použitý na zobrazenie tohto formulára, je uvedený vo výpise 2.5.
Výpis 2.5. HTML kód na zobrazenie formulára mena a veku.
Predpokladajme, že používateľ zadá do poľa meno Joe Schmoe a do poľa vek 20 rokov. Vstup bude zakódovaný vo vstupnom reťazci.
Meno=Joe+Schmoe&vek=20
Vstupná analýza
Aby boli tieto informácie užitočné, musíte použiť informácie o niečom, čo môžu použiť vaše programy CGI. Stratégie analýzy vstupu sú zahrnuté v kapitole 5. V praxi nikdy nemusíte premýšľať o tom, ako analyzovať vstup, pretože niekoľko ľudí už napísalo verejne dostupné knižnice, ktoré vykonávajú analýzu. Dve takéto knižnice sú uvedené v tejto kapitole v nasledujúcich častiach: cgi-lib.pl pre Perl (napísal Steve Brenner) a cgihtml pre C (napísal som ja).
Všeobecným cieľom väčšiny knižníc napísaných v rôznych jazykoch je analyzovať zakódovaný reťazec a vložiť páry mien a hodnôt do dátovej štruktúry. Používanie jazyka, ktorý má vstavané dátové štruktúry, ako je Perl, má zjavnú výhodu; väčšina knižníc pre jazyky nižšej úrovne, ako sú C a C++, však zahŕňa vykonávanie dátovej štruktúry a podprogramu.
Nie je potrebné dosiahnuť úplné pochopenie knižníc; oveľa dôležitejšie je naučiť sa ich používať ako nástroje na uľahčenie práce programátora CGI.
cgi-lib.pl
Cgi-lib.pl používa asociatívne polia Perlu. Funkcia &ReadParse analyzuje vstupný reťazec a zadá každý pár názov/hodnota podľa názvu. Napríklad zodpovedajúce perlové reťazce potrebné na dekódovanie práve prezentovaného vstupného reťazca „meno/vek“.
&ReadParse(*vstup);
Teraz, ak chcete vidieť hodnotu zadanú pre "name", môžete použiť asociatívne pole $input("name"). Podobne, ak chcete odkazovať na hodnotu „vek“, musíte sa pozrieť na premennú $input("vek").
cgihtml
C nemá žiadne vstavané dátové štruktúry, takže cgihtml implementuje svoj vlastný zoznam odkazov na použitie s rutinami analýzy CGI. Toto definuje štruktúru entrytype takto:
Typedef struct ( Char *meno; Char *hodnota; ) Entrytype;
Na analýzu vstupného reťazca "meno / vek" v jazyku C pomocou cgihtml sa používa toto:
/* deklaruje prepojený zoznam s názvom input */ Llist input; /* analyzovať vstup a umiestniť do prepojeného zoznamu */ read_cgi_input(&input);
Ak chcete získať prístup k informáciám o veku, môžete zoznam analyzovať manuálne alebo použiť poskytnutú funkciu cgi _val().
#include
Hodnota „vek“ je teraz uložená v reťazci veku.
Poznámka: Namiesto použitia jednoduchého poľa (napríklad char age ;), prideľujem pamäťový priestor dynamicky pre reťazec veku. To síce komplikuje programovanie, no napriek tomu je to dôležité z hľadiska bezpečnosti. Viac o tom v kapitole 9.
Jednoduchý CGI program
Chystáte sa napísať CGI program s názvom nameage.cgi, ktorý spracováva formulár „meno/vek“. Spracovanie údajov (čo zvyčajne nazývam „medzimateriál“) je minimálne. Nameage.cgi jednoducho dekóduje vstup a zobrazí meno používateľa a vek. Hoci to nie je pre takýto nástroj obzvlášť užitočné, demonštruje najkritickejší aspekt programovania CGI: vstup a výstup.
Používate rovnaký formulár, ako je popísané vyššie, pričom zavoláte polia „meno a vek“. Robustnosti a účinnosti sa zatiaľ nebojte; vyriešiť daný problém najjednoduchším spôsobom. Perl a C riešenia sú zobrazené vo výpisoch 2.6 a 2.7.
Výpis 2.6. Nameage.cgi v jazyku Perl
#!/usr/local/bin/perl # nameage.cgi vyžaduje "cgi-lib.pl" &ReadParse(*input); vytlačiť "Typ obsahu: text/html\r\n\r\n"; tlačiť"
\n";tlač"\n";tlač" \n";
Výpis 2.7. nameage.cgi v C
/* nameage.cgi.c */ #include\n",cgi_val(input,"vek")); printf(" \n"); )
Všimnite si, že tieto dva programy sú takmer ekvivalentné. Obidve obsahujú rutiny analýzy, ktoré zaberajú iba jeden riadok a spracúvajú všetky vstupy (vďaka príslušným rutinám knižnice). Výstupom je v podstate upravená verzia vášho hlavného programu Hello, World!.
Skúste spustiť program vyplnením formulára a kliknutím na tlačidlo Odoslať.
Všeobecná programovacia stratégia
Teraz poznáte všetky základné princípy potrebné pre programovanie CGI. Keď pochopíte, ako CGI prijíma informácie a ako ich posiela späť do prehliadača, skutočná kvalita vášho konečného produktu závisí od vašich všeobecných programovacích schopností. Menovite, keď programujete CGI (alebo čokoľvek iné), majte na pamäti nasledujúce vlastnosti:
- Jednoduchosť
- Efektívnosť
- Všestrannosť
Prvé dve vlastnosti sú celkom bežné: snažte sa, aby bol váš kód čo najčitateľnejší a najefektívnejší. Všestrannosť sa týka viac programov CGI ako iných aplikácií. Keď začnete vyvíjať svoje vlastné CGI programy, zistíte, že existuje niekoľko základných aplikácií, ktoré chce robiť každý. Napríklad jednou z najbežnejších a najzrejmejších úloh programu CGI je spracovanie formulára a odoslanie výsledkov e-mailom konkrétnemu príjemcovi. Môžete mať niekoľko samostatných vykreslených formulárov, z ktorých každý má iného príjemcu. Namiesto písania programu CGI pre každý jednotlivý formulár môžete ušetriť čas napísaním všeobecnejšieho programu CGI, ktorý vyhovuje všetkým formulárom.
Pokrytím všetkých základných aspektov CGI som vám poskytol dostatok informácií, aby ste mohli začať s programovaním CGI. Ak však chcete byť efektívnym vývojárom CGI, musíte mať hlbšie pochopenie toho, ako CGI komunikuje so serverom a prehliadačom. Zvyšok tejto knihy podrobne rozoberá tie problémy, ktoré boli stručne spomenuté v tejto kapitole, ako aj stratégie vývoja aplikácií, výhody a obmedzenia protokolu.
Zhrnutie
Táto kapitola stručne popisuje základy programovania CGI. Výstup vytvoríte správnym formátovaním údajov a tlačou na štandardný výstup. Získanie vstupu CGI je o niečo komplikovanejšie, pretože ho treba pred použitím analyzovať. Našťastie už existuje niekoľko knižníc, ktoré analýzu vykonávajú.
Teraz by ste už mali byť celkom spokojní s programovaním CGI aplikácií. Zvyšok tejto knihy je venovaný podrobnejšej prezentácii špecifikácií, rád a programovacích stratégií pre pokročilejšie a komplexnejšie aplikácie.
Majitelia internetových obchodov poznajú pojem „elektronický obchod“ na vlastnej koži, určite poznajú odpoveď na otázku „elektronický obchod – čo to je“. Ale ak pochopíte podstatu, potom sa objavia mnohé nuansy a tento pojem nadobudne širší význam.
Elektronický obchod: čo to je?
Všeobecná koncepcia je nasledovná: elektronický obchod sa chápe ako určitý prístup k podnikaniu, ktorý zahŕňa zahrnutie množstva prevádzok, ktoré využívajú digitálny prenos dát pri poskytovaní tovaru alebo poskytovaní služieb/práce, a to aj prostredníctvom internet.
Ide teda o akúkoľvek obchodnú transakciu, ktorá sa uskutočňuje pomocou elektronickými prostriedkami spojenia.
Schéma práce je usporiadaná takto:
- do tohto systému sa zaregistruje každý môže byť blogerom alebo iným vlastníkom vlastnej internetovej stránky;
- dostane svoj vlastný odkaz;
- umiestni na svoju webovú stránku špeciálny kód - zobrazí sa reklama vybraného oficiálneho partnera siete e-Commerce Partners Network;
- monitoruje konverziu webových stránok;
- zarobí určité percento za každý nákup návštevníka jeho stránky, ktorý klikol na pridružený odkaz.
Elektronický obchod WP
Veľký počet ľudí je v súčasnosti nadšený pre elektronický obchod, predovšetkým kvôli túžbe vytvoriť si vlastnú webovú stránku, jedinečný internetový obchod na predaj vlastných produktov. Na uspokojenie tohto rastúceho dopytu sa vývojári zamerali na vytváranie šablón elektronického obchodu (šablóny elektronického obchodu). Čo to je, zvážime ďalej.
Jedným z takýchto príkladov šablón je elektronický obchod WordPress. Ide o doplnok nákupného košíka pre WordPress (jeden z najznámejších systémov na správu webových zdrojov, určený predovšetkým na vytváranie a organizovanie blogov). Poskytuje sa úplne bezplatne a umožňuje návštevníkom stránky nakupovať na internetovej stránke.
Inými slovami, tento doplnok vám umožňuje vytvoriť internetový obchod (založený na WordPress). Tento doplnok elektronického obchodu má všetko potrebné nástroje, nastavenia a možnosti, ktoré zodpovedajú moderným potrebám.
2012: Kúpa British Logica
V júni 2012 CGI Group oznámila, že podpísala dohodu o kúpe Logica, najväčšieho európskeho systémového integrátora. Suma transakcie je 2,8 miliardy kanadských dolárov (2,7 miliardy USD). V rámci dosiahnutých opatrení CGI tiež súhlasila so zodpovednosťou za splatenie dlhu spoločnosti Logica vo výške 515 miliónov kanadských dolárov.
Na financovanie transakcie plánuje CGI získať 1 miliardu CAD vydaním ďalších 46,7 milióna akcií, požičať si 2 miliardy CAD od Canadian Imperial Bank of Commerce, National Bank of Canada a The Toronto-Dominion Bank a približne 650 miliónov dolárov – v rámci limitov prevádzkového úverového rámca.
Ponúkaná suma za akciu bola o 59,8 % vyššia ako náklady cenné papiere Logica uzavrela 30. mája 2012. Hodnota obchodu je približne 6,6-násobok zisku Logica pred zdanením, úrokmi a časovo rozlíšenými odpismi (EBITDA) za 12-mesačné obdobie končiace 31. decembra 2011.
Očakáva sa, že akvizícia spoločnosti Logica zvýši zisk na akciu CGI o 25 – 30 %, bez započítania nákladov na akvizíciu a integráciu. V dôsledku fúzie bude personál a ročné príjmy výslednej spoločnosti viac ako 2-krát vyššie ako CGI. Veľkosť zamestnancov zlúčenej spoločnosti bude asi 72 tisíc zamestnancov v kanceláriách v 43 krajinách a ročné tržby - asi 10,4 miliardy kanadských dolárov (9,6 miliardy dolárov).
Nová spoločnosť bude šiestou najväčšou medzi svetovými IT konzultantmi. Reuters odhaduje, že najväčšie sú IBM, Accenture, Cap Gemini, Tata Consultancy a Infosys.
„Logica je popredná spoločnosť poskytujúca obchodné a technologické služby s oddanými profesionálmi a dôveryhodnými klientmi s dlhodobými zmluvami,“ povedal prezident a generálny riaditeľ CGI Michael Roach. „Sme presvedčení, že robíme správnu vec, kupujeme Logicu, za ktorú ju kupujeme. správnu cenu a v správnom čase vytvoriť jedného z mála najväčších nezávislých poskytovateľov integrovaných technologických služieb.“
Predstavenstvo CGI dohodu jednomyseľne schválilo. Dokončenie je naplánované do septembra 2012 po získaní súhlasu akcionárov a po štandardných postupoch. Proces integrácie spoločností sa plánuje ukončiť do 3 rokov
Elektronický obchod v zrozumiteľnej ruštine. Ako funguje podnikanie na internete?
V poslednej dobe sa objavuje čoraz viac projektov súvisiacich s online obchodom. Pri štúdiu tohto smeru som nenašiel všeobecný a zrozumiteľný popis procesu. Preto som sa rozhodol urobiť niečo ako cheat sheet, na ktorý sa môžete vždy odvolať, aby ste pochopili postup v takej oblasti, ako je elektronický obchod.
Okamžite urobím rezerváciu, pri ktorej som sa zameral na procesy a kanály, ktoré pomáhajú priviesť zákazníkov.
Elektronický obchod: o čo ide?
Definície z rôznych zdrojov hovoria niečo o predaji tovaru alebo služieb cez internet. Jednoducho povedané elektronický obchod je akákoľvek online aktivita, pri ktorej sa objavujú peniaze.
Nakupovanie, predaj, poistenie, bankovníctvo, elektronické peniaze, všetko je tu. Vezmite to, podpíšte to.
Od cieľa
Aby som pochopil problém, navrhujem začať cestu od úplného konca. Čo je cieľom každého podnikania? Správne, zarábajte peniaze. Predstavte si teda akýkoľvek produkt, napríklad silikónové ponožky. Prečo nie!
Vzal som prvú vec, ktorá ma napadla, ukázalo sa, že je to toto ...
Našou úlohou je na týchto ponožkách zarobiť. Myslíme na internet. Hmm...prečo „nezrežúť“ stránku a takto pôjde predaj, len si ponechaj Maledivy! Nie všetko je však také jednoduché.
Veľmi rada kreslím. Pomáha pochopiť rôzne procesy. Poďme kresliť?!
Náš model zatiaľ vyzerá takto. Vezmeme ponožky, dáme ich na internet a dostaneme peniaze. Je to jednoducho skvelé! Oči horia, dlane sa potia a už sa chcem venovať tomuto biznisu. Potrebujete však vytvoriť webovú stránku alebo platformu na predaj?
Webová stránka alebo platforma na predaj
Existujú rôzne riešenia na umiestnenie vášho produktu na World Wide Web. Môžete si vytvoriť vlastnú webovú stránku alebo použiť stránky tretích strán (skupiny, stránky v sociálnych sieťach, nástenky atď.). Zastavme sa na mieste.
Objednali si webovú stránku, vzali hotovú šablónu alebo si ju vytvorili sami pomocou konštruktora (CMS sa dá vygoogliť), na tom nezáleží. Ďalej umiestnil zväzok silikónových ponožiek odlišné typy a šťastný.
Prepáčte, že som prerušil čítanie. Pripojte sa k môjmu telegramovému kanálu. Čerstvé oznámenia článkov, vývoj digitálnych produktov a rastový hack, všetko je tam. Čakám na teba! Pokračujeme...
Platobné systémy
Ale aby u vás mohol človek nakúpiť tu a teraz, bude potrebné vyladiť platobné systémy. Ide o druh služby, ktorá vám umožňuje nakupovať online prostredníctvom: bankových kariet, internetových peňazí, Mobilné telefóny a ešte celá kopa. Na to budete musieť zdieľať percento transakcií, ale týmto spôsobom si výrazne zjednodušíte život.
Vyberte si službu, ktorá vám vyhovuje. Niekde bude vyššie percento a niekde predplatiteľ alebo niečo iné. Stačí trochu preskúmať otázku. Vložte si potrebný kód na stránku, prepojte všetky transakcie so svojím kartovým účtom a voila!
To by sa zdalo byť všetko. Existuje webová stránka, produktové karty a dokonca aj tlačidlo „kúpiť“ funguje, ale niečo tomu chýba... Neexistuje žiadny tok zákazníkov, ktorí budú nakupovať.
Zákaznícke toky
Kde: CAC = náklady na akvizíciu nového zákazníka. MKC (náklady na marketingové kampane) = celkové náklady vynaložené na marketing na získanie (ale nie udržanie) zákazníkov. W (mzdy) = Plat pre obchodníkov a manažérov predaja. S (softvér) = Náklady na softvér používaný v reklame a predaji (napr. predajná platforma, automatizácia marketingu, A/B testovanie, analytické služby atď.). PS (professionalservices) = náklady na odborné služby poskytované marketingovým a obchodným oddeleniam (návrh, poradenstvo atď.). O (ostatné) = Ostatné režijné náklady súvisiace s marketingovými a obchodnými oddeleniami. CA (customersacquired) = Celkový počet získaných zákazníkov.
Netreba ale zabúdať na kvalitu klienta, tu pomôže LTV.
Dôležité ukazovatele: LTV
Hodnota živého času, životný cyklus zákazník, ďalšia metrika v elektronickom obchode, ktorú treba zvážiť. Ukazuje, aký príjem v priemere prináša jeden klient. Sú rôzne prístupy k výpočtu, ako jeden z najpresnejších som zvolil skutočný zisk.
Je to jednoducho súčet celkových výnosov z histórie nákupov pre každého jednotlivého zákazníka. K transakcii N pridajte súčet všetkých nákupov (transakcií) zákazníkov, pričom transakcia N je posledný nákup, ktorý zákazník uskutočnil vo vašej spoločnosti. Ak máte prístup ku všetkým údajom o transakciách zákazníkov, môžete to jednoducho vypočítať pomocou Excelu.
LTV = (transakcia 1 + transakcia 2 + transakcia 3… + transakcia N) x podiel na zisku na výnosoch.
Výpočet LTV na základe čistého príjmu v konečnom dôsledku ukazuje skutočný zisk, ktorý klient prináša vašej spoločnosti. Tu sa berú do úvahy náklady na služby zákazníkom, náklady na udržanie, náklady na akvizíciu atď. Výsledkom je celý komplex výpočtov založených na jednotlivých údajoch. Kumulatívny zisk vytvorený jedným klientom v priebehu času vám poskytne presné pochopenie doterajšej ziskovosti vašich klientov.
Ďalšie prístupy možno nájsť na.
Dôležité metriky: pomer CAC k LTV
Pre pochopenie životaschopnosti podnikania je veľmi dôležité pozrieť sa na pomer dvoch spomínaných metrík CAC:LTV.
- Menej ako 1:1 – Smerujete k bankrotu.
- 1:1 - Pri každom prilákanom klientovi strácate peniaze.
- 1:2 – Znie to dobre, ale zdá sa, že neinvestujete dostatočne a mohli by ste rásť rýchlejšie. Spustite agresívnejšie kampane na získavanie zákazníkov a dosiahnite pomer takmer 1:3.
- 1:3 - Ideálny pomer. Máte prosperujúce podnikanie a silný obchodný model.
Dôležité ukazovatele: Nezabúda sa na ROI
Ako sme uviedli vyššie, v elektronickom obchode je potrebné jasne pochopiť, či je výhodné používať akvizičný kanál alebo nie. Okrem LTV a CAC je tu ešte jeden dôležitý ukazovateľ, ktorým je ROI. Ukazuje, či sa vám investícia vyplatila, v našom prípade do reklamy. Teda. koľko nám nakoniec priniesol 1 investovaný rubeľ.
Na výpočet sa používa veľmi jednoduchý vzorec:
Kde „Výnosy z kampane“ je rozdiel medzi výnosmi kanála a nákladmi na váš produkt. A na výpočet zisku odpočítajte ďalšie náklady na reklamu.
Podrobnejší vzorec by teda vyzeral takto:
NI = (výnosy kanála – náklady) – reklamné náklady / reklamné náklady x 100 %
Prečítajte si podrobnejší príklad s výpočtom. V skutočnosti je tento jednoduchý vzorec umiestnený celý v tej istej excelovej tabuľke, kde sa všetko vypočíta automaticky.
Všetky tri ukazovatele, ktoré sme analyzovali, sú dôležité v elektronickom obchode. Každý z nich vám umožňuje nájsť úzke miesta vo vašich streamoch a pracovať s nimi. Práve v nich sa skrýva potenciál rastu podniku. Náš model s ponožkami som pridala trochu viac.
Do jedného materiálu sa všetko vtesnať nedá a kto to bude tak dlho čítať? Neskôr urobím samostatnú príručku o nuansách elektronického obchodu, ktoré môžu narušiť predaj.
Celkom
Vo všeobecnosti máte teraz všeobecný prehľad o online obchodovaní alebo elektronickom obchode. Ďalej, ako sa hovorí: "Diabol je v detailoch." Študujte každý z kanálov samostatne, vypočítajte ukazovatele výkonnosti a hľadajte nové poznatky v detailoch. Internetový predaj pre vás, áno viac! A ešte jedna vec odo mňa.
Áno, skoro by som zabudol, šťastný nový rok vám, milí čitatelia! Želám vám budúci rok veľké víťazstvá a úspechy!