CGI környezeti változók referencia

Közzététel: Támogatása segít fenntartani a webhely működését! Az ezen az oldalon javasolt szolgáltatások némelyikén referenciadíjat keresünk.


Eredetileg a web többnyire csak egy HTTP-kérések küldésére és fogadására szolgáló rendszer volt. Egy böngésző azt kéri, hogy küldjön egy oldalt egy HTTP kéréssel, a szerver pedig elküldi az oldalt a böngészőnek.

Maga az oldal tartalmazhat olyan hivatkozásokat, mint például a képekre való hivatkozásokat, amelyeket a böngésző több HTTP kéréssel kérne. Nagyon egyszerű volt. De nem tette lehetővé, hogy a szerver elvégezze a feldolgozást. Ennek eredményeként kifejlesztették a Közös átjáró interfészt (CGI).

A CGI-vel a böngésző bemeneti kérelmet küldhet a kiszolgálóra, a CGI-program pedig a küldött bemenetek alapján feldolgozott weboldalt küld vissza. Vegyünk egy korai példát: egy CGI program, amely visszaadta a kémiai vegyületekkel kapcsolatos információkat.

A böngésző kérést küld a CGI programnak azzal a vegyülettel, amelyről a felhasználó adatokat kívánott, és a program egy oldalt küld vissza, amely az adott vegyülettel kapcsolatos információkkal töltött fel..

Végül olyan szerverprogramozási nyelveket fejlesztettek ki, mint a PHP és a Python, de azokban a napokban a CGI-ben minden létezett.

A CGI ennek ellenére egyedülálló képességgel rendelkezik: nyelvi független volt. Ha a kiszolgáló el tudja futtatni a programot, a CGI kezelheti azt. Tehát lehet egy összeállított C ++ program vagy egy értelmezett Perl szkript, vagy éppen bármi más.

Manapság a CGI programok általában örökségiek. De vannak esetek, amikor ez még mindig a legjobb módja egy probléma megoldására. Vessünk közelebb a környezeti változókhoz, amelyek a rendszer gerincét képezik.

változók

Ha a CGI programozását fontolgatja, akkor az alábbi változók nagyon hasznosak lesznek az űrlapadatok feldolgozására szolgáló különféle szerverkérések kezeléséhez, amelyek hatékony és sokoldalú programokat eredményeznek..

E változók eléréséhez be kell töltenie egy bejegyzést a környezetre utaló értékek tömbjéből. Például Perl-ben a következőkhöz hasonló környezeti változó kulcsok használatával kérheti le az értékeket a $ ENV tömbből:

$ ENV {$ env_var}

A fenti kódrészletben az env_var egy környezeti változó kulcsra vagy karakterláncszerű szerverre utal. A többi programozási nyelvnek megvan a saját rendszere a környezeti változók kezelésére. Ellenőrizze az adott nyelvre vonatkozó referenciát.

Itt található a CGI változók és azok működése:

AUTH_TYPE

Néhány webszerver engedélyezéssel védi a CGI szkriptekhez való hozzáférést. Az AUTH_TYPE változó arra az engedélyezési típusra utal, amelyet a szerver használ a felhasználók ellenőrzésére.

Például ennek a változónak az értéke lehet Alap, amely az Alap hitelesítésre utal. Vegye figyelembe, hogy nem minden szerver támogatja az engedélyezést.

CONTENT_LENGTH

A CONTENT_LENGTH a kérelem alapján kézbesített tartalom hosszát adja meg bájt számként. Ha a hossza ismeretlen, akkor a változót -1-re állítják.

TARTALOM TÍPUS

A CONTENT_TYPE változó a kérelem által visszaadott fájl típusát tartalmazza.

Például, ha weblapot kérnek, akkor a CONTENT_TYPE változót a MIME típusú szöveg / html értékre állítják..

GATEWAY_INTERFACE

Ha meg szeretné tudni, hogy a CGI specifikáció melyik verzióját kezeli a szerver, akkor lekérdezheti a GATEWAY_INTERFACE kérdést. Ez a változó biztosítja, hogy a specifikáció megfelelő verzióját és az érvényes parancsokat használja.

HTTP_ACCEPT

Csakúgy, mint a CONTENT_TYPE biztosítja az átadott adatokat vagy MIME-típust, a HTTP_ACCEPT felsorolja az összes lehetséges MIME-típust, amelyet a kérést benyújtó ügyfél elfogadhat. A típusok listáját vesszők választják el.

HTTP_USER_AGENT

A HTTP_USER_AGENT megadja annak a programnak a nevét, amelyet az ügyfél a kérés elküldésére használ.

Például, ha egy felhasználó végrehajt egy CGI szkriptet a Mozilla Firefox-tól, a HTTP_USER_AGENT azt jelzi, hogy a felhasználó Firefoxon keresztül kérést tett a webszerverhez..

PATH_INFO

A PATH_INFO változó további információkat tartalmaz, amelyeket a CGI szkript neve után látunk.

Például, ha végrehajtja a www.placeholder.com/cgi-bin/hello.pl/index.html fájlt, akkor ehhez a PATH_INFO karakterek a CGI szkriptnév vagy az /index.html utáni karakterek lesznek ebben a példában.

PATH_TRANSLATED

Amikor beír egy CGI-szkript címét egy webböngészőbe, általában egy virtuális útvonalat ír be, amelyet a szerver fizikai helyére mutatnak.

Például, ha ellátogat a http://www.somewebsite.com/cgi-bin/index.cgi webhelyre, és lekérdezi a PATH_TRANSLATED változót, akkor megkapja a tényleges fizikai utat. Ha megosztott Unix-kiszolgálón van, akkor az lehet /home/placeholder/public_html/cgi-bin/index.cgi.

QUERY_STRING

Gyakori, hogy a lekérdezési információkat egy URL-hez csatolják a kérdőjel után. A http://www.placeholder.com/cgi-bin/hello.cgi?name=Leroy URL-hez&felkiáltás = igaz, a QUERY_STRING kérése = Leroy névvel tér vissza&felkiáltás = valódi visszatérés.

REMOTE_ADDR

A REMOTE_ADDR változó megadja a kérést benyújtó ügyfélszámítógép IP-címét. Alapvetően a REMOTE_ADDR REMOTE_HOST IP-címre van feloldva.

REMOTE_HOST

A webszerverek folyamatosan elfogadják a kapcsolatokat és az ügyfelek kéréseit. A REMOTE_HOST változó a kérést végrehajtó ügyfél gazdanevére vonatkozik.

Például, ha a webtárhely elfogadja a webhost2.com kérését, akkor a REMOTE_HOST betölti a webhost2.com webhelyen..

REMOTE_IDENT

A REMOTE_IDENT változó a CGI szkriptet futtató felhasználói azonosítót tárolja. A felhasználói azonosító csak akkor tárolódik, ha az ident folyamat fut, mivel az ident olyan választ ad vissza, amely nemcsak a felhasználói azonosító adatait tartalmazza, hanem a parancsfájlt futtató operációs rendszer nevét is.

REMOTE_USER

A REMOTE_USER változó lekérdezése megadja a kérelmet benyújtó entitás felhasználóneveinek adatait. Ez csak akkor érvényes, ha a hitelesítés engedélyezve van.

REQUEST_METHOD

A REQUEST_METHOD megadja a teljesített HTTP kérés típusát, amely olyan értékeket tartalmaz, mint a GET, POST és PUT.

szkript

Ha ehelyett a végrehajtandó szkript virtuális elérési útját szeretné megkapni, akkor egyszerűen lekérdezheti a SCRIPT_NAME változót.

Például, ha a http://www.placeholder.com/cgi-bin/ping.sh szkriptet futtatja, és lekérdezi a SCRIPT_NAME fájlt, akkor megkapja a szkript vagy a /cgi-bin/ping.sh virtuális elérési útját..

SZERVER NÉV

A SERVER_NAME változók megadják a szerver teljes nevét.

Például, ha erre a változóra kérdezi, akkor az eredmény lesz a webhely domainneve – például a www.placeholder.com.

SZERVER PORT

Az interneten futó bármely kiszolgálónak van címe és egy portja is. A szerver egy portot használ a kapcsolatok elfogadására és a kérések meghallgatására. A szokásos port 80, de lehet más szám is – különösen speciális alkalmazásokhoz. A SERVER_PORT változó lekérdezése a hallgatási port értékét eredményezi.

SERVER_PROTOCOL

Megtudhatja, hogy a kiszolgáló milyen protokollt használ a kérelmek kezelésére.

Például, ha az Ön által használt szerver a HTTP protokollt használja, akkor olyan karakterláncot ad vissza, mint a „HTTP / 1.1”, ami azt jelenti, hogy a szerver az 1.1 HTTP verziót használja. Alapvetően a visszaadott karakterlánc protokoll / verzió formátumban van.

SERVER_SOFTWARE

A SERVER_SOFTWARE környezeti változó a webkiszolgálón futó szoftver nevét és verzióját tartalmazza.

Például, ha kiadja ennek a változónak az értékét, és az Apache verzióját futtatja, akkor a következőhez hasonlót kaphat:

Apache 2.4.25

Következtetés

A CGI vagy a HTTP protokoll megértésének egyik első lépése a mögöttes változók és a szintaxis megismerése. Ez magában foglalja a fent vázolt környezeti változókat.

Noha a CGI-t manapság ritkán használják, sok jelenlegi webes fejlesztési nyelv, például a PHP, szintén használja ezeket a változókat. Ennek eredményeként ezek megtanulása segít a robusztus programok megírásában, még a jelenlegi webfejlesztési nyelvekhez is.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me