FastCGI server-based POE :: Component :: FastCGI, și bazate pe FastCGI FCGI client :: Client
Ce este CGI
CGI - este un standard care descrie modul în care serverul ar trebui să ruleze CGI-script, cum ar trebui să treacă parametrii HTTP-cerere ca CGI-script trebuie să transmită rezultatele lor la server.
Atunci când se lucrează cu CGI, web-server pentru a se ocupa de fiecare cerere creează un nou proces.
Pentru a trimite o informație CGI-script unei astfel de cereri, web-server înainte de a rula script-ul creează un variabile speciale de mediu, și să le scrie toate informațiile despre solicitarea curentă.
CGI-script are acces la valorile tuturor variabilelor în ceea ce privește funcțiile sistemului de operare, astfel, CGI-script primește informații complete despre solicitare. Organismul cerere (dacă există) este furnizat la stdin (stdin) script-ul și o dimensiune - bytes CONTENT_LENGTH.
În cazul în care CGI-script-ul vrea să trimită ceva înapoi, trimite totul de ieșire la script-ul STDOUT. Este necesar pentru a specifica CGI-antet (câmpurile Content-Type. Location. Stare), o linie goală, care separă antetul de răspunsul corpului, organismul de răspuns în sine al cărui tip a fost specificat în Content-Type.
Web-server primește prin răspuns STDOUT din CGI-script, generează HTTP-răspuns și trimite-l la client.
Ce este FastCGI
Spre deosebire de CGI, FastCGI folosește procese care rulează în permanență pentru prelucrarea unei multitudini de cereri.
CGI-programe interacționează cu serverul prin procesul de funcționare stdin și STDOUT.
FastCGI-procese sunt folosite pentru a comunica cu Sockets domeniu sau TCP / IP a serverului Unix. Acesta are următoarele avantaje față de CGI-programe convenționale: FastCGI-program poate fi rulat nu numai pe același server, dar, de asemenea, oriunde în rețea. procesarea Query este de asemenea disponibil în mai multe FastCGI-procese care rulează în paralel. Este posibil de a utiliza mai multe FastCGI-server, distribuirea sarcinii între ele folosind Nginx sau lighttpd.
După ce conexiunea este FastCGI-proces de web-server, între ele începe schimbul de date folosind un protocol simplu care rezolvă două probleme: organizarea de comunicare bidirecțională într-o singură conexiune (să imite STDIN, STDOUT, STDERR) și organizarea mai multor FastCGI-sesiuni independente într-o singură conexiune.
Toate datele sunt învelite într-un FastCGI record - un protocol date. FastCGI-intrări servesc pentru a organiza comunicarea bidirecțională și mai multe sesiuni de multiplexare în cadrul aceluiași compus.
FastCGI-intrare constă dintr-un antet de lungime fixă, urmat de un conținut de nivelare și date de lungime variabilă. Fiecare intrare conține 7 elemente.
Un exemplu de un simplu POE-componente pe bază de FastCGI-server - POE :: Component :: FastCGI
Ce face FastCGI-server? El ascultă în mod constant la un port specificat pentru a primi noi cereri de web-server, despachetează înregistrarea și se ocupă de cererea. Apoi trimite înapoi un răspuns. Web-server trebuie să adăugați http-antetele și trimite răspunsul la client.