Home >Backend Development >PHP Tutorial >What is the difference between fastcgi and cgi?

What is the difference between fastcgi and cgi?

不言
不言forward
2019-03-21 15:51:263070browse

The content of this article is about the difference between fastcgi and cgi? It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

Currently no one uses CGI, which is unsafe and extremely low in performance. More and more people are using built-in web extensions and fastCGI. For example, Microsoft iis's ISAPI, apache's php module, and nginx's php-cgi. CGI, built-in modules, and fastcgi are the three best performers, and fast_cgi is the fastest, but requires additional processes. Let’s analyze the difference between CGI and FASTCGI.

Introduction to CGI method:

cgi was used more in 2000 or earlier. In the past, web servers Generally, only static requests are processed. What should I do if I encounter a dynamic request? The web server will then fork a new process to run an external C program (or perl script...) based on the content of this request. This process will return the processed data to the web server, and finally the web server will send the content to User, the process just forked also exited. If the user requests to change the dynamic script next time, the web server will fork a new process again, and the cycle will continue.

Introduction to web built-in modules:

Later, a more advanced way appeared, the web server can have a built-in perl interpreter or php interpreter. In other words, these interpreters are made into modules, and the web server will start these interpreters when it starts. When new dynamic requests come in, the web server parses these perl or php scripts by itself, eliminating the need to re-fork a process and improving efficiency.

Fastcgi method introduction:

The fastcgi method is that when the web server receives a request, it will not re-fork a process (because this process is started on the web server is turned on when the request is enabled and will not exit), the web server directly passes the content to this process (inter-process communication, but fastcgi uses other methods, tcp communication), this process processes the request after receiving it, and returns the result to the web server, and finally wait for the next request to arrive instead of exiting.

The difference between fastcgi and cgi table:

What is the difference between fastcgi and cgi?

For example: The server now has 100,000 words. The client will send a string every time and ask how many words are prefixed by this string. Then you can write a program that will build a trie tree, and then you can directly search the trie every time the user requests it. But if you use cgi, the trie will be gone after this request. When the process is started next time, a new trie tree will have to be created. This is too inefficient. With fastcgi, the trie tree in this lesson is established when the process starts, and you can directly query the specified prefix on the trie tree later.


The above is the detailed content of What is the difference between fastcgi and cgi?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete