Cgi (interfață comună poartă de acces) 1

CGI (Eng C G ateway I COMUNĂ nterface -. «Common Gateway Interface") - interfață standard utilizat pentru a conecta un program extern la serverul web. Programul, care funcționează pe interfața împreună cu un server web, numit un gateway, deși mulți preferă numele de „script“ (script) sau „CGI-program.“ De obicei, documente hipertext recuperate de la www (la nivel mondial web) servere care conțin date statice. Cu CGI, puteți crea CGI-programe numite gateway-uri, care, în combinație cu sistemele de aplicații, cum ar fi un sistem de management de baze de date, foi de calcul, grafice de afaceri, etc va fi în măsură să dea pentru a afișa informații dinamice a utilizatorului. Programul ruleaza serverul de gateway www in timp real. serverul www oferă o cerere de utilizator gateway-uri, și ea, la rândul său, înseamnă utilizarea sistemului de aplicare, returnează rezultatul prelucrării interogare pe ecranul utilizatorului. [1]

Scopul principal al CGI

Asigurarea unui flux uniform de date între server și programul de aplicație care este pornit de la server. CGI definește un protocol de comunicare între server și programul.

  • CGI definește procedura de server pentru a comunica cu programul de aplicație, în care serverul efectuează partea care inițiază;
  • CGI definește un mecanism pentru schimbul real a comenzilor de date și de control în această interacțiune, care nu este definită în HTTP.

Concepte, cum ar fi metoda de acces, variabile antet, MIME, tipurile de date sunt luate din caietul de sarcini HTTP, și să facă clar celor familiarizați cu protocolul în sine.

În descrierea diferitelor programe care sunt numite de server HTTP și implementate în CGI standard următoarea terminologie este folosită:

Gateway - este CGI-script, care este folosit pentru a face schimb de date cu alte resurse de informații pe Internet și aplicații demoni. Ca de obicei CGI-programul este rulat de server HTTP pentru a efectua o lucrare, și returnează rezultatele la serverul finalizează executarea acestuia. Gateway efectuat la fel de bine, dar, de fapt, el inițiază o interacțiune ca un client cu un al treilea program. În cazul în care acest al treilea program este serviciul de Internet, de exemplu, serverul Gopher, gateway-ul devine un client al Gopher, care trimite cererea de pe Gopher portul, iar după primirea răspunsului îl trimite la serverul HTTP. [2]

Common Gateway Interface CGI

CGI (Common Interface Gateway) - un mecanism de acces la programe de pe serverul web. CGI caietul de sarcini a fost dezvoltat pentru a extinde oportunitățile de servicii www prin conectarea diferitelor software-ul extern. Dacă utilizați CGI, StartUp sale (server), folosind partea de intrare și de ieșire fluxuri standard ale serverului web este accesul browser-ul la programe executabile.

interfață CGI este folosit pentru a crea site-uri web dinamice, de exemplu, atunci când o pagină web generate de rezultatele interogării la baza de date. Acum popularitate CGI a scazut din au existat alternative mai bune (de exemplu, extinderea modulară de servere web).

servere web

Web Server - o aplicatie web-based, care servește HTTP-solicitări din partea clienților, de obicei browsere web. Serverul web primește cereri și returnează răspunsuri, de obicei, cu HTML-pagini, imagini, fișiere, media stream sau alte date. servere Web - fundația World Wide Web. Odată cu răspândirea serviciilor de rețea servere Web sunt tot mai folosite ca gateway-uri pentru serverele de aplicații ele însele sau reprezintă astfel de funcții (de exemplu, Apache Tomcat).

Software-ul de dezvoltare web servere implicate într-o mulțime de dezvoltatori, dar cele mai populare au software-ul ca Apache (Apache Software Foundation), IIS (Microsoft), Google Web Server (GWS, Google Inc.) și Nginx.

Punct de vedere istoric, primul browser în sensul modern (de exemplu, GUI, etc.) a fost programul NCSA Mosaic dezvoltat de Mark Anderisenom și Eric Bina. Mozaic a avut o capacitate destul de limitată, dar open source a devenit baza pentru multe dezvoltări ulterioare. [3]

Principiul de funcționare CGI

Algoritmul Generalizat lucreaza prin CGI pot fi reprezentate după cum urmează:

Mecanisme pentru schimbul de date

  • prin intermediul variabilelor de mediu;
  • linia de comandă;
  • standard de intrare;
  • prin ieșirea standard.

variabile de mediu

serverul creează un variabile de mediu specifice, prin care trece cererea de informații de serviciu și de date în cadrul programelor externe. Toate variabilele pot fi împărțite în variabilele de mediu generale, care sunt generate sub orice formă de anchetă, și variabile orientată către investigație.

Variabilele de mediu generale

  • SERVER_SOFTWARE - definește numele și versiunea serverului.
  • SERVER_NAME - definește serverul de nume de domeniu.
  • GATEWAY_INTERFACE - determină versiune a interfeței.

mediu orientate spre anchetă

Identificarea utilizatorului și mașina lui

Variabilele care determină tipul și lungimea informațiilor transmise de la client la server

  • CONTENT_TYPE - definește MIME-tip de date transmise la script. Folosind această variabilă, utilizați un script pentru a gestiona diferite formate de date.
  • CONTENT_LENGTH - determină cantitatea de date în octeți, care sunt transmise la script-ul. Această variabilă este extrem de important în schimbul de date prin metoda POST, adică. A. Nu există nici o altă cale de a determina dimensiunea datelor care urmează să fie citite de la intrarea standard.

Transmiterea și alte variabile de mediu. În acest caz, „HTTP_“ prefix înainte indică și numele. Un caz separat este că variabilele generate de titlul documentului în HTML META-tagah. Ele sunt trecute în antetul mesajului, iar unele servere pot genera variabile de mediu ale câmpurilor de antet.

opțiuni pentru linia de comandă

Linia de comandă este folosită numai atunci când cererea de tip ISIN-Dex. Atunci când linia de comandă nu este utilizat formulare HTML sau orice alte cereri de tip nespecificat. În cazul în care serverul a stabilit că script-ul este accesat prin ISINDEX-documente, criteriul de căutare este extras din adresa URL și transformate în linie de comandă opțiuni. În același timp, un semn al parametrilor de separare este un simbol „+“. cerere tip este determinată de prezența sau absența „=“ caracter în interogare. Dacă acest caracter este, cererea nu este o ISINDEX cerere. în cazul în care simbolul nu este prezent, cererea este un membru de tip ISIN-DEX. Parametrii extrase din interogare sunt plasate într-o serie de argumente în linia de comandă argv. În acest caz, după separarea are loc de la convertirea toate caracterele hexazecimale în ASCII-coduri. În cazul în care numărul de parametri depășește limitele stabilite în limbajul de comandă, cum ar fi în coajă, se formează linia de comandă nu se produce, iar datele sunt transmise numai prin QUERY_STRING. În general vorbind, trebuie să vă gândiți în avans cu privire la cantitatea de date transmise la script-ul, și selectați metoda de acces corespunzătoare. Dimensiunea variabilelor de mediu este de asemenea limitată, iar în cazul în care aveți nevoie pentru a transfera o mulțime de date, este mai bine pentru a alege metoda POST, și anume transmiterea de date prin intermediul standard de intrare.

Format standard de intrare

ieșire standard Format

Ieșirea standard a script-ul este folosit pentru a returna datele la server. Când această ieșire constă dintr-un antet și datele reale. Rezultatul script-ul poate fi transmis la client, fără modificări de pe partea de server în cazul în care script-ul permite de a construi un HTTP antet complet, în caz contrar serverul modifică antetul în conformitate cu specificația HTTP. Subiectul mesajului ar trebui să fie separat de corpul mesajului printr-o linie goală. De obicei, în script-uri indică doar trei domenii de HTTP-titlu: tip de conținut. Locație. Stare.

Tip de conținut

Acesta a declarat în cazul în care script-ul în sine generează un document „din zbor“, și se întoarce la client. În acest caz, documentul propriu-zise nu rămâne în sistemul de fișiere al serverului. Atunci când se utilizează acest tip de script-uri ar trebui să fie conștienți de faptul că nu toate serverele și clienții lucreze așa cum este prezentat la dezvoltator de script-ul. Deci, atunci când specificați tipul de conținut: text / html, unii clienți nu pune în aplicare scanarea textul rezultat pentru prezența graficii sale integrate. De obicei, în textul de tip conținut indică textul tipuri / simplu și text / html.

Aplicații CGI

Aceste caracteristici sunt furnizate de faptul că CGI-script-ul poate fi conectat la o bază de date sau contactați sistemul de fișiere al serverului. Astfel, CGI-script poate stoca informații într-un tabel de bază de date sau un fișier și să-l la cerere, care nu se poate face prin intermediul HTML.

Avantajele CGI

Multe oportunități sunt acum dublate de tehnologii CGI, cum ar fi, cum ar fi DHTML, ActiveX sau Java-applet-uri. Principalele avantaje ale utilizării server-side scripting este că puteți fi sigur că toți clienții (cu rare excepții, sunt în general asociate cu blocarea accesului la anumite resurse la nivel de firewall) va fi capabil de a lucra cu aplicația server. Programul-Client același poate fi pur și simplu dezactivat în browser-ul dvs., sau nu este acceptat.

dezavantajele CGI

Cel mai mare dezavantaj al acestei tehnologii sunt cerințele sporite privind performanța serverului Web. Faptul este că fiecare apel la CGI-aplicație determină generarea unui nou proces, cu toate deasupra capului însoțitor. În cazul în care cererea este scris greșit, este posibil ca acesta este, de exemplu, va bucla. Browser întrerupe conexiunea după un timp de expirare, dar pe server de proces secundar va continua până când administratorul nu-l elimina prin forță. În acest sens, script-urile client au un avantaj semnificativ, t. K. Ele sunt executate la nivel local.

Un alt dezavantaj al CGI este mai mic, în comparație cu alte soluții, un server web securizat. Setarea incorectă a drepturilor de acces la resursele de server din CGI-aplicații ar putea pune în pericol nu numai performanța serverului de web, dar, de asemenea, securitatea informațiilor. Cu toate acestea, orice tehnologie de rețea poate fi considerată potențial nesigur prin definiție. [5]

notițe