Fastcgi - основи веб-програмування

Що таке FastCGI¶

На відміну від CGI. FastCGI використовує постійно запущені процеси для обробки безлічі запитів.

CGI-програми взаємодіють з сервером через STIN і STDOUT запущеного процесу.

FastCGI-процеси використовують для зв'язку з сервером Unix Domain Sockets або TCP / IP. Це дає наступне перевагу над звичайними CGI-програмами: FastCGI-програми можуть бути запущені не тільки на цьому ж сервері, але і де завгодно в мережі. Також можлива обробка запитів кількома FastCGI-процесами, що працюють паралельно. Можна використовувати кілька FastCGI-серверів, розподіляючи навантаження між ними за допомогою nginx або lighttpd.

Після встановлення з'єднання FastCGI-процесу з web-сервером. між ними починається обмін даними, з використанням простого протоколу, вирішального два завдання: організація двонаправленого обміну в рамках одного з'єднання (для емуляції STDIN. STDOUT. STDERR) і організація декількох незалежних FastCGI-сесій в рамках одного з'єднання.

Всі дані, що передаються обертаються в FastCGI-записи - одиницю даних протоколу. FastCGI-записи служать для організації двонаправленого обміну і мультиплексування декількох сесій в рамках одного з'єднання.

FastCGI-запис складається з заголовка фіксованої довжини, наступного за ним вмісту і вирівнюють даних змінної довжини. Кожен запис містить 7 елементів.