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

What is the difference between fastcgi and cgi?

Mar 21, 2019 pm 03:51 PM
cgi nginx php php-fpm

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 of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP's Purpose: Building Dynamic Websites PHP's Purpose: Building Dynamic Websites Apr 15, 2025 am 12:18 AM

PHP is used to build dynamic websites, and its core functions include: 1. Generate dynamic content and generate web pages in real time by connecting with the database; 2. Process user interaction and form submissions, verify inputs and respond to operations; 3. Manage sessions and user authentication to provide a personalized experience; 4. Optimize performance and follow best practices to improve website efficiency and security.

PHP and Python: Different Paradigms Explained PHP and Python: Different Paradigms Explained Apr 18, 2025 am 12:26 AM

PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.

PHP and Python: Code Examples and Comparison PHP and Python: Code Examples and Comparison Apr 15, 2025 am 12:07 AM

PHP and Python have their own advantages and disadvantages, and the choice depends on project needs and personal preferences. 1.PHP is suitable for rapid development and maintenance of large-scale web applications. 2. Python dominates the field of data science and machine learning.

How to check the name of the docker container How to check the name of the docker container Apr 15, 2025 pm 12:21 PM

You can query the Docker container name by following the steps: List all containers (docker ps). Filter the container list (using the grep command). Gets the container name (located in the "NAMES" column).

PHP: Handling Databases and Server-Side Logic PHP: Handling Databases and Server-Side Logic Apr 15, 2025 am 12:15 AM

PHP uses MySQLi and PDO extensions to interact in database operations and server-side logic processing, and processes server-side logic through functions such as session management. 1) Use MySQLi or PDO to connect to the database and execute SQL queries. 2) Handle HTTP requests and user status through session management and other functions. 3) Use transactions to ensure the atomicity of database operations. 4) Prevent SQL injection, use exception handling and closing connections for debugging. 5) Optimize performance through indexing and cache, write highly readable code and perform error handling.

Why Use PHP? Advantages and Benefits Explained Why Use PHP? Advantages and Benefits Explained Apr 16, 2025 am 12:16 AM

The core benefits of PHP include ease of learning, strong web development support, rich libraries and frameworks, high performance and scalability, cross-platform compatibility, and cost-effectiveness. 1) Easy to learn and use, suitable for beginners; 2) Good integration with web servers and supports multiple databases; 3) Have powerful frameworks such as Laravel; 4) High performance can be achieved through optimization; 5) Support multiple operating systems; 6) Open source to reduce development costs.

Choosing Between PHP and Python: A Guide Choosing Between PHP and Python: A Guide Apr 18, 2025 am 12:24 AM

PHP is suitable for web development and rapid prototyping, and Python is suitable for data science and machine learning. 1.PHP is used for dynamic web development, with simple syntax and suitable for rapid development. 2. Python has concise syntax, is suitable for multiple fields, and has a strong library ecosystem.

How to configure nginx in Windows How to configure nginx in Windows Apr 14, 2025 pm 12:57 PM

How to configure Nginx in Windows? Install Nginx and create a virtual host configuration. Modify the main configuration file and include the virtual host configuration. Start or reload Nginx. Test the configuration and view the website. Selectively enable SSL and configure SSL certificates. Selectively set the firewall to allow port 80 and 443 traffic.

See all articles