Egy egyszerű fastcgi-szerver és fastcgi-klientaperl, assembler, C - programozó blogja, perl,
FastCGI-szerver alapú POE :: Component :: FastCGI és FastCGI-alapú kliens FCGI :: Client
Mi CGI
CGI - olyan szabvány, amely leírja, hogy a szerver fut a CGI-szkript, hogyan kell átadni a HTTP-kérés paraméterei, mint a CGI-script kell továbbítani, hogy az eredményeket a szerver.
Amikor dolgozik CGI, web-szerver kezelni minden kérésre létrehoz egy új folyamatot.
Hogy nyújtson be egy CGI-szkript információk az ilyen kérelmet, web-szerver futtatása előtt a szkript létrehoz egy speciális környezeti változók, és írják fel az összes információt az aktuális kérés.
CGI-szkript hozzáférést kap az értékeket minden változó tekintetében operációs rendszer funkcióit, ezáltal CGI-szkript kap teljes körű tájékoztatást a kérés. A kérés test (ha van ilyen) szállított STDIN (stdin) forgatókönyvet, és a mérete - CONTENT_LENGTH bájt.
Ha a CGI-szkript akar küldeni valamit vissza, akkor elküldi az összes szabvány kimenetre script. Meg kell határozni, a CGI-header (mezők Content-Type. Location. Status), egy üres sor, amely elválasztja a fejlécet a test válasz válasz test maga, amelynek típusa nem lett megadva a Content-Type.
Web-szerver megkapja a STDOUT választ a CGI-szkript, generál HTTP-válasz, és elküldi az ügyfélnek.
Mi FastCGI
Ellentétben a CGI FastCGI használ állandóan futó folyamatok feldolgozására több megkeresés.
CGI-program együttműködik a szerverre STDIN és STDOUT futó folyamatokat.
FastCGI-eljárásokat alkalmazunk, hogy kommunikáljon a Unix Domain Sockets vagy TCP / IP szerver. Ez a következő előnyökkel rendelkezik a hagyományos CGI-programok: FastCGI-program futtatható nemcsak ugyanazon a szerveren, hanem bárhol a hálózatban. Lekérdezés feldolgozása is kapható több FastCGI-folyamatok párhuzamosan futó. Lehetőség van egyidejűleg több FastCGI szerver, eloszlatva a terhelést Ezek között az nginx vagy lighttpd.
Miután a kapcsolat FastCGI folyamat webszerver kezdődik az adatcserét közöttük, egy egyszerű protokoll, amely megoldja a két problémát: a szervezet a kétirányú kommunikációt egyetlen vegyület (emulációs stdin, stdout, STDERR) és szervezése több független FastCGI-ülés egyetlen kapcsolat.
Minden adat csomagolva egy FastCGI-rekord - egy protokoll adat. FastCGI-bejegyzés szolgál szervezni kétirányú kommunikációt és multiplexelés több munkamenet belül ugyanaz a vegyület.
FastCGI-tétel egy fix hosszúságú fejlécet, majd egy szintező tartalom és változó hosszúságú adat. Mindegyik bejegyzés tartalmaz 7 elemet.
Egy példa egy egyszerű FastCGI-szerver alapú POE-alkatrészek - POE :: Component :: FastCGI
Mit FastCGI szerver? Folyamatosan figyeli a megadott portot kapott új kéréseket a web-szerver, kibont a felvételt, és kezeli a kérést. Majd választ küld vissza. Web-szerver kell hozzá a http-fejlécek és elküldi a választ az ügyfél.