Rajoittamaton kaupankäynti cgi. Sähköinen kaupankäynti - mitä se on? E-Commerce Partners Network on suurimpien verkkokauppojen kumppaniohjelma. CGI:n asentaminen Macintoshiin

Sähköinen kaupankäynti selkeästi venäjäksi. Miten verkkokauppa toimii?

Viime aikoina verkkokauppaan liittyviä projekteja on tullut yhä enemmän. Tätä aluetta tutkiessani en löytänyt yleistä ja ymmärrettävää kuvausta prosessista. Siksi päätin tehdä jotain huijausarkin kaltaista, johon voit aina viitata ymmärtääksesi menettelyn sellaisella alueella kuin verkkokauppa.

Teen heti varauksen, että keskityin prosesseihin ja kanaviin, jotka auttavat tuomaan asiakkaita.

Sähköinen kaupankäynti: mistä on kyse?

Eri lähteistä saadut määritelmät kertovat jotakin tavaroiden tai palveluiden myynnistä Internetin kautta. Yksinkertaisesti sanottuna sähköinen kaupankäynti on mitä tahansa online-toimintaa, jossa näkyy rahaa.

Ostokset, myynti, vakuutukset, pankkipalvelut, sähköinen raha, kaikki on täällä. Ota se ja allekirjoita se.

Kohteesta

Ongelman ymmärtämiseksi ehdotan polun aloittamista aivan lopusta. Mikä on minkä tahansa yrityksen tavoite? Aivan oikein, tienaa rahaa. Joten kuvittele mikä tahansa tuote, esimerkiksi silikonisukat. Miksi ei!

Otin ensimmäisenä mieleeni tulevan asian, ja siinä kävi ilmi, että jotain tällaista...

Tehtävämme on ansaita rahaa näillä sukilla. Ajattelemme Internetiä. Hmm... miksi et rakentaisi verkkosivustoa ja niin myynti menee, pidä vain Malediivit! Mutta se ei ole niin yksinkertaista.

Pidän todella piirtämisestä. Tämä auttaa ymmärtämään erilaisia ​​prosesseja. Piirretään?!

Toistaiseksi mallimme näyttää tältä. Otamme sukat, laitamme ne Internetiin ja saamme rahaa. Tämä on yksinkertaisesti hienoa! Silmäsi palavat, kämmenet hikoilevat ja haluat jo ryhtyä hommiin. Mutta pitääkö sinun tehdä verkkosivusto tai myyntialusta?

Verkkosivusto tai alusta myytävänä

On olemassa erilaisia ​​ratkaisuja tuotteesi sijoittamiseen World Wide Webiin. Voit luoda oman verkkosivustosi tai käyttää kolmannen osapuolen alustoja (ryhmiä, sosiaalisten verkostojen sivuja, ilmoitustauluja jne.). Pysähdytään paikalle.

Tilasit verkkosivuston, otit valmiin mallipohjan tai loit sen itse verkkosivuston rakentajalla (voit googlettaa sisällönhallintajärjestelmää), sillä ei ole väliä. Sitten he laittoivat kasan erityyppisiä silikonisukkia ja olivat onnellisia.

Anteeksi, että keskeytin lukemisen. Liity telegram-kanavalleni. Tuoreet ilmoitukset artikkeleista, digitaalisten tuotteiden kehitys ja kasvuhakkerointi, kaikki on siellä. Odotan sinua! Jatketaan...

Maksujärjestelmät

Mutta jotta henkilö voi ostaa sinulta täällä ja nyt, sinun on säädettävä maksujärjestelmiä. Tämä on eräänlainen palvelu, jonka avulla voit tehdä ostoksia verkossa: pankkikortilla, Internet-rahalla, matkapuhelimilla ja joukolla muita asioita. Tätä varten sinun on jaettava prosenttiosuus tapahtumista, mutta tällä tavalla helpotat elämääsi paljon.

Valitse sinulle sopiva palvelu. Jossain prosenttiosuus on suurempi, ja jossain tulee tilaus tai jotain muuta. Tee vain vähän tutkimusta. Laita tarvittava koodi verkkosivullesi, linkitä kaikki tapahtumat korttitilillesi ja voila!

Siinä näyttäisi olevan kaikki. On nettisivut, tuotekortit myös, ja jopa "osta"-painike toimii, mutta jotain puuttuu... Ei ole asiakasvirtaa, joka ostaisi.

Asiakasvirrat

Missä: CAC = uuden asiakkaan hankintakustannukset. MCC (markkinointikampanjakulut) = asiakkaiden houkuttelemiseen (mutta ei heidän säilyttämiseen) tarkoitettujen markkinointikustannusten kokonaiskustannukset. W (palkat) = Markkinoijien ja myyntipäälliköiden palkka. S (ohjelmisto) = Mainonnassa ja myynnissä käytettävien ohjelmistojen kustannukset (esim. käytetty myyntialusta, markkinoinnin automaatio, A/B-testaus, analytiikkapalvelut jne.). PS (professionalservices) = Markkinointi- ja myyntiosastoille tarjottujen asiantuntijapalvelujen kustannukset (suunnittelu, konsultointi jne.). O (muut) = Muut markkinointi- ja myyntiosastoihin liittyvät yleiskulut. CA (customersacquired) = Houkuttujen asiakkaiden kokonaismäärä.

Mutta emme saa unohtaa asiakkaan laatua, LTV auttaa tässä.

Tärkeitä mittareita: elinkaariarvo

Live Time Value, asiakkaan elinkaari, on toinen verkkokaupan indikaattori, joka on otettava huomioon. Se näyttää kuinka paljon tuloja yksi asiakas keskimäärin tuo. Laskentamenetelmiä on erilaisia, valitsin varsinaisen voiton perusteella yhdeksi tarkimmista.

Tämä on yksinkertaisesti kunkin yksittäisen asiakkaan kokonaistulojen summa koko ostohistorian ajalta. Lisää kaikkien asiakkaan ostosten (tapahtumien) summa tapahtumaan N, jossa tapahtuma N on viimeinen ostos, jonka asiakas teki yritykseltäsi. Jos sinulla on pääsy kaikkiin asiakastapahtumatietoihin, voit laskea tämän helposti Excelillä.

LTV = (tapahtuma 1 + tapahtuma 2 + tapahtuma 3... + tapahtuma N) x voitto-osuus tuloista.

LTV:n laskeminen nettotulon perusteella näyttää lopulta asiakkaan yrityksellesi tuoman todellisen voiton. Tässä otetaan huomioon asiakaspalvelukustannukset, säilytyskustannukset, houkuttelevuuden kustannukset jne. Tuloksena on kokonaisuus yksittäisiin tietoihin perustuvia laskelmia. Asiakasta kohden ajan mittaan kertynyt kokonaisvoitto antaa sinulle tarkan käsityksen asiakkaidesi tähänastisesta kannattavuudesta.

Muita lähestymistapoja löytyy osoitteesta.

Tärkeitä indikaattoreita: CAC ja LTV suhde

Yrityksen elinkelpoisuuden ymmärtämiseksi on erittäin tärkeää tarkastella kahden mainitun CAC:LTV-suhteen suhdetta.

  • Alle 1:1 - Rynnät täydellä nopeudella kohti konkurssia.
  • 1:1 – Menetät rahaa jokaisesta houkutellusta asiakkaasta.
  • 1:2 – Näyttää hyvältä, mutta näyttää siltä, ​​että et sijoita tarpeeksi rahaa, ja voisit kehittyä nopeammin. Käynnistä aggressiivisempia asiakashankintakampanjoita ja saavuta lähellä 1:3:a.
  • 1:3 – Ihanteellinen suhde. Sinulla on menestyvä yritys ja vahva liiketoimintamalli.

Tärkeitä indikaattoreita: ROI älä unohda

Kuten yllä keskustelimme, sähköisessä kaupankäynnissä sinun on ymmärrettävä selvästi, onko hankintakanavan käyttö kannattavaa vai ei. LTV:n ja CAC:n lisäksi on toinen tärkeä indikaattori: ROI. Se osoittaa, onko sijoituksesi, meidän tapauksessamme mainontaan, kannattanut. Tuo on. kuinka paljon yksi sijoitettu rupla meille lopulta toi.

Laskennassa käytetään hyvin yksinkertaista kaavaa:

"Kampanjan tulot" on kanavan tulojen ja tuotteesi kustannusten välinen ero. Ja laskeaksesi voittoa, vähennä mainontakulut.

Tarkempi kaava näyttäisi siis tältä:

ROI = (Channel Revenue – Cost) – Mainoskulut / Mainoskulut x 100 %

Lue tarkempi esimerkki laskennalla. Itse asiassa tämä yksinkertainen kaava sijoitetaan samaan Excel-taulukkoon, jossa kaikki lasketaan automaattisesti.

Kaikki kolme keskustelemaamme indikaattoria ovat tärkeitä verkkokaupassa. Jokainen niistä antaa sinun löytää pullonkauloja virtauksistasi ja työskennellä niiden kanssa. Tässä piilee liiketoiminnan kasvupotentiaali. Lisäsin malliamme hieman lisää sukkien kanssa.

Kaikkea on mahdotonta sovittaa yhteen materiaaliin, ja kuka lukee sitä niin kauan? Myöhemmin teen erillisen oppaan sähköisen kaupankäynnin vivahteista, jotka voivat häiritä myyntiä.

Kaikki yhteensä

Kaiken kaikkiaan sinulla on nyt yleinen käsitys verkkokaupasta tai sähköisestä kaupankäynnistä. Lisäksi, kuten he sanovat: "Paholainen on yksityiskohdissa." Tutki jokaista kanavaa erikseen, laske suoritusindikaattorit ja etsi uusia oivalluksia pienistä asioista. Internet-myynti sinulle ja paljon muuta! Ja minulla on vielä yksi materiaali.

Kyllä, melkein unohdin, hyvää uutta vuotta, rakkaat lukijat! Toivotan sinulle mahtavia voittoja ja saavutuksia ensi vuodelle!

Andover, Massachusetts, 19. marraskuuta 2003

The Commerce Group, Inc. (NYSE: CGI), Massachusettsin suurin yksityisten henkilöautovakuutusten kirjoittaja ja CGI Group Inc. (CGI) (TSX: GIB.A; NYSE: GIB;), johtava tietotekniikan ja liiketoiminnan prosessointipalvelujen toimittaja, ilmoitti tänään allekirjoittaneensa kuuden vuoden liiketoimintaprosessien ulkoistamissopimuksen (BPO) uusimisen arvoltaan US$35 miljoonaa. CGI tarjoaa täydet vakuutusten käsittelypalvelut Massachusettsin yksityisille henkilö- ja kaupallisille autolinjoille sekä CGI:n CollaborativeEdge-toimistorajapintatyökalun, sovellustuen ja -ylläpidon, sääntelytuen, järjestelmäkonsultoinnin ja dokumenttien hallintapalvelut.

Gerald Fels, Commerce Groupin varatoimitusjohtaja ja talousjohtaja, totesi: "Massachusettsin johtavana yksityisten henkilöautojen toimittajana tavoitteemme on tarjota agenteillemme ja työntekijöillemme palveluita, jotka auttavat heitä suoriutumaan korkeimmalla tasollaan. Vuosien varrella olemme edistäneet vahvaa suhdetta CGI:n kanssa. Heidän järjestelmänsä on vankka ja tarkka, ja heidän tiiminsä tuntee hyvin sisäiset käsittelyjärjestelmämme. Se on meille tärkeää."

CGI:n vakuutusliiketoiminnan johtaja Serge LaPalme lisäsi: "Olemme erittäin iloisia voidessamme jatkaa yli 30 vuoden suhdetta Commerce Groupin kanssa. Commerce Group on edelleen yksi arvostetuista liikekumppaneistamme ja on strateginen menestyksemme. Autamme asiakkaitamme keskittymään edelleen ydinliiketoimintaansa hyödyntämällä uusia teknologioita silloin ja siellä missä se on järkevää. Tiimimme tuntee vakuutusalan ja valtion ainutlaatuisen sääntely-ympäristön läheisesti ja sen seurauksena nopeat mukauttaa olemassa olevia ratkaisuja tälle jatkuvasti kehittyvälle alalle."

Tietoja The Commerce Group, Inc.

Vakuutusalan holdingyhtiö Commerce Group, Inc.:n pääkonttori sijaitsee Websterissä, Massachusettsissa. Commerce Groupin omaisuus- ja tapaturmavakuutustytäryhtiöitä ovat The Commerce Insurance Company ja Citation Insurance Company Massachusettsissa, Commerce West Insurance Company Kaliforniassa ja American Commerce Insurance Company Ohiossa. Tytäryhtiöidensä kautta Commerce Group on sijoittunut 22. sijalle. maan suurin henkilöautovakuutuskonserni, A.M. Paras, perustuen vuoden 2002 suoramaksutietoihin.

Tietoja CGI:stä
Vuonna 1976 perustettu CGI on henkilöstömääränsä perusteella Pohjois-Amerikan viidenneksi suurin itsenäinen tietotekniikkapalveluyritys. CGI ja sen tytäryhtiöt työllistävät 20 000 ammattilaista. CGI:n vuotuinen liikevaihto on tällä hetkellä 2,8 miljardia CDN dollaria (1,9 miljardia dollaria), ja 30. syyskuuta 2003 CGI:n tilauskanta oli 12,3 miljardia CDN dollaria (9,1 miljardia dollaria). CGI tarjoaa päästä päähän IT- ja liiketoimintaprosessipalveluita asiakkaille kaikkialla maailmassa Kanadan, Yhdysvaltojen ja Euroopan toimistoista. CGI:n osakkeet on listattu TSX:ssä (GIB.A) ja NYSE:ssä (GIB) ja ne sisältyvät TSX 100 Composite -indeksiin sekä S&P/TSX Canadian Information Technology- ja Canadian MidCap -indekseihin.

2012: Brittiläisen Logican osto

Kesäkuussa 2012 CGI Group ilmoitti allekirjoittaneensa sopimuksen Euroopan suurimman järjestelmäintegraattorin Logican ostamisesta. Kaupan arvo on 2,8 miljardia Kanadan dollaria (2,7 miljardia dollaria). Osana saavutettuja sopimuksia CGI sitoutui myös ottamaan vastuulleen Logican 515 miljoonan Kanadan dollarin velan takaisinmaksun.

Kaupan rahoittamiseksi CGI aikoo kerätä miljardi Kanadan dollaria laskemalla liikkeeseen 46,7 miljoonaa osaketta, lainaamalla 2 miljardia Kanadan dollaria Canadian Imperial Bank of Commerce -pankilta, National Bank of Canadalta ja The Toronto-Dominion Bankilta sekä noin 650 miljoonaa kanadalaista. dollaria enemmän. dollaria - nykyisen luottorajan puitteissa.

Ehdotettu osakekohtainen hinta oli 59,8 % korkeampi kuin Logican päätöskurssi 30. toukokuuta 2012. Kauppa on noin 6,6 kertaa Logican tilikauden tulos ennen korkoja, veroja ja poistoja (EBITDA) 12 kuukauden jakso, joka päättyi 31. joulukuuta 2011

Logican hankinnan odotetaan kasvattavan CGI:n osakekohtaista tulosta 25–30 % ilman hankinta- ja integraatiokuluja. Yhdistymisen seurauksena tuloksena syntyvän yrityksen työvoima ja vuositulot ovat yli kaksinkertaiset CGI:n tuloihin verrattuna. Yhdistyneen yrityksen henkilöstön koko tulee olemaan noin 72 tuhatta työntekijää, jotka sijaitsevat toimistoissa 43 maassa, ja vuotuinen liikevaihto on noin 10,4 miljardia Kanadan dollaria (9,6 miljardia dollaria).

Uusi yritys tulee olemaan kuudenneksi suurin maailman IT-konsulttien joukossa. Suurimpia näistä ovat IBM, Accenture, Cap Gemini, Tata Consultancy ja Infosys Reutersin arvioiden mukaan.

"Logica on johtava yritys- ja teknologiapalveluyritys, jolla on omistautuneita ammattilaisia ​​ja luotettavia pitkäaikaisia ​​asiakkaita", sanoi CGI:n toimitusjohtaja Michael Roach. "Olemme varmoja, että teemme oikein." Ostamalla Logican ostamme sen. oikeaan hintaan ja oikeaan aikaan luodaksemme yhden harvoista suurimmista riippumattomista kokonaisvaltaisten teknologiapalvelujen tarjoajista."

CGI:n hallitus hyväksyi kaupan yksimielisesti. Se on suunniteltu valmistuvan syyskuuhun 2012 mennessä saatuaan osakkeenomistajien hyväksynnän ja noudattamalla vakiomenettelyjä. Yritysintegraatioprosessin on tarkoitus valmistua 3 vuoden kuluessa

World Wide Webin ansiosta lähes kuka tahansa voi tarjota tietoa verkossa silmää helpottavassa ja laajalti levitettävässä muodossa. Olet epäilemättä surffaillut Internetissä ja nähnyt muita sivustoja, ja nyt tiedät todennäköisesti, että pelottavat lyhenteet, kuten "HTTP" ja "HTML", ovat yksinkertaisesti lyhenne sanoista "Web" ja "tapa, jolla tiedot ilmaistaan ​​Internetissä". Sinulla saattaa jo olla kokemusta tiedon esittämisestä Internetissä.

Internet on osoittautunut ihanteelliseksi välineeksi tiedon jakamiseen, kuten sen valtava suosio ja laaja kehitys osoittavat. Vaikka jotkut ovat kyseenalaistaneet Internetin hyödyllisyyden ja pitäneet sen laajaa kehitystä ja suosiota pääasiassa tunkeilevan mainonnan ansioksi, Internet on kiistatta tärkeä väline kaikenlaisen tiedon esittämiselle. Saatavilla on monia palveluita ajantasaisten tietojen (uutiset, sää, suorat urheilutapahtumat) ja viitemateriaalin tarjoamiseen sähköisesti, mutta saatavilla on myös huomattavia määriä muun tyyppistä tietoa. IRS, joka jakoi kaikki vuoden 1995 veroilmoituslomakkeensa ja muut tiedot World Wide Webin kautta, myönsi äskettäin vastaanottaneensa fanipostia verkkosivustolleen. Kuka olisi uskonut, että veroviranomainen saa koskaan fanipostia? Tämä ei johtunut siitä, että hänen sivustonsa oli suunniteltu hyvin, vaan siitä, että se oli osoittautunut todella hyödylliseksi työkaluksi tuhansille, ehkä miljoonille ihmisille.

Mikä tekee verkosta ainutlaatuisen ja houkuttelevan tietopalvelun? Ensinnäkin se tarjoaa hypermediarajapinnan tiedoille. Ajattele tietokoneesi kiintolevyä. Tyypillisesti tiedot ilmaistaan ​​lineaarisesti, kuten tiedostojärjestelmä. Sinulla on esimerkiksi useita kansioita, ja jokaisen kansion sisällä on joko asiakirjoja tai muita kansioita. Verkko käyttää erilaista paradigmaa ilmaisemaan tietoa, jota kutsutaan hypermediaksi. Hypertekstiliittymä koostuu asiakirjasta ja linkeistä. Linkit ovat sanoja, joita napsautetaan nähdäksesi muita asiakirjoja tai löytääksesi muuntyyppisiä tietoja. Web laajentaa hypertekstin käsitteen kattamaan muun tyyppiset mediat, kuten grafiikat, äänet, videot (siis nimi "hypermedia"). Kun valitset asiakirjasta tekstin tai grafiikan, voit nähdä valitun kohteen liittyviä tietoja useissa eri muodoissa.

Melkein kaikki voivat hyötyä tästä yksinkertaisesta ja ainutlaatuisesta tavasta esittää ja jakaa tietoa, aina tutkijoista, jotka haluavat käyttää tietoja välittömästi kollegoidensa kanssa, liikemiehiin, jotka jakavat tietoja yrityksestään kaikkien kanssa. Vaikka tiedon antaminen on kuitenkin erittäin tärkeää, viime vuosina monet ovat kokeneet tiedon vastaanottamisen olevan yhtä tärkeä prosessi.

Vaikka Web tarjoaa ainutlaatuisen hypermediarajapinnan tiedoille, on monia muita tehokkaita tapoja jakaa tietoa. Esimerkiksi verkkopalvelut, kuten File Transfer Protocol (FTP) ja Gopher-uutisryhmä, olivat olemassa kauan ennen World Wide Webiä. Sähköposti on ollut ensisijainen viestintä- ja tiedonvaihtoväline Internetissä ja useimmissa muissa verkoissa lähes näiden verkkojen alusta lähtien. Miksi Internetistä on tullut niin suosittu tapa jakaa tietoa? Internetin multimedianäkökulma on vaikuttanut merkittävästi sen ennennäkemättömään menestykseen, mutta jotta Internet olisi tehokkain, sen on oltava interaktiivinen.

Ilman kykyä vastaanottaa käyttäjän syötteitä ja tarjota tietoa Web olisi täysin staattinen ympäristö. Tiedot olisivat saatavilla vain kirjoittajan määrittelemässä muodossa. Tämä heikentäisi yhtä laskennan kykyä yleensä: interaktiivista tietoa. Esimerkiksi sen sijaan, että käyttäjä pakottaisi katsomaan useita asiakirjoja ikään kuin hän selailisi kirjaa tai sanakirjaa, olisi parempi antaa käyttäjän tunnistaa avainsanat kiinnostavasta aiheesta. Käyttäjät voivat muokata tietojen esitystapaa sen sijaan, että luottaisivat sisällöntuottajan määrittelemään jäykkään rakenteeseen.

Termi "Web-palvelin" voi olla harhaanjohtava, koska se voi viitata sekä fyysiseen koneeseen että ohjelmistoon, jota se käyttää kommunikoimaan Internet-selaimien kanssa. Kun selain pyytää tiettyä Web-osoitetta, se muodostaa ensin yhteyden laitteeseen Internetin kautta ja lähettää Web-palvelinohjelmistolle asiakirjapyynnön. Tämä ohjelmisto toimii jatkuvasti, odottaa tällaisten pyyntöjen saapumista ja vastaa niihin.

Vaikka palvelimet voivat lähettää ja vastaanottaa dataa, itse palvelimella on rajoitettu toiminnallisuus. Esimerkiksi alkeellisin palvelin voi lähettää vain vaaditun tiedoston selaimeen. Palvelin ei yleensä tiedä mitä tehdä tällä tai toisella lisätulolla. Jos Internet-palveluntarjoaja ei kerro palvelimelle, kuinka näitä lisätietoja tulee käsitellä, palvelin todennäköisesti jättää syötteen huomioimatta.

Jotta palvelin voi suorittaa muitakin toimintoja kuin etsiä ja lähettää tiedostoja Internet-selaimeen, sinun on osattava laajentaa palvelimen toimintoja. Esimerkiksi Web-palvelin ei voi etsiä tietokannasta käyttäjän syöttämän avainsanan perusteella ja palauttaa useita vastaavia asiakirjoja, ellei tällaista ominaisuutta ole ohjelmoitu palvelimeen jollakin tavalla.

Mikä on CGI?

Common Gateway Interface (CGI) on palvelinliittymä, jonka avulla voit laajentaa palvelimen toimintoja. CGI:n avulla voit olla vuorovaikutuksessa käyttäjien kanssa, jotka käyttävät sivustoasi. Teoreettisella tasolla CGI antaa palvelimelle mahdollisuuden jäsentää (tulkkia) selaimen syötettä ja palauttaa tietoja käyttäjän syötteen perusteella. Käytännön tasolla CGI on käyttöliittymä, jonka avulla ohjelmoija voi kirjoittaa ohjelmia, jotka kommunikoivat helposti palvelimen kanssa.

Yleensä palvelimen ominaisuuksien laajentamiseksi sinun on muokattava palvelinta itse. Tämä ratkaisu ei ole toivottava, koska se vaatii Internet-protokollan verkkoohjelmoinnin alemman kerroksen ymmärtämistä. Tämä vaatisi myös palvelimen lähdekoodin muokkaamista ja kääntämistä tai mukautetun palvelimen kirjoittamista jokaista tehtävää varten. Oletetaan, että haluat laajentaa palvelimen ominaisuuksia niin, että se toimii Web-to-e-mail -yhdyskäytävänä, joka ottaa käyttäjän syöttämät tiedot selaimesta ja lähettää ne sähköpostitse toiselle käyttäjälle. Palvelimen on lisättävä koodi jäsentääkseen syötteen selaimesta, välittääkseen sen sähköpostitse toiselle käyttäjälle ja lähettääkseen vastauksen takaisin selaimeen verkkoyhteyden kautta.

Ensinnäkin tällainen tehtävä vaatii pääsyn palvelinkoodiin, mikä ei aina ole mahdollista.

Toiseksi se on vaikeaa ja vaatii laajaa teknistä tietämystä.

Kolmanneksi tämä koskee vain tiettyä palvelinta. Jos sinun on siirrettävä palvelimesi toiselle alustalle, sinun on suoritettava tai ainakin vietettävä paljon aikaa koodin siirtämiseen kyseiselle alustalle.

Miksi CGI?

CGI tarjoaa kannettavan ja yksinkertaisen ratkaisun näihin ongelmiin. CGI-protokolla määrittää standardin tavan ohjelmille kommunikoida Web-palvelimen kanssa. Ilman erityisosaamista voit kirjoittaa ohjelman millä tahansa konekielellä, joka on rajapinta ja kommunikoi Web-palvelimen kanssa. Tämä ohjelma toimii kaikkien Web-palvelimien kanssa, jotka ymmärtävät CGI-protokollan.

CGI-viestintä tapahtuu vakiotulon ja -lähdön avulla, mikä tarkoittaa, että jos osaat tulostaa ja lukea tietoja ohjelmointikielelläsi, voit kirjoittaa Web-palvelinsovelluksen. Tulon ja lähdön jäsentämisen lisäksi CGI-sovellusten ohjelmointi vastaa lähes minkä tahansa muun sovelluksen ohjelmointia. Esimerkiksi "Hei, maailma!" -ohjelman ohjelmoimiseksi käytät kielesi tulostustoimintoja ja CGI-ohjelmille määritettyä muotoa oikean viestin tulostamiseen.

Ohjelmointikielen valinta

Koska CGI on universaali käyttöliittymä, et ole rajoitettu mihinkään tiettyyn konekieleen. Tärkeä usein kysytty kysymys on: mitä ohjelmointikieliä voidaan käyttää CGI-ohjelmointiin? Voit käyttää mitä tahansa kieltä, jolla voit tehdä seuraavat:

  • Tulosta vakiotulostukseen
  • Lue vakiosyötteestä
  • Lue muuttuvista tiloista

Melkein kaikki ohjelmointikielet ja monet skriptikielet tekevät nämä kolme asiaa, ja voit käyttää mitä tahansa niistä.

Kielet kuuluvat johonkin seuraavista kahdesta luokasta: käännetyt ja tulkitut. Käännetty kieli, kuten C tai C++, on yleensä pienempi ja nopeampi, kun taas tulkitut kielet, kuten Perl tai Rexx, vaativat joskus suuren tulkin lataamisen käynnistyksen yhteydessä. Lisäksi voit jakaa binäärikoodeja (konekielelle muuntuvaa koodia) ilman lähdekoodia, jos kielesi on käännettävä. Tulkittavien skriptien jakaminen tarkoittaa yleensä lähdekoodin jakamista.

Ennen kuin valitset kielen, sinun on ensin harkittava prioriteettejasi. Sinun on punnittava yhden ohjelmointikielen nopeuden ja tehokkuuden etuja toisen ohjelmoinnin helppouteen verrattuna. Jos haluat oppia toista kieltä, sen sijaan, että käyttäisit jo osaamaasi kieltä, punnita huolellisesti molempien kielten edut ja haitat.

Kaksi yleisimmin käytettyä CGI-ohjelmointikieltä ovat C ja Perl (molempia käsitellään tässä kirjassa). Molemmilla on selkeät edut ja haitat. Perl on erittäin korkeatasoinen kieli ja samalla tehokas kieli, joka sopii erityisesti tekstin jäsentämiseen. Vaikka sen helppokäyttöisyys, joustavuus ja teho tekevät siitä houkuttelevan kielen CGI-ohjelmointiin, sen suhteellisen suuri koko ja hitaampi toiminta tekevät siitä joskus sopimattoman joihinkin sovelluksiin. C-ohjelmat ovat pienempiä, tehokkaampia ja tarjoavat alemman tason järjestelmän hallinnan, mutta niitä on monimutkaisempi ohjelmoida, niissä ei ole kevyitä sisäänrakennettuja tekstinkäsittelyrutiineja ja niitä on vaikeampi korjata.

Mikä kieli sopii parhaiten CGI-ohjelmointiin? Se, jota pidät ohjelmoinnin kannalta kätevämpänä. Molemmat ovat yhtä tehokkaita CGI-sovellusten ohjelmointiin, ja oikeilla kirjastoilla molemmilla on samanlaiset ominaisuudet. Jos sinulla on kuitenkin vaikeasti tavoitettavissa oleva palvelin, voit käyttää pienempiä, käännettyjä C-ohjelmia. Jos haluat kirjoittaa nopeasti paljon tekstinkäsittelytyötä vaativan sovelluksen, voit käyttää sen sijaan Perliä.

Varoitukset

CGI-sovelluksille on olemassa joitakin tärkeitä vaihtoehtoja. Monet palvelimet sisältävät nyt API-ohjelmoinnin, mikä helpottaa suorien palvelinlaajennusten ohjelmointia itsenäisten CGI-sovellusten sijaan. API-palvelimet ovat yleensä tehokkaampia kuin CGI-ohjelmat. Muissa palvelimissa on sisäänrakennettuja toimintoja, jotka voivat käsitellä erityisiä ei-CGI-elementtejä, kuten tietokantalinkityksiä. Lopuksi, joitain sovelluksia voidaan käsitellä joillakin uusilla asiakaspuolen (eikä palvelinpuolen) tekniikoilla, kuten Java. Vanhentuuko CGI nopeasti näin nopeiden tekniikan muutosten myötä?

Tuskin. CGI:llä on useita etuja uudempiin teknologioihin verrattuna.

  • Se on monipuolinen ja kannettava. Voit kirjoittaa CGI-sovelluksen lähes millä tahansa ohjelmointikielellä millä tahansa alustalla. Jotkut vaihtoehdot, kuten palvelimen API, rajoittavat sinut tiettyihin kieliin ja ovat paljon vaikeampia oppia.
  • On epätodennäköistä, että asiakaspuolen teknologiat, kuten Java, korvaavat CGI:n, koska on joitain sovelluksia, joiden suorittamiseen palvelinpuolen sovellukset sopivat paljon paremmin.
  • Monet CGI:n rajoituksista ovat HTML:n tai HTTP:n rajoituksia. Internet-standardien yleistyessä kehittyvät myös CGI-ominaisuudet.

Yhteenveto

Common Gateway Interface on protokolla, jonka avulla ohjelmat ovat vuorovaikutuksessa Web-palvelimien kanssa. CGI:n monipuolisuus antaa ohjelmoijille mahdollisuuden kirjoittaa yhdyskäytäväohjelmia melkein millä tahansa kielellä, vaikka eri kieliin liittyy monia kompromisseja. Ilman tätä kykyä vuorovaikutteisten Web-sivujen luominen olisi vaikeaa, parhaimmillaankin palvelinmuutoksia vaatisi, ja vuorovaikutteisuus ei olisi useimpien käyttäjien saatavilla, jotka eivät ole sivuston ylläpitäjiä.

Luku 2: Perusteet

Useita vuosia sitten loin sivun eräälle Harvardin yliopistolle, jonne ihmiset voivat kommentoida niitä. Internet oli tuolloin nuori ja dokumentaatio oli niukkaa. Minä, kuten monet muutkin, luotin muiden luomiin lyhyisiin dokumentaatioihin ja ohjelmointijärjestelmiin opettaakseni itselleni CGI-ohjelmoinnin. Vaikka tämä tutkimusmenetelmä vaati jonkin verran etsintää, monia kokeiluja ja aiheutti monia kysymyksiä, se oli erittäin tehokas. Tämä luku on tulosta varhaisesta työstäni CGI:n kanssa (tietenkin muutamalla säädöllä).

Vaikka yhteisen yhdyskäytävän käyttöliittymän täydellinen ymmärtäminen ja hallitseminen kestää jonkin aikaa, itse protokolla on melko yksinkertainen. Jokainen, jolla on perusohjelmointitaitoja ja joka tuntee Webin, voi nopeasti oppia ohjelmoimaan melko monimutkaisia ​​CGI-sovelluksia aivan kuten minä ja muut opimme tekemään useita vuosia sitten.

Tämän luvun tarkoituksena on esittää CGI:n perusteet kattavasti, vaikkakin tiivistetyllä tavalla. Jokainen tässä käsitelty käsite esitellään yksityiskohtaisesti seuraavissa luvuissa. Tämän luvun suorittamisen jälkeen voit kuitenkin aloittaa CGI-sovellusten ohjelmoinnin välittömästi. Kun saavutat tämän tason, voit oppia CGI:n hienouksia joko lukemalla tämän kirjan loppuosan tai yksinkertaisesti kokeilemalla itse.

Voit tiivistää CGI-ohjelmoinnin kahteen tehtävään: tiedon vastaanottamiseen Web-selaimesta ja tietojen lähettämiseen takaisin selaimeen. Tämä tehdään melko intuitiivisesti, kun olet perehtynyt CGI-sovellusten normaaliin käyttöön. Usein käyttäjää pyydetään täyttämään jokin lomake, esimerkiksi lisäämään nimensä. Kun käyttäjä täyttää lomakkeen ja painaa Enter, nämä tiedot lähetetään CGI-ohjelmaan. CGI-ohjelman on sitten muunnettava nämä tiedot joksikin ymmärtämästään, käsiteltävä ne vastaavasti ja lähetettävä ne sitten takaisin selaimeen, olipa se sitten yksinkertainen vahvistus tai monikäyttöisen tietokannan haun tulos.

Toisin sanoen CGI:n ohjelmointi vaatii ymmärrystä, kuinka vastaanotetaan syöte Internet-selaimelta ja kuinka tuloste lähetetään takaisin. Mitä tapahtuu CGI-ohjelman syöttö- ja lähtövaiheiden välillä, riippuu kehittäjän tavoitteesta. Huomaat, että CGI-ohjelmoinnin suurin vaikeus piilee tässä välivaiheessa; Kun opit työskentelemään syötteen ja lähdön kanssa, se riittää käytännössä CGI-kehittäjäksi.

Tässä luvussa opit CGI-syötön ja -tulosteen taustalla olevat periaatteet sekä muut perustaidot, joita tarvitset CGI:n kirjoittamiseen ja käyttämiseen, mukaan lukien asiat, kuten HTML-lomakkeiden luominen ja CGI-ohjelmien nimeäminen. Tämä luku kattaa seuraavat aiheet:

  • Perinteinen ohjelma "Hei, maailma!";
  • CGI-tulostus: Tietojen lähettäminen takaisin Internet-selaimessa näytettäväksi;
  • Sovelluksen määrittäminen, asentaminen ja suorittaminen. Opit eri Web-alustoista ja -palvelimista;
  • CGI-syöttö: Web-selaimen lähettämien tietojen tulkinta. Johdanto hyödyllisiin ohjelmointikirjastoihin tällaisen syötteen jäsentämiseen;
  • Yksinkertainen esimerkki: se kattaa kaikki tietyn luvun oppitunnit;
  • Ohjelmointistrategia.

Tämän luvun luonteesta johtuen käsittelen vain kevyesti joitakin aiheita. Älä huoli; Kaikkia näitä aiheita käsitellään paljon perusteellisemmin muissa luvuissa.

Hei maailma!

Aloitat perinteisellä ohjelmointiongelmalla. Kirjoitat ohjelman, joka näyttää "Hei, maailma!" Web-selaimessasi. Ennen kuin kirjoitat tämän ohjelman, sinun on ymmärrettävä, mitä tietoja Web-selain odottaa saavansa CGI-ohjelmilta. Sinun on myös osattava ajaa tätä ohjelmaa, jotta voit nähdä sen toiminnassa.

CGI on kieliriippumaton, joten voit toteuttaa tämän ohjelman millä tahansa kielellä. Tässä käytetään useita eri kieliä osoittamaan kunkin kielen riippumattomuutta. Perlissä "Hei, maailma!" -ohjelma näkyy listauksessa 2.1.

Listaus 2.1. Hei maailma! Perlissä. #!/usr/local/bin/perl # Hello.cgi - Ensimmäinen CGI-ohjelmatulostukseni "Content-Type: text/html\n\n"; Tulosta " \n"; tulosta" Hei maailma!"; Tulosta "\n"; tulosta" \n"; tulosta"

Hei maailma!

\n"; tulosta"

\n";

Tallenna tämä ohjelma nimellä hello.cgi ja asenna se oikeaan paikkaan. (Jos et ole varma, missä se on, älä huoli; löydät sen myöhemmin tämän luvun kohdasta "CGI-ohjelman asentaminen ja suorittaminen".) Useimmille palvelimille tarvitsemasi hakemisto on cgi-bin . Soita nyt ohjelma verkkoselaimestasi. Useimmille tämä tarkoittaa seuraavan yhtenäisen resurssipaikantimen (URL) avaamista:

http://hostname/directoryname/hello.cgi

Isäntänimi on Web-palvelimesi nimi ja hakemistonimi on hakemisto, johon sijoitat hello.cgi (todennäköisesti cgi-bin).

Halkaisu hello.cgi

Hello.cgi:ssä on muutamia huomioitavia asioita.

Ensinnäkin käytät yksinkertaisia ​​tulostuskomentoja. CGI-ohjelmat eivät vaadi erityisiä tiedostokuvauksia tai tulosteen kuvauksia. Voit lähettää tulosteen selaimeen tulostamalla stdout-tiedostoon.

Toiseksi, huomaa, että ensimmäisen tulostuksen sisältö (Content-Type: text/html) ei näy verkkoselaimessasi. Voit lähettää takaisin selaimeen mitä tahansa tietoja (HTML-sivu, grafiikka tai ääni), mutta ensin sinun on kerrottava selaimelle, millaista dataa olet lähettämässä. Tämä rivi kertoo selaimelle, millaista tietoa se odottaa - tässä tapauksessa HTML-sivun.

Kolmanneksi ohjelman nimi on hello.cgi. Sinun ei aina tarvitse käyttää .cgi-laajennusta CGI-ohjelmasi nimen kanssa. Vaikka monien kielten lähdekoodissa käytetään myös .cgi-tunnistetta, sitä ei käytetä kielityypin ilmoittamiseen, vaan se on tapa, jolla palvelin tunnistaa tiedoston suoritettavaksi tiedostoksi grafiikkatiedoston, HTML-tiedoston tai HTML-tiedoston sijaan. tekstitiedosto. Palvelimet on usein määritetty yrittämään suorittaa vain ne tiedostot, joissa on tämä laajennus, jolloin kaikkien muiden tiedostojen sisältö näytetään. Vaikka .cgi-tunnisteen käyttäminen ei ole pakollista, sitä pidetään silti hyvänä käytäntönä.

Yleisesti ottaen hello.cgi koostuu kahdesta pääosasta:

  • kertoo selaimelle, mitä tietoja odottaa (sisältötyyppi: text/html)
  • kertoo selaimelle, mitä näyttää (Hei, maailma!)

Hei maailma! in C

CGI-ohjelmien kieliriippumattomuuden osoittamiseksi luettelo 2.2 näyttää C-kielellä kirjoitetun hello.cgi-ohjelman vastineen.

Listaus 2.2. Hei maailma! C. /* hello.cgi.c - Hello, World CGI */ #include int main() ( printf("Sisältötyyppi: text/html\r\n\r\n"); printf(" \n"); printf(" Hei maailma!\n"); printf("\n"); printf(" \n"); printf("

Hei maailma!

\n"); printf("

\n");)

Huomautus

Huomaa, että hello.cgi:n Perl-versio käyttää Content-Type-tulostusta ": text/html\n\n "; Vaikka versio C käyttää Printf("Content-Type: text/html\r\n\r\n");

Miksi Perl tulostaa operaattorin kahteen rivinvaihtoon (\n), kun taas C printf päättyy kahteen rivinvaihtoon ja rivinvaihtoon (\r\n)?

Teknisesti otsikot (kaikki tulosteet ennen tyhjää riviä) odotetaan erotettavaksi rivinvaihdolla ja rivinvaihdolla. Valitettavasti DOS- ja Windows-koneissa Perl kääntää \r:n toiseksi rivinvaihdoksi eikä rivinvaihtoksi.

Vaikka Perlin poikkeus on teknisesti virheellinen, se toimii lähes kaikissa protokollissa ja on yhtä kannettava kaikilla alustoilla. Siksi kaikissa tämän kirjan Perl-esimerkeissä käytän rivinvaihdon erottavia otsikoita rivinvaihdon ja rivinvaihdon sijaan.

Sopiva ratkaisu tähän ongelmaan on esitetty luvussa 4, Johtopäätös.

Web-palvelin tai selain eivät välitä siitä, millä kielellä ohjelma kirjoitetaan. Vaikka jokaisella kielellä on etuja ja haittoja CGI-ohjelmointikielenä, on parasta käyttää kieltä, jonka kanssa työskentelet mieluiten. (Ohjelmointikielen valintaa käsitellään tarkemmin luvussa 1, “Yleinen yhdyskäytäväliitäntä (CGI)”).

CGI-renderöinti

Nyt voit tarkastella lähemmin kysymystä tietojen lähettämisestä verkkoselaimeen. "Hei, maailma!" -esimerkistä näet, että verkkoselaimet odottavat kahta tietojoukkoa: otsikkoa, joka sisältää tietoja, kuten mitä tietoja näytetään (esim. Content-Type: rivi) ja todellista tietoa (mitä verkkoselain näytöt). Nämä kaksi tietoa on erotettu tyhjällä rivillä.

Otsikkoa kutsutaan HTTP-otsikoksi. Se antaa tärkeitä tietoja tiedoista, joita selain aikoo vastaanottaa. HTTP-otsikoita on useita erilaisia, ja yleisin on aiemmin käyttämäsi otsikko: Content-Type: header. Voit käyttää erilaisia ​​HTTP-otsikoiden yhdistelmiä, jotka erotetaan rivinvaihdolla ja rivinvaihdolla (\r\n). Otsikon tiedoista erottava tyhjä rivi koostuu myös rivinvaihdosta ja rivinvaihdosta (miksi molempia tarvitaan, käsitellään lyhyesti edellisessä huomautuksessa ja tarkemmin luvussa 4). Opit muista HTTP-otsikoista luvussa 4; Tällä hetkellä käsittelet Content-Type: otsikkoa.

Content-Type: Otsikko kuvaa CGI:n palauttamien tietojen tyyppiä. Tämän otsikon sopiva muoto on:

Sisältö-tyyppi: alatyyppi/tyyppi

Jos alatyyppi/tyyppi on oikea Multipurpose Internet Mail Extensions (MIME) -tyyppi. Yleisin MIME-tyyppi on HTML-tyyppi: text/html. Taulukossa 2.1 on lueteltu muutama yleisempi MIME-tyyppi, joista keskustellaan; Täydellisempi MIME-tyyppien luettelo ja analyysi on luvussa 4.

Huomautus

MIME keksittiin alun perin kuvaamaan sähköpostiviestien sisältöä. Siitä on tullut melko yleinen tapa esittää sisältötyyppisiä tietoja. Voit lukea lisää MIME:stä RFC1521:ssä. Internetin RFC:t ovat lyhenne sanoista Requests for Comments, jotka ovat tiivistelmiä päätöksistä, joita Internet-ryhmät yrittävät asettaa standardeja. Voit tarkastella RFC1521:n tuloksia seuraavassa osoitteessa: http://andrew2.andrew.cmu.edu/rfc/rfc1521.html

Taulukko 2.1. Joitakin yleisiä MIME-tyyppejä. MIME-tyyppi Kuvaus Text/html Hypertext Markup Language (HTML) Teksti/pelkkä tekstitiedostot Kuva/gif Grafiikkatiedostot GIF Kuva/jpeg Pakatut grafiikkatiedostot JPEG Audio/perusäänitiedostot Sun *.au Audio/x-wav Windows-tiedostot *. wav

Otsikon ja tyhjän rivin jälkeen tulostat tiedot tarvitsemassasi muodossa. Jos lähetät HTML-koodia, tulosta HTML-tunnisteet ja tiedot stdout-tiedostoon otsikon jälkeen. Voit myös lähettää grafiikkaa, ääntä ja muita binääritiedostoja yksinkertaisesti tulostamalla tiedoston sisällön stdoutiin. Tästä on useita esimerkkejä luvussa 4.

CGI-ohjelman asentaminen ja suorittaminen

Tämä osio poikkeaa jonkin verran CGI-ohjelmoinnista ja puhuu Web-palvelimen määrittämisestä käyttämään CGI:tä, ohjelmien asentamisesta ja suorittamisesta. Tulet tutustumaan eri palvelimiin eri alustoille enemmän tai vähemmän yksityiskohtaisesti, mutta sinun on kaivettava palvelimesi dokumentaatiota syvemmälle löytääksesi parhaan vaihtoehdon.

Kaikki palvelimet vaativat tilaa palvelintiedostoille ja tilaa HTML-dokumenteille. Tässä kirjassa palvelinalueen nimi on ServerRoot ja dokumenttialueen nimi DocumentRoot. UNIX-koneissa ServerRoot on yleensä hakemistossa /usr/local/etc/httpd/ ja DocumentRoot on yleensä hakemistossa /usr/local/etc/httpd/htdocs/. Tämä ei kuitenkaan vaikuta järjestelmääsi, joten vaihda kaikki viittaukset ServerRoot- ja DocumentRoot-tiedostoihin omalla ServerRoot- ja DocumentRoot-palvelimella.

Kun käytät tiedostoja verkkoselaimella, määrität tiedoston URL-osoitteessa suhteessa DocumentRootiin. Jos palvelimesi osoite on esimerkiksi mymachine.org, voit käyttää tätä tiedostoa seuraavalla URL-osoitteella: http://mymachine.org/index.html

Palvelimen määrittäminen CGI:tä varten

Useimmat Web-palvelimet on valmiiksi määritetty sallimaan CGI-ohjelmien käyttö. Tyypillisesti kaksi parametria osoittavat palvelimelle, onko tiedosto CGI-sovellus vai ei:

  • Nimetty hakemisto. Jotkin palvelimet antavat sinun määrittää, että kaikki määritetyn hakemiston tiedostot (jota kutsutaan yleensä oletuksena cgi-biniksi) ovat CGI-tiedostoja.
  • Tiedostonimien laajennukset. Monilla palvelimilla on tämä esimääritys, joka sallii kaikkien .cgi-päätteisten tiedostojen määrittämisen CGI:ksi.

Nimetty hakemistomenetelmä on jäänne menneisyydestä (ensimmäiset palvelimet käyttivät sitä ainoana menetelmänä määrittää, mitkä tiedostot olivat CGI-ohjelmia), mutta sillä on useita etuja.

  • Se pitää CGI-ohjelmat keskitettynä ja estää muita hakemistoja sotkeutumasta.
  • Et ole rajoittunut mihinkään tiettyyn tiedostopäätteeseen, joten voit nimetä tiedostosi miten haluat. Jotkut palvelimet mahdollistavat useiden eri hakemistojen määrittämisen CGI-hakemistoiksi.
  • Sen avulla voit myös hallita paremmin, kuka voi tallentaa CGI:tä. Jos sinulla on esimerkiksi palvelin ja tuet useiden käyttäjien järjestelmää, etkä halua heidän käyttävän omia CGI-komentosarjaansa tarkistamatta ensin ohjelmaa turvallisuussyistä, voit määrittää vain ne tiedostot rajoitetussa, keskitetyssä hakemistossa CGI:ksi. . Käyttäjien on sitten toimitettava sinulle CGI-ohjelmat asennettavaksi, ja voit ensin tarkastaa koodin varmistaaksesi, ettei ohjelmassa ole suuria tietoturvaongelmia.

CGI-merkintä tiedostotunnisteen kautta voi olla hyödyllinen joustavuuden vuoksi. Et ole rajoitettu yhteen CGI-ohjelmien hakemistoon. Useimmat palvelimet voidaan määrittää tunnistamaan CGI tiedostotunnisteen kautta, vaikka kaikki eivät ole oletuksena määritettyjä tällä tavalla.

Varoitus

Muista tietoturvaongelmien tärkeys, kun määrität palvelimesi CGI:tä varten. Tässä käsitellään joitain vinkkejä, ja luvussa 9, CGI:n suojaaminen, käsitellään näitä näkökohtia yksityiskohtaisemmin.

CGI:n asentaminen UNIX-palvelimiin

Riippumatta siitä, miten UNIX-palvelin on määritetty, sinun on suoritettava useita vaiheita varmistaaksesi, että CGI-sovelluksesi toimivat odotetulla tavalla. Web-palvelimesi toimii yleensä olemattomana käyttäjänä (eli UNIX-käyttäjänä ei kukaan – tili, jolla ei ole tiedostooikeuksia ja jota ei voida kirjautua sisään). CGI-skriptien (kirjoitettu Perlillä, Bourne-kuorella tai muulla komentosarjakielellä) on oltava suoritettavia ja luettavissa kaikkialla maailmassa.

Vihje

Voit tehdä tiedostoistasi maailmanlaajuisesti luettavia ja suoritettavia käyttämällä seuraavaa UNIX-käyttöoikeuskomentoa: chmod 755 filename.

Jos käytät komentosarjakieltä, kuten Perl tai Tcl, anna tulkin koko polku komentosarjasi ensimmäiselle riville. Esimerkiksi Perl-komentosarja, joka käyttää perliä hakemistossa /usr/local/bin, alkaisi seuraavalla rivillä:

#!/usr/local/bin/perl

Varoitus

Älä koskaan sijoita tulkkia (perl tai Tcl Wish -binaari) /cgi-bin hakemistoon. Tämä aiheuttaa tietoturvariskin järjestelmääsi. Tätä käsitellään tarkemmin luvussa 9.

Jotkut yleiset UNIX-palvelimet

NCSA- ja Apache-palvelimilla on samanlaiset määritystiedostot, koska Apache-palvelin perustui alun perin NCSA-koodiin. Oletusarvoisesti ne on määritetty niin, että mikä tahansa tiedosto cgi-bin-hakemistossa (sijaitsee oletuksena ServerRootissa) on CGI-ohjelma. Voit muuttaa cgi-bin-hakemiston sijaintia muokkaamalla conf/srm.conf-määritystiedostoa. Tämän hakemiston määritysmuoto on

ScriptAlias fakedirectoryname real directoryname

jossa fakedirectoryname on pseudohakemiston nimi (/cgi-bin) ja realdirectoryname on täydellinen polku, johon CGI-ohjelmat todella on tallennettu. Voit määrittää useamman kuin yhden ScriptAlias-rivejä lisäämällä.

Oletuskokoonpano riittää useimpien käyttäjien tarpeisiin. Sinun on muokattava srm.conf-tiedoston riviä molemmissa tapauksissa oikean hakemiston nimen määrittämiseksi. Jos esimerkiksi CGI-ohjelmasi sijaitsevat hakemistossa /usr/local/etc/httpd/cgi-bin, srm.conf-tiedoston ScriptAlias-rivin pitäisi olla jotain tällaista:

ScriptAlias/cgi-bin/ /usr/local/etc/httpd/cgi-bin/

Voit käyttää tässä hakemistossa olevia CGI-ohjelmia tai linkittää niihin käyttämällä seuraavaa URL-osoitetta:

Http://hostname/cgi-bin/ohjelmannimi

Jossa isäntänimi on Web-palvelimesi isännän nimi ja ohjelman nimi on CGI:n nimi.

Oletetaan esimerkiksi, että kopioit hello.cgi-ohjelman cgi-bin-hakemistoosi (esim. /usr/local/etc/httpd/cgi-bin) Web-palvelimellesi nimeltä www.company.com. Pääset CGI:hen käyttämällä seuraavaa URL-osoitetta: http://www.company.com/cgi-bin/hello.cgi

Jos haluat määrittää NCSA- tai Apache-palvelimesi tunnistamaan minkä tahansa .cgi-tunnisteisen tiedoston CGI:ksi, sinun on muokattava kahta asetustiedostoa. Poista ensin seuraavan rivin kommentit srm.conf-tiedostosta:

AddType-sovellus/x-httpd-cgi .cgi

Tämä yhdistää MIME-tyypin CGI:n .cgi-laajennukseen. Nyt meidän on muutettava access.conf-tiedostoa, jotta voimme suorittaa CGI:n missä tahansa hakemistossa. Voit tehdä tämän lisäämällä ExecCGI-vaihtoehdon Optio-riville. Se näyttää suunnilleen seuraavalta riviltä:

Vaihtoehtoindeksit FollowSymLinks ExecCGI

Nyt kaikki tiedostot, joiden tunniste on .cgi, katsotaan CGI:ksi. käyttää sitä samalla tavalla kuin mitä tahansa palvelimellasi olevaa tiedostoa.

CERN-palvelin on määritetty samalla tavalla kuin Apache- ja NCSA-palvelimet. ScriptAliasin sijaan CERN-palvelin käyttää Exec-komentoa. Esimerkiksi httpd.conf-tiedostossa näet seuraavan rivin:

Exec /cgi-bin/* /usr/local/etc/httpd/cgi-bin/*

Muut UNIX-palvelimet voidaan määrittää samalla tavalla; Tämä on kuvattu tarkemmin palvelimen dokumentaatiossa.

CGI:n asentaminen Windowsiin

Useimmat Windows 3.1-, Windows 95- ja Windows NT -käyttöjärjestelmille saatavilla olevat palvelimet on määritetty käyttämällä "tiedostonimen laajennus" -menetelmää CGI-tunnistukseen. Yleensä Windows-pohjaisen palvelimen kokoonpanon muuttaminen vaatii vain palvelimen määritysohjelman suorittamista ja tarvittavien muutosten tekemistä.

Joskus palvelimen määrittäminen suorittamaan komentosarja (kuten Perl) oikein voi olla vaikeaa. DOSissa tai Windowsissa et voi määrittää tulkkia komentosarjan ensimmäiselle riville, kuten UNIXissa. Joillakin palvelimilla on ennalta määritetty konfiguraatio tiettyjen tiedostonimien päätteiden liittämiseksi tulkkiin. Esimerkiksi monet Windowsin Web-palvelimet olettavat, että .pl-päätteiset tiedostot ovat Perl-komentosarjoja.

Jos palvelin ei suorita tämän tyyppistä tiedostojen yhdistämistä, voit määrittää pakettiohjelman, joka kutsuu sekä tulkin että komentosarjan. Kuten UNIX-palvelimessa, älä asenna tulkkia cgi-bin-hakemistoon tai mihinkään Web-hakemistoon.

CGI:n asentaminen Macintoshiin

Kaksi tunnetuinta Macintosh-palvelinvaihtoehtoa ovat WebStar StarNine ja sen edeltäjä MacHTTP. Molemmat tunnistavat CGI:n sen tiedostotunnisteen perusteella.

MacHTTP ymmärtää kahta eri laajennusta: .cgi ja .acgi, joka tarkoittaa asynkronista CGI:tä. Tavalliset Macintosh-tietokoneeseen asennetut CGI-ohjelmat (.cgi-laajennuksella) pitävät Web-palvelimen varattuna, kunnes CGI on käynnissä, jolloin palvelin keskeyttää kaikki muut pyynnöt. Asynkroninen CGI puolestaan ​​sallii palvelimen hyväksyä pyyntöjä, vaikka se on käynnissä.

CGI Macintosh -kehittäjän, joka käyttää mitä tahansa näistä Web-palvelimista, tulisi, jos mahdollista, käyttää vain .acgi-laajennusta .cgi-laajennuksen sijaan. Sen pitäisi toimia useimpien CGI-ohjelmien kanssa; jos se ei toimi, nimeä ohjelma uudelleen muotoon .cgi.

Suoritetaan CGI:tä

Kun olet asentanut CGI:n, voit suorittaa sen useilla tavoilla. Jos CGI-ohjelmasi on vain tulostusohjelma, kuten Hello,World!-ohjelma, voit suorittaa sen yksinkertaisesti käyttämällä sen URL-osoitetta.

Useimmat ohjelmat toimivat palvelinsovelluksena HTML-lomakkeella. Ennen kuin opit saamaan tietoa näistä lomakkeista, lue ensin lyhyt esittely tällaisten lomakkeiden luomisesta.

Nopea opetusohjelma HTML-lomakkeista

Kaksi tärkeintä tunnistetta HTML-muodossa ovat

Ja . Voit luoda useimpia HTML-lomakkeita käyttämällä vain näitä kahta tunnistetta. Tässä luvussa tutkit näitä tunnisteita ja pientä osajoukkoa mahdollisista tyypeistä tai määritteistä. . Täydellinen opas ja linkki HTML-lomakkeisiin on luvussa 3, HTML ja lomakkeet.

Tag

Tag käytetään määrittämään, mitä HTML-tiedoston osaa tulee käyttää käyttäjän syöttämille tiedoille. Tämä viittaa siihen, kuinka useimmat HTML-sivut kutsuvat CGI-ohjelmaa. Tag-attribuutit määrittävät ohjelman nimen ja sijainnin - joko paikallisesti tai täydellisenä URL-osoitteena, käytetyn koodaustyypin ja ohjelman käyttämän tiedonsiirtomenetelmän.

Seuraava rivi näyttää tunnisteen tekniset tiedot :

< ACTION FORM = "url" METHOD = ENCTYPE = "..." >

ENCTYPE-attribuutilla ei ole erityistä roolia, eikä sitä yleensä sisälly tunnisteeseen . Yksityiskohtaiset tiedot ENCTYPE-tunnisteesta on annettu luvussa 3. Yksi tapa käyttää ENCTYPE on esitetty luvussa 14, "Brändilaajennukset".

ACTION-attribuutti viittaa CGI-ohjelman URL-osoitteeseen. Kun käyttäjä täyttää lomakkeen ja antaa tiedot, kaikki tiedot koodataan ja siirretään CGI-ohjelmaan. CGI-ohjelma itse ratkaisee tiedon dekoodauksen ja käsittelyn ongelman; Tätä näkökohtaa käsitellään myöhemmin tässä luvussa kohdassa "Syötteiden hyväksyminen selaimesta".

Lopuksi METHOD-attribuutti kuvaa, kuinka CGI-ohjelman tulee vastaanottaa syöte. Nämä kaksi menetelmää, GET ja POST, eroavat toisistaan ​​siinä, miten ne välittävät tietoja CGI-ohjelmaan. Molempia käsitellään kohdassa "Syötteiden hyväksyminen selaimesta".

Jotta selain sallii käyttäjän syöttämisen, kaikki lomaketunnisteet ja tiedot on ympäröitävä tunnisteella . Älä unohda sulkevaa tagia

ilmaisemaan lomakkeen lopun. Lomakkeessa ei voi olla lomaketta, mutta voit määrittää lomakkeen, jonka avulla voit esittää tietoja eri paikoissa. Tätä näkökohtaa käsitellään laajasti luvussa 3.

Tag

Voit luoda tekstinsyöttöpalkkeja, valintapainikkeita, valintaruutuja ja muita tapoja hyväksyä syötettä käyttämällä tunnistetta . Tämä osio kattaa vain tekstinsyöttökentät. Käytä tagia tämän kentän toteuttamiseksi seuraavilla ominaisuuksilla:

< INPUT TYPE=text NAME = "... " VALUE = "... " SIZE = MAXLENGTH = >

NAME on symbolinen nimi muuttujalle, joka sisältää käyttäjän syöttämän arvon. Jos lisäät tekstiä attribuutissa VALUE, se sijoitetaan oletusarvoisesti tekstinsyöttökenttään. SIZE-määritteen avulla voit määrittää syöttökentän vaakasuuntaisen pituuden sellaisena kuin se näkyy selainikkunassa. Lopuksi MAXLENGTH määrittää merkkien enimmäismäärän, jonka käyttäjä voi syöttää kenttään. Huomaa, että määritteet VALUE, SIZE, MAXLENGTH ovat valinnaisia.

Lomakkeen lähetys

Jos lomakkeessa on vain yksi tekstikenttä, käyttäjä voi lähettää lomakkeen kirjoittamalla tiedot näppäimistöllä ja painamalla Enter. Muussa tapauksessa käyttäjällä on oltava jokin muu tapa esittää tiedot. Käyttäjä lähettää tiedot käyttämällä lähetyspainiketta, jossa on seuraava tunniste:

< Input type=submit >

Tämä tunniste luo lomakkeen sisään Lähetä-painikkeen. Kun käyttäjä on täyttänyt lomakkeen, hän voi lähettää sen sisällön lomakkeen ACTION-attribuutilla määritettyyn URL-osoitteeseen napsauttamalla Lähetä-painiketta.

Hyväksytään selaimen syöte

Yllä oli esimerkkejä CGI-ohjelman tallentamisesta, joka lähettää tietoja palvelimelta selaimeen. Todellisuudessa vain dataa tulostavalla CGI-ohjelmalla ei ole monia sovelluksia (joitakin esimerkkejä on luvussa 4). CGI:n tärkeämpi kyky on vastaanottaa tietoa selaimelta - ominaisuus, joka antaa Webille sen interaktiivisen luonteen.

CGI-ohjelma vastaanottaa kahdenlaisia ​​tietoja selaimesta.

  • Ensinnäkin se hankkii erilaisia ​​tietoja selaimesta (sen tyypistä, mitä se voi tarkastella, isäntäkoneesta ja niin edelleen), palvelimesta (sen nimi ja versio, sen suoritusportti ja niin edelleen) ja CGI-ohjelmasta. itse (ohjelman nimi ja missä se sijaitsee). Palvelin antaa kaiken tämän tiedon CGI-ohjelmalle ympäristömuuttujien kautta.
  • Toiseksi CGI-ohjelma voi vastaanottaa käyttäjän syötteitä. Nämä tiedot lähetetään selaimen koodauksen jälkeen joko ympäristömuuttujan (GET-menetelmä) tai vakiosyötteen (stdin - POST-menetelmä) kautta.

ympäristömuuttujat

On hyödyllistä tietää, mitä ympäristömuuttujia CGI-ohjelmalla on käytettävissä sekä harjoituksen aikana että virheenkorjauksessa. Taulukossa 2.2 on lueteltu joitain käytettävissä olevia CGI-ympäristömuuttujia. Voit myös kirjoittaa CGI-ohjelman, joka tulostaa ympäristömuuttujat ja niiden arvot verkkoselaimeen.

Taulukko 2.2. Joitakin tärkeitä CGI-ympäristömuuttujia Ympäristömuuttuja Tarkoitus REMOTE_ADDR Asiakaskoneen IP-osoite. REMOTE_HOST Asiakaskoneen isäntä. HTTP _ACCEPT Luetteloi MIME-tietotyypit, jotka selain voi tulkita. HTTP _USER_AGENT Selaintiedot (selaimen tyyppi, versionumero, käyttöjärjestelmä jne.). REQUEST_METHOD HANKI tai POST. CONTENT_LENGTH Syötteen koko, jos se lähetetään POST:n kautta. Jos syötettä ei ole tai jos käytetään GET-menetelmää, tämä parametri on määrittelemätön. QUERY_STRING Sisältää syötetiedot, kun se välitetään GET-menetelmällä. PATH_INFO Antaa käyttäjän määrittää polun CGI-komentoriviltä (esimerkiksi http://hostname/cgi-bin/ohjelmannimi/polku). PATH_TRANSLATED Kääntää PATH_INFO:n suhteellisen polun todelliseksi poluksi järjestelmässä.

Jos haluat kirjoittaa ympäristömuuttujia näyttävän CGI-sovelluksen, sinun on tiedettävä kaksi asiaa:

  • Määritä kaikki ympäristömuuttujat ja niitä vastaavat arvot.
  • Tulosta tulokset selaimeen.

Tiedät jo, kuinka viimeinen toimenpide suoritetaan. Perlissä ympäristömuuttujat tallennetaan assosiatiiviseen taulukkoon %ENV, joka otetaan käyttöön ympäristömuuttujan nimellä. Listaus 2.3 sisältää env.cgi:n, Perl-ohjelman, joka saavuttaa tavoitteemme.

Listaus 2.3. Perl-ohjelma, env.cgi, joka tulostaa kaikki CGI-ympäristömuuttujat.

#!/usr/local/bin/perl print "Content-type: text/html\n\n"; Tulosta " \n"; tulosta" CGI-ympäristö\n"; tulosta"\n"; tulosta" \n"; tulosta"

CGI-ympäristö

\n"; foreach $env_var (avaimet %ENV) ( print " $env_var= $ENV($env_var)
\n"; ) tulosta "

\n";

Samanlainen ohjelma voitaisiin kirjoittaa C:llä; täydellinen koodi on listassa 2.4.

Listaus 2.4. Env.cgi.c C. /* env.cgi.c */ #include ulkoinen merkki **ympäristö; int main() ( char **p = ympäristö; printf("Sisältötyyppi: text/html\r\n\r\n"); printf(" \n"); printf(" CGI-ympäristö\n"); printf("\n"); printf(" \n"); printf("

CGI-ympäristö

\n"); while(*p != NULL) printf("%s
\n",*p++); printf("

\n");)

HANKI vai LÄHETÄ?

Mitä eroa on GET- ja POST-menetelmillä? GET välittää koodatun syöttömerkkijonon ympäristömuuttujan QUERY_STRING kautta, kun taas POST välittää sen stdin:n kautta. POST on suositeltavin menetelmä varsinkin paljon dataa sisältäville lomakkeille, koska lähetettävän tiedon määrälle ei ole rajoituksia, kun taas GET-menetelmällä mediatilan määrä on rajoitettu. GET:llä on kuitenkin tietty hyödyllinen ominaisuus; tätä käsitellään yksityiskohtaisesti luvussa 5, Syöte.

Määrittääkseen, mitä menetelmää käytetään, CGI-ohjelma tarkistaa ympäristömuuttujan REQUEST_METHOD, jonka arvoksi asetetaan joko GET tai POST. Jos se on asetettu arvoon POST, koodatun tiedon pituus tallennetaan ympäristömuuttujaan CONTENT_LENGTH.

Koodattu tulo

Kun käyttäjä lähettää lomakkeen, selain ensin koodaa tiedot ennen lähettämistä palvelimelle ja sitten CGI-sovellukseen. Kun käytät tunnistetta , jokaiselle kentälle annetaan symbolinen nimi. Käyttäjän syöttämä arvo esitetään muuttujan arvona.

Tämän määrittämiseksi selain käyttää URL-koodausspesifikaatiota, joka voidaan kuvata seuraavasti:

  • Erottelee eri kentät et-merkillä (&).
  • Erottelee nimen ja arvot yhtäläisyysmerkeillä (=), jolloin nimi on vasemmalla ja arvo oikealla.
  • Korvaa välilyönnit plusmerkeillä (+).
  • Korvaa kaikki "epänormaalit" merkit prosenttimerkillä (%), jota seuraa merkin kaksinumeroinen heksadesimaalikoodi.

Lopullinen koodattu merkkijonosi on seuraavanlainen:

Nimi1=arvo1&nimi2=arvo2&nimi3=arvo3 ...

Huomautus: URL-koodauksen tekniset tiedot löytyvät RFC1738:sta.

Oletetaan esimerkiksi, että sinulla oli lomake, joka kysyi nimeä ja ikää. Tämän lomakkeen näyttämiseen käytetty HTML-koodi on esitetty luettelossa 2.5.

Listaus 2.5. HTML-koodi, joka näyttää nimen ja ikälomakkeen.

Nimi ja ikä

Kirjoita nimesi:

Anna ikäsi:



Oletetaan, että käyttäjä kirjoittaa Joe Schmoe nimikenttään ja 20 ikäkenttään. Tulo koodataan syötemerkkijonoon.

Nimi=Joe+Schmoe&age=20

Jäsentää syöttöä

Jotta nämä tiedot olisivat hyödyllisiä, sinun on käytettävä tietoja johonkin, jota CGI-ohjelmasi voivat käyttää. Syötteen jäsennysstrategiat käsitellään luvussa 5. Käytännössä sinun ei koskaan tarvitse miettiä syötteen jäsentämistä, koska useat asiantuntijat ovat jo kirjoittaneet jäsentämisen suorittavia kirjastoja, jotka ovat kaikkien saatavilla. Kaksi tällaista kirjastoa esitellään tässä luvussa seuraavissa osioissa: cgi -lib.pl Perlille (kirjoittanut Steve Brenner) ja cgihtml C:lle (kirjoitan minä).

Useimpien eri kielillä kirjoitettujen kirjastojen yleinen tavoite on jäsentää koodattu merkkijono ja laittaa nimi- ja arvoparit tietorakenteeseen. Sellaisen kielen käyttämisessä, jolla on sisäänrakennetut tietorakenteet, kuten Perl; Kuitenkin useimmat matalan tason kielien, kuten C ja C++, kirjastot sisältävät tietorakenteen ja aliohjelman suorittamisen.

Ei ole välttämätöntä saavuttaa täydellistä ymmärrystä kirjastoista; On tärkeämpää oppia käyttämään niitä työkaluina, jotka helpottavat CGI-ohjelmoijan työtä.

Cgi-lib.pl

Cgi-lib.pl käyttää Perl-assosiatiivisia taulukoita. &ReadParse-funktio jäsentää syötemerkkijonon ja syöttää jokaisen nimi/arvo-parin nimen mukaan. Esimerkiksi juuri esitetyn "nimi/ikä"-syötemerkkijonon purkamiseen tarvittavat vastaavat Perl-merkkijonot olisivat

&ReadParse(*input);

Nyt nähdäksesi "name"-arvolle syötetyn arvon, voit käyttää assosiatiivista taulukkoa $input("nimi"). Vastaavasti "age"-arvon saamiseksi sinun on katsottava muuttujaa $input ("age").

Cgihtml

C:llä ei ole sisäänrakennettuja tietorakenteita, joten cgihtml toteuttaa oman linkkiluettelonsa käytettäväksi CGI-jäsennysrutiinien kanssa. Tämä määrittää merkintätyypin rakenteen seuraavasti:

Typedef struct ( Char *nimi; Char *arvo; ) Merkintätyyppi;

Syöttömerkkijonon "nimi/ikä" jäsentämiseksi C:ssä cgihtml:llä käytetään seuraavaa:

/* ilmoittaa linkitetyn listan nimeltä input */ Llist input; /* jäsentää syötettä ja sijaintia linkitetyssä luettelossa */ read_cgi_input(&input);

Ikätietoihin pääsemiseksi voit joko jäsentää luettelon manuaalisesti tai käyttää käytettävissä olevaa cgi _val() -funktiota.

#sisältää #sisältää Merkki *ikä = malloc(koko(merkki)*strlen(cgi_val(syöttö, "ikä")) + 1); Strcpy(ikä, cgi_val(syöttö, "ikä"));

"Ige"-arvo on nyt tallennettu ikämerkkijonoon.

Huomautus: Sen sijaan, että käyttäisin yksinkertaista taulukkoa (kuten char age ;)), varaan dynaamisesti muistitilaa merkkijonoikää varten. Vaikka tämä vaikeuttaa ohjelmointia, se on kuitenkin tärkeää turvallisuuden kannalta. Tätä käsitellään tarkemmin luvussa 9.

Yksinkertainen CGI-ohjelma

Aiot kirjoittaa CGI-ohjelman nimeltä nameage.cgi, joka käsittelee nimi/ikä -muotoa. Tietojen käsittely (mitä yleensä kutsun "tavaraksi") on minimaalista. Nameage.cgi yksinkertaisesti purkaa syötteen ja näyttää käyttäjän nimen ja iän. Vaikka tällaiselle työkalulle ei ole paljon hyötyä, se osoittaa CGI-ohjelmoinnin kriittisimmän puolen: tulon ja lähdön.

Käytät samaa lomaketta kuin yllä, kutsuen "nimi ja ikä" -kentät. Älä vielä ole huolissasi kestävyydestä ja tehokkuudesta; ratkaista olemassa oleva ongelma yksinkertaisimmalla tavalla. Perl- ja C-ratkaisut on esitetty luetteloissa 2.6 ja 2.7.

Listaus 2.6. Nameage.cgi Perlissä

#!/usr/local/bin/perl # nameage.cgi vaatii "cgi-lib.pl" &ReadParse(*input); tulosta "Content-Type: text/html\r\n\r\n"; Tulosta " \n"; tulosta" Nimi ja ikä\n"; tulosta"\n"; tulosta" \n"; tulosta "Hei, " . $input("nimi") . ". Olet\n"; print $input("age") . " vuotta vanha.

\n"; tulosta"

\n";

Listaus 2.7. nameage.cgi C:ssä

/* nameage.cgi.c */ #include #include "cgi-lib.h" int main() ( listin syöttö; read_cgi_input(&input); printf("Sisältötyyppi: text/html\r\n\r\n"); printf(" \n"); printf(" Nimi ja ikä\n"); printf("\n"); printf(" \n"); printf("Hei, %s. Olet\n",cgi_val(input,"nimi")); printf("%s vuotta vanha.

\n",cgi_val(syöttö"ikä")); printf("

\n");)

Huomaa, että nämä kaksi ohjelmaa ovat lähes samanarvoisia. Molemmat sisältävät jäsennysrutiineja, jotka vievät vain yhden rivin ja käsittelevät koko syötteen (vastaavien kirjastorutiinien ansiosta). Tulos on olennaisesti muokattu versio Hello, World! -pääohjelmastasi.

Yritä suorittaa ohjelma täyttämällä lomake ja napsauttamalla Lähetä-painiketta.

Yleinen ohjelmointistrategia

Tiedät nyt kaikki CGI-ohjelmoinnin perusperiaatteet. Kun ymmärrät kuinka CGI vastaanottaa tiedot ja kuinka se lähettää ne takaisin selaimeen, lopputuotteesi todellinen laatu riippuu yleisistä ohjelmointikyvyistäsi. Nimittäin, kun ohjelmoit CGI:tä (tai mitä tahansa, siinä tapauksessa), pidä seuraavat ominaisuudet mielessä:

  • Yksinkertaisuus
  • Tehokkuus
  • Monipuolisuus

Kaksi ensimmäistä ominaisuutta ovat melko yleisiä: yritä tehdä koodistasi mahdollisimman luettava ja tehokas. Monipuolisuus koskee enemmän CGI-ohjelmia kuin muita sovelluksia. Kun alat kehittää omia CGI-ohjelmiasi, opit, että on olemassa useita perussovelluksia, joita kaikki haluavat tehdä. Esimerkiksi yksi CGI-ohjelman yleisimmistä ja ilmeisimmistä tehtävistä on käsitellä lomake ja lähettää tulokset sähköpostitse tietylle vastaanottajalle. Voit käsitellä useita erillisiä lomakkeita, joista jokaisella on eri vastaanottaja. Sen sijaan, että kirjoittaisit CGI-ohjelman jokaiselle yksittäiselle lomakkeelle, voit säästää aikaa kirjoittamalla yleisemmän CGI-ohjelman, joka koskee kaikkia lomakkeita.

Käsittelemällä kaikki CGI:n perusasiat olen antanut sinulle tarpeeksi tietoa CGI-ohjelmoinnin aloittamiseen. Tehokas CGI-kehittäjä edellyttää kuitenkin syvempää ymmärrystä siitä, kuinka CGI kommunikoi palvelimen ja selaimen kanssa. Tämän kirjan loppuosa kattaa yksityiskohtaisesti tässä luvussa lyhyesti mainitut asiat sekä sovelluskehitysstrategian ja protokollan edut ja rajoitukset.

Yhteenveto

Tässä luvussa esitellään lyhyesti CGI-ohjelmoinnin perusteet. Luot tulosteen muotoilemalla tiedot oikein ja tulostamalla stdout-muotoon. CGI-syötteen vastaanottaminen on hieman monimutkaisempaa, koska se on jäsennettävä ennen kuin sitä voidaan käyttää. Onneksi on jo olemassa useita jäsentämistä suorittavia kirjastoja.

Tähän mennessä sinun pitäisi olla melko tyytyväinen CGI-sovellusten ohjelmointiin. Tämän kirjan loppuosassa käsitellään yksityiskohtaisemmin spesifikaatioita, vinkkejä ja ohjelmointistrategioita edistyneempiä ja monimutkaisempia sovelluksia varten.

Verkkokauppojen omistajat tuntevat käsitteen "sähköinen kaupankäynti" omakohtaisesti; he tietävät jo vastauksen kysymykseen "sähköinen kaupankäynti - mitä se on?" Mutta jos pääset asian ytimeen, esiin tulee monia vivahteita ja tämä termi saa laajemman merkityksen.

Verkkokauppa: mitä se on?

Yleinen käsite on seuraava: sähköisellä kaupankäynnillä tarkoitetaan tiettyä lähestymistapaa liiketoiminnan harjoittamiseen, joka sisältää useiden digitaalista tiedonsiirtoa käyttävien toimintojen sisällyttämisen tavaroiden toimittamiseen tai palvelujen/työn tarjoamiseen, mukaan lukien Internet.

Näin ollen kyseessä on mikä tahansa kaupallinen liiketoimi, joka suoritetaan käyttämällä sähköistä viestintävälinettä.

Työsuunnitelma on järjestetty seuraavasti:

  • kuka tahansa voi olla bloggaaja tai mikä tahansa muu oman Internet-sivunsa omistaja) rekisteröityy tähän järjestelmään;
  • saa oman linkin;
  • sijoittaa erityisen koodin verkkosivulleen - e-Commerce Partners Networkin valitun virallisen kumppanin mainos tulee näkyviin;
  • valvoo verkkosivuston muuntamista;
  • ansaitsee tietyn prosenttiosuuden jokaisesta kumppanilinkkiä seuraavan verkkosivustosi vierailijan ostoksesta.

WP sähköinen kaupankäynti

Suuri joukko ihmisiä on nykyään intohimoinen sähköiseen kaupankäyntiin, mikä johtuu ensisijaisesti halusta luoda oma verkkosivusto, ainutlaatuinen verkkokauppa omien tuotteidensa myyntiä varten. Vastatakseen tähän kasvavaan kysyntään kehittäjät ovat keskittyneet luomaan verkkokauppamalleja. Katsotaanpa, mitä tämä on seuraavaksi.

Yksi esimerkki malleista on WordPress-verkkokauppa. Se on WordPressin (yksi tunnetuimmista verkkoresurssienhallintajärjestelmistä) ostoskorilaajennus, joka on tarkoitettu ensisijaisesti blogien luomiseen ja järjestämiseen. Se tarjotaan täysin ilmaiseksi, ja sen avulla sivuston kävijät voivat tehdä ostoksia verkkosivustolla.

Toisin sanoen tämän laajennuksen avulla voit luoda verkkokaupan (WordPressiin perustuen). Tämä verkkokauppalaajennus sisältää kaikki tarvittavat työkalut, asetukset ja vaihtoehdot nykyajan tarpeisiin.




Yläosa