Рубрики
Uncategorized

В чем разница между fastcgi и CGI

Автор оригинала: David Wong.

Предисловие

В настоящее время CGI в основном не используется, небезопасен и имеет чрезвычайно низкую производительность, все больше и больше используются встроенные веб-расширения, быстрый CGI. Например, ISAPI Microsoft iis, PHP – модуль apache и php-cgi nginx . CGI, встроенные модули и FastCGI-это три лучшие производительности, которые относятся к fast_cgi с самой высокой скоростью, но требуют дополнительных процессов. Давайте рассмотрим различия между CGI и FASTCGI.

Введение в CGI:

CGI широко использовался в 2000 году или ранее. Ранее веб-серверы обычно обрабатывали только статические запросы. Что делать, если они столкнулись с динамическим запросом? В соответствии с содержанием запроса веб-сервер затем разветвляет новый процесс для запуска внешних программ на C (или сценариев Perl…), процесс вернет обработанные данные на веб-сервер, и, наконец, веб-сервер отправит содержимое пользователю, и процесс просто разветвляется также завершится. Если в следующий раз пользователь запросит изменить динамический сценарий, веб-сервер снова разветвляет новый процесс и повторяет его снова и снова.

Представляем встроенные веб-модули:

Позже появился более продвинутый способ, позволяющий веб-серверам иметь встроенные интерпретаторы Perl или PHP. То есть, поскольку эти интерпретаторы объединены в модули, веб-сервер запустит эти интерпретаторы во время запуска. Когда поступают новые динамические запросы, веб-сервер самостоятельно анализирует эти сценарии Perl или PHP, что экономит процесс и повышает эффективность.

Внедрение fastcgi:

Способ fastcgi заключается в том, что, когда веб-сервер получает запрос, он снова не разветвляет процесс (потому что процесс запускается при запуске веб-сервера и не завершается). Веб-сервер передает содержимое непосредственно процессу (межпроцессная связь, но fastcgi использует другие методы, TCP-связь). Процесс обрабатывает запрос и обрабатывает результат. Вернитесь на веб-сервер и дождитесь следующего запроса вместо выхода.

Таблицы различий между fastcgi и cgi:

Например, на сервере теперь 100 000 слов. Каждый раз, когда клиент отправляет строку и спрашивает, сколько слов имеет префикс этой строки. Затем вы можете написать программу, которая строит дерево попыток, а затем переходит непосредственно к попытке каждый раз, когда пользователь запрашивает ее. Но если мы используем cgi, попытка исчезнет после завершения запроса. Когда мы начнем процесс в следующий раз, нам нужно будет построить новое дерево три, что слишком неэффективно. В способе fastcgi дерево три устанавливается в начале процесса, а затем указанный префикс может быть запрошен непосредственно в дереве три.