CGI շրջակա միջավայրի փոփոխականների տեղեկանք

Բացահայտում. Ձեր աջակցությունն օգնում է կայքը պահպանել: Այս էջում առաջարկվող որոշ ծառայությունների համար մենք վաստակում ենք ուղեգրման վճար.


Սկզբնապես, համացանցը հիմնականում ընդամենը HTTP հարցումներ ուղարկելու և ստանալու համակարգ էր: Զննարկիչը կխնդրեր HTTP հարցմամբ էջ ուղարկել, իսկ սերվերը էջը կուղարկի զննարկիչ.

Էջը կարող է ներառել այնպիսի բաներ, ինչպիսիք են հղումները պատկերներին, որոնք զննարկիչը կպահանջի ավելի շատ HTTP հարցումների միջոցով: Ամեն ինչ շատ պարզ էր: Բայց դա թույլ չի տվել, որ վերամշակումը կատարվի սերվերի կողմից: Արդյունքում մշակվեց Common Gateway Interface (CGI).

CGI- ի միջոցով զննարկիչը կարող էր սերվերի միջոցով մուտքագրումներով հարցում ուղարկել, իսկ CGI ծրագիրը հետ ուղարկի մուտքագրումների հիման վրա վերամշակված վեբ էջ: Վերցրեք մի վաղ օրինակ. CGI ծրագիր, որը վերադարձրեց տեղեկատվություն քիմիական միացությունների մասին.

Զննարկիչը հայցադիմում էր ուղարկում CGI ծրագրին այն բարդույթով, որի մասին ցանկանում էր օգտագործողը, և ծրագիրը հետ կուղարկի էջը, որը լցված էր այդ բաղադրիչի վերաբերյալ տեղեկություններով:.

Ի վերջո, մշակվեցին սերվերների ծրագրավորման լեզուներ, ինչպիսիք են PHP- ն և Python- ը, բայց այդ օրերին CGI- ն այնտեղ էր.

Դեռևս, CGI- ն ուներ յուրահատուկ ունակություն ՝ անկախ լեզուն: Եթե ​​սերվերը կարողանա գործարկել ծրագիրը, CGI- ն կարող էր կարգավորել այն: Այսպիսով, դա կարող է լինել կազմված C ++ ծրագիր կամ Perl- ի կողմից մեկնաբանված սցենար կամ որևէ այլ բան.

Այսօր CGI ծրագրերը հիմնականում ժառանգություն են: Բայց կան ժամանակներ, երբ այն դեռևս լուծում է խնդիրը լուծելու լավագույն միջոցը: Եկեք ավելի ուշադիր նայենք շրջակա միջավայրի փոփոխականություններին, որոնք համակարգի ողնաշարն են.

Փոփոխականներ

Եթե ​​հաշվի եք առնում CGI ծրագրավորումը, հետևյալ փոփոխականները շատ օգտակար կլինեն տարբեր սերվերի խնդրանքների մշակման համար `ձևի տվյալների մշակման արդյունքում, որոնք առաջ են բերելու հզոր և բազմակողմանի ծրագրեր:.

Այս փոփոխականներին մուտք գործելու համար դուք պետք է մուտքագրեք շրջակա միջավայրին վերաբերող արժեքների մի շարք: Օրինակ, Perl- ում դուք կվերցնեք արժեքները $ ENV զանգվածում ՝ օգտագործելով շրջակա միջավայրի փոփոխական ստեղներ, որոնք նման են հետևյալին.

$ ENV {$ env_var

Վերոնշյալ ծածկագրում, env_var- ը վերաբերում է շրջակա միջավայրի փոփոխական ստեղնին կամ լարային նման SERVER_NAME- ին: Ծրագրավորման այլ լեզուներն ունեն իրենց համակարգերը `շրջակա միջավայրի փոփոխականությունները կառավարելու համար: Ստուգեք հղումը ձեր որոշակի լեզվին.

Ահա CGI փոփոխականներն ու այն, ինչ նրանք անում են.

AUTH_TYPE

Որոշ վեբ սերվերներ պաշտպանում են մուտքի թույլտվություն CGI սցենարներ: AUTH_TYPE փոփոխականը վերաբերում է թույլտվության տիպին, որը սերվերն օգտագործում է օգտվողներին ստուգելու համար.

Օրինակ, այս փոփոխականի համար հնարավոր արժեք կարող է լինել Հիմնական, որը վերաբերում է Հիմնական վավերացմանը: Նկատի ունեցեք, որ բոլոր սերվերները չեն աջակցում թույլտվությանը.

CONTENT_LENGTH

CONTENT_LENGTH- ը հարցման միջոցով առաքված բովանդակության երկարությունը տալիս է որպես բայթերի քանակը: Եթե ​​երկարությունը անհայտ է, ապա փոփոխականը սահմանվում է -1.

CONTENT_TYPE

CONTENT_TYPE փոփոխականը պարունակում է հայցով վերադարձված ֆայլի տեսակը.

Օրինակ, եթե վեբ-էջ է պահանջվում, CONTENT_TYPE փոփոխականը սահմանվում է MIME տեքստի / html.

GATEWAY_INTERFACE

Եթե ​​ուզում եք իմանալ, թե CGI բնութագրման որ տարբերակն է սպասարկում սերվերը, ապա կարող եք հարցնել GATEWAY_INTERFACE: Այս փոփոխականը կօգնի համոզվել, որ դուք օգտագործում եք ճշգրտման և վավեր հրամանների ճիշտ տարբերակը.

HTTP_ACCEPT

Likeիշտ այնպես, ինչպես CONTENT_TYPE- ն ապահովում է տվյալները կամ MIME տիպը, որը առաքվում է, HTTP_ACCEPT- ն թվարկում է բոլոր հնարավոր MIME տեսակները, որոնք հայցադիմում կատարող հաճախորդը կարող է ընդունել: Տեսակների ցանկը բաժանվում է ստորակետերով.

HTTP_USER_AGENT

HTTP_USER_AGENT- ը տալիս է այն ծրագրի անվանումը, որը հաճախորդը օգտագործում է հարցումը ուղարկելու համար.

Օրինակ, եթե օգտագործողը իրականացնում է CGI սցենար Mozilla Firefox- ից, HTTP_USER_AGENT- ը ցույց կտա, որ օգտագործողը Firefox- ի միջոցով հայց է ուղարկել վեբ սերվերին:.

PATH_INFO

PATH_INFO փոփոխականը պարունակում է լրացուցիչ տեղեկություններ, որոնք երևում են CGI սցենարի անունից հետո.

Օրինակ, եթե դուք իրականացնում եք www.placeholder.com/cgi-bin/hello.pl/index.html, ապա դրա համար PATH_INFO- ն այն նիշերն են, որոնք գալիս են այս օրինակում CGI սցենարի անունից կամ /index.html:.

PATH_TRANSLATED

Երբ մուտքագրում եք CGI սցենարի հասցեն վեբ զննարկիչում, սովորաբար մուտքագրում եք վիրտուալ ուղի, որը քարտեզագրվում է սերվերի ֆիզիկական վայրում.

Օրինակ, եթե գնում եք http://www.somewebsite.com/cgi-bin/index.cgi և հարցնեք PATH_TRANSLATED փոփոխականին, ապա կստանաք իրական ֆիզիկական ուղի: Եթե ​​դուք համօգտագործված եք Unix սերվերում, դա կարող է լինել /home/placeholder/public_html/cgi-bin/index.cgi.

QUERY_STRING

Սովորական է հարցման նշանից հետո URL- ին հավելված հարցման տեղեկատվությունը տեսնել: URL- ի համար http://www.placeholder.com/cgi-bin/hello.cgi?name=Leroy&բացականչություն = ճշմարիտ, QUERY_STRING- ի հայցը կվերադառնար անունով = Leroy&բացականչություն = ճշմարիտ է վերադարձվում.

REMOTE_ADDR

REMOTE_ADDR փոփոխականը տալիս է հայցադիմումը կատարող հաճախորդի համակարգչի IP հասցեն: Ըստ էության, REMOTE_ADDR- ը REMOTE_HOST- ը լուծված է IP հասցեով.

REMOTE_HOST

Վեբ սերվերները անընդհատ ընդունում են ինչպես կապեր, այնպես էլ հաճախորդների պահանջներ: REMOTE_HOST փոփոխականը վերաբերում է հաճախորդի հյուրընկալողի անունին, որը կատարում է հարցումը.

Օրինակ, եթե ձեր վեբհոստը ընդունի հարցում webhost2.com- ից, ապա REMOTE_HOST- ը բնակեցված կլիներ webhost2.com- ով:.

REMOTE_IDENT

REMOTE_IDENT փոփոխականը պահպանում է օգտվողի ID- ն աշխատող CGI գրությունը: Օգտագործողի ID- ն պահվում է միայն այն դեպքում, երբ նույնականացման գործընթացն ավարտված է, քանի որ նույնականացման պատասխանը վերադարձնում է պատասխան, որը պարունակում է ոչ միայն օգտվողի նույնականացման տվյալներ, այլև սցենարը գործարկող OS- ի անվանումը:.

REMOTE_USER

REMOTE_USER փոփոխականից հարցումը տալու է հայցադիմումը ներկայացնող կազմակերպության օգտվողի անունը: Սա վավեր է միայն այն դեպքում, եթե նույնականացումը միացված է.

REQUEST_METHOD

REQUEST_METHOD- ը տալիս է ավարտված HTTP հարցման տեսակը, որն իր մեջ պարունակում է այնպիսի արժեքներ, ինչպիսիք են ՝ GET, POST և PUT.

SCRIPT_NAME

Փոխարենը, եթե ցանկանում եք ձեռք բերել սցենարի վիրտուալ ուղին, ապա պարզապես կարող եք հարցնել SCRIPT_NAME փոփոխականը.

Օրինակ, եթե գործարկեք սցենարը http://www.placeholder.com/cgi-bin/ping.sh և ստացեք SCRIPT_NAME, կստանաք սցենարի վիրտուալ ուղին կամ /cgi-bin/ping.sh.

SERVER_NAME

SERVER_NAME փոփոխականները տալիս են ձեր սերվերի ամբողջական անունը.

Օրինակ, եթե հարցնում եք այս փոփոխականին, արդյունքը կլինի կայքի տիրույթի անունը `www.placeholder.com- ի նման մի բան:.

SERVER_PORT

Serverանցում աշխատող ցանկացած սերվեր ունի ինչպես հասցե, այնպես էլ նավահանգիստ: Սերվերը օգտագործում է նավահանգիստ ՝ կապեր ընդունելու և հայցեր լսելու համար: Ստանդարտ պորտը 80 է, բայց այն կարող է լինել այլ թվեր `մասնավորապես մասնագիտացված ծրագրերի համար: SERVER_PORT փոփոխականի որոնումը կհանգեցնի լսող պորտի արժեքի.

SERVER_PROTOCOL

Կարող եք իմանալ, թե ինչպիսի՞ պրոտոկոլ է օգտագործում սերվերը հարցումները կարգավորելու համար.

Օրինակ, եթե սերվերը, որի հետ աշխատում եք, օգտագործում է HTTP արձանագրությունը, այն կվերադարձնի «HTTP / 1.1» -ի նման շարքը, ինչը նշանակում է, որ սերվերը օգտագործում է HTTP տարբերակը 1.1: Հիմնականում վերադարձված տողը ձևաչափի արձանագրության / տարբերակում է.

SERVER_SOFTWARE

SERVER_SOFTWARE շրջակա միջավայրի փոփոխականը պարունակում է վեբ սերվերում աշխատող ծրագրակազմի անունն ու տարբերակը.

Օրինակ, եթե դուք դուրս եք բերում այս փոփոխականի արժեքը և իրականացնում եք Apache- ի վարկածը, կարող եք նման բան ստանալ հետևյալի հետ.

Apache 2.4.25

Եզրակացություն

CGI- ը կամ HTTP արձանագրությունը հասկանալու առաջին քայլերից մեկը `հիմքում ընկած փոփոխականներին և շարահյուսությանը ծանոթանալն է: Սա ներառում է պարզապես ուրվագծված շրջակա միջավայրի փոփոխականները.

Չնայած CGI- ն այսօր հազվադեպ է օգտագործվում, PHP- ի նման վեբ զարգացման շատ ժամանակակից լեզուներ նույնպես օգտագործում են այդ փոփոխականներից շատերը: Արդյունքում դրանց սովորելը կօգնի նաև ձեզ գրել ուժեղ ծրագրեր նույնիսկ վեբ զարգացման ներկայիս լեզուների համար.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map