Referencia premenných prostredia Common Gateway Interface (CGI)

zverejnenie: Vaša podpora pomáha udržiavať web v prevádzke! Za niektoré zo služieb, ktoré odporúčame na tejto stránke, získavame poplatok za sprostredkovanie.


Pôvodne bol web väčšinou iba systém na odosielanie a prijímanie požiadaviek HTTP. Prehliadač požiada o odoslanie stránky s požiadavkou HTTP a server pošle stránku do prehliadača. Samotná stránka môže obsahovať napríklad odkazy na obrázky, ktoré by prehliadač požadoval s ďalšími požiadavkami HTTP. Bolo to všetko veľmi jednoduché. To však neumožňovalo spracovanie serverom. Výsledkom bolo vyvinutie Common Gateway Interface (CGI).

S CGI by mohol prehliadač poslať požiadavku so vstupmi na server a program CGI by poslal späť webovú stránku spracovanú na základe odoslaných vstupov. Vezmite prvý príklad: program CGI, ktorý vrátil informácie o chemických zlúčeninách. Prehliadač pošle žiadosť do programu CGI so zlúčeninou, o ktorej chcel používateľ získať údaje, a program pošle späť stránku s informáciami o tejto zlúčenine..

Nakoniec boli vyvinuté programovacie jazyky serverov ako PHP a Python, ale v tých časoch bolo CGI všetko tam. CGI mal napriek tomu jedinečnú schopnosť: bol jazykovo nezávislý. Ak by server mohol spustiť program, CGI by to zvládla. Takže to môže byť kompilovaný program C ++ alebo interpretovaný Perl skript alebo čokoľvek iného.

Dnes sú programy CGI väčšinou dedičstvom. Ale sú chvíle, keď je to stále najlepší spôsob, ako vyriešiť problém. Pozrime sa bližšie na premenné prostredia, ktoré sú chrbtovou kosťou systému.

premenné

Ak uvažujete o programovaní CGI, nasledujúce premenné budú veľmi užitočné pri spracovávaní rôznych serverových požiadaviek na spracovanie údajov formulárov, čo vedie k výkonným a všestranným programom. Ak chcete získať prístup k týmto premenným, musíte získať položku z radu hodnôt týkajúcich sa prostredia. Napríklad v Perli by ste načítali hodnoty v poli $ ENV pomocou kľúčov premenných prostredia podobných nasledujúcim:

$ ENV {$ env_var}

Vo vyššie uvedenom výňatku kódu env_var odkazuje na kľúč alebo reťazec premennej prostredia, ako je SERVER_NAME. Ostatné programovacie jazyky majú svoje vlastné systémy na správu premenných prostredia. Skontrolujte referenciu pre váš konkrétny jazyk.

Tu sú premenné CGI a čo robia:

AUTH_TYPE

Niektoré webové servery chránia prístup k skriptom CGI autorizáciou. Premenná AUTH_TYPE sa týka typu autorizácie, ktorý server používa na overenie používateľov. Napríklad možnou hodnotou pre túto premennú môže byť základná hodnota odkazujúca na základnú autentifikáciu. Upozorňujeme, že nie všetky servery podporujú autorizáciu.

CONTENT_LENGTH

CONTENT_LENGTH udáva dĺžku obsahu doručeného prostredníctvom žiadosti ako počet bajtov. Ak dĺžka nie je známa, premenná by bola nastavená na -1.

TYP OBSAHU

Premenná CONTENT_TYPE obsahuje typ súboru, ktorý sa vráti požiadavkou. Napríklad, ak sa požaduje webová stránka, premenná CONTENT_TYPE by sa nastavila na text typu MIME / html.

GATEWAY_INTERFACE

Ak chcete vedieť, akú verziu špecifikácie CGI server spracováva, môžete zadať dotaz na GATEWAY_INTERFACE. Táto premenná vám pomôže zabezpečiť, aby ste používali správnu verziu špecifikácie a platné príkazy.

HTTP_ACCEPT

Podobne ako CONTENT_TYPE poskytuje dodaný typ údajov alebo MIME, HTTP_ACCEPT uvádza všetky možné typy MIME, ktoré môže klient, ktorý žiadosť žiada, prijať. Zoznam typov je oddelený čiarkami.

HTTP_USER_AGENT

HTTP_USER_AGENT uvádza názov programu, ktorý klient používa na odoslanie žiadosti. Napríklad, ak používateľ spustí skript CGI z prehliadača Mozilla Firefox, HTTP_USER_AGENT by naznačoval, že používateľ požiadal webový server prostredníctvom prehliadača Firefox..

PATH_INFO

Premenná PATH_INFO obsahuje ďalšie informácie, ktoré sa zobrazujú za názvom skriptu CGI. Napríklad, ak spustíte www.placeholder.com/cgi-bin/hello.pl/index.html, potom PATH_INFO by to boli znaky, ktoré nasledujú za názvom skriptu CGI alebo /index.html v tomto príklade..

PATH_TRANSLATED

Keď do webového prehľadávača zadáte adresu skriptu CGI, zvyčajne zadáte virtuálnu cestu, ktorá je mapovaná na fyzické umiestnenie na serveri. Napríklad, ak idete na stránku http://www.somewebsite.com/cgi-bin/index.cgi a zadáte dotaz na premennú PATH_TRANSLATED, získate skutočnú fyzickú cestu. Ak ste na zdieľanom unixovom serveri, môže to byť /home/placeholder/public_html/cgi-bin/index.cgi.

kupón pre webhosting

Potrebujete kvalitný hosting s prístupom CGI?
GreenGeeks zaznamenal veľmi dobré výsledky v našich testoch rýchlosti a výkonu. Čitatelia môžu v súčasnosti ušetriť až 60% na svojich plánoch. Použite tento špeciálny odkaz na zľavu
dohodnúť sa.

QUERY_STRING

Je bežné, že sa za otáznikom nachádzajú informácie o dotazoch pripojené k adrese URL. Pre adresu URL http://www.placeholder.com/cgi-bin/hello.cgi?name=Leroy&výkričník = true, požiadavka QUERY_STRING by sa vrátila v mene = Leroy&výkričník = skutočné vrátenie.

REMOTE_ADDR

Premenná REMOTE_ADDR udáva IP adresu klientskeho počítača, ktorý žiada. V zásade je REMOTE_ADDR REMOTE_HOST vyriešený na IP adresu.

VZDIALENÝ HOSTITEĽ

Webové servery neustále akceptujú pripojenia aj požiadavky klientov. Premenná REMOTE_HOST sa týka názvu hostiteľa klienta, ktorý vykonáva požiadavku. Napríklad, ak váš webový hostiteľ akceptuje požiadavku z webhost2.com, potom by sa na webhost2.com zaplnilo REMOTE_HOST..

REMOTE_IDENT

Premenná REMOTE_IDENT ukladá ID užívateľa, na ktorom je spustený skript CGI. ID užívateľa sa uloží, iba ak je spustený proces identifikácie, pretože identifik vracia odpoveď obsahujúcu nielen informácie o ID používateľa, ale aj názov OS, ktorý skript spúšťa..

REMOTE_USER

Dotaz na premennú REMOTE_USER poskytne informácie o užívateľskom mene entity, ktorá žiada. Toto platí iba v prípade, že je povolená autentifikácia.

REQUEST_METHOD

REQUEST_METHOD udáva typ dokončenej HTTP požiadavky, ktorá obsahuje hodnoty ako GET, POST a PUT.

SCRIPT_NAME

Ak namiesto toho chcete získať virtuálnu cestu vykonávaného skriptu, môžete jednoducho požiadať o premennú SCRIPT_NAME. Napríklad, ak spustíte skript http://www.placeholder.com/cgi-bin/ping.sh a načítať SCRIPT_NAME, získate virtuálnu cestu k skriptu alebo /cgi-bin/ping.sh.

NÁZOV SERVERA

Premenné SERVER_NAME udávajú celé meno vášho servera. Ak napríklad hľadáte túto premennú, výsledkom bude názov domény webových stránok. Napríklad niečo ako www.placeholder.com.

PORT SERVERA

Každý server bežiaci na webe má adresu aj port. Server používa port na prijímanie spojení a na posielanie žiadostí. Štandardný port je 80, ale môže to byť aj iné číslo – najmä pre špecializované aplikácie. Výsledkom dotazu na premennú SERVER_PORT bude hodnota portu na počúvanie.

SERVER_PROTOCOL

Môžete zistiť, aký protokol server používa na spracovanie požiadaviek. Napríklad, ak server, s ktorým pracujete, používa protokol HTTP, vráti reťazec ako „HTTP / 1.1“, čo znamená, že server používa HTTP verziu 1.1. Vrátený reťazec je v zásade vo formáte protokolu / verzie.

SERVER_SOFTWARE

Premenná prostredia SERVER_SOFTWARE obsahuje názov a verziu softvéru bežiaceho na webovom serveri. Napríklad, ak zadáte hodnotu tejto premennej a používate verziu Apache, môžete získať niečo podobné nasledujúcemu:

Apache 2.4.25

záver

Jedným z prvých krokov, ktorým môžete porozumieť CGI alebo protokolu HTTP, je oboznámiť sa so základnými premennými a syntaxou. To zahŕňa práve načrtnuté premenné prostredia. Aj keď sa dnes CGI používa zriedka, mnoho súčasných jazykov pre vývoj webových aplikácií, ako je PHP, používa mnoho z týchto premenných. Výsledkom je, že ich učenie vám pomôže písať rozsiahle programy aj pre súčasné jazyky pre vývoj webových aplikácií.

Ďalšie čítanie a zdroje

Máme viac sprievodcov, návodov a infografík týkajúcich sa kódovania a vývoja:

  • Úvod a zdroje PHP: toto je jeden z najväčších kódovacích jazykov na webe.
  • CGI Primer: začnite so základmi CGI.
  • CGI návody a zdroje: zistite, ako vziať CGI, pokiaľ je to možné.

Aký kód by ste sa mali naučiť?

Ste zmätení, v akom programovacom jazyku by ste sa mali naučiť kódovať? Pozrite si náš infographic, aký kód by ste sa mali naučiť? Diskutuje nielen o rôznych aspektoch jazykov, ale odpovedá na dôležité otázky, napríklad: „Koľko peňazí zarobím programovaním PHP na živobytie?“

Aký kód by ste sa mali naučiť?
Aký kód by ste sa mali naučiť?

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