437 字
2 分钟
什么是CGI

CGI(Common Gateway Interface,通用网关接口)是一种让 Web 服务器与外部程序(脚本或二进制)交互的标准协议,诞生于 1990 年代,至今仍在某些场景下使用。
一句话理解:CGI 是最早的“后端接口规范”,把浏览器发来的 HTTP 请求转成一个进程,运行外部程序,再把结果回传给浏览器


1. 工作原理#

浏览器 → HTTP 请求 → Web 服务器 → 启动 CGI 程序 → 返回 HTML → 浏览器

  • Web 服务器(Apache、Nginx、IIS 等)收到请求后,根据配置把请求交给一个可执行文件(脚本或二进制)。
  • 服务器会把 HTTP 头、POST 数据、查询字符串等通过环境变量或标准输入传给程序。
  • CGI 程序处理完后,通过标准输出返回 HTTP 头 + 正文。
  • 服务器再把结果回给浏览器。

2. CGI vs 现代技术#

特性CGIFastCGIWSGINode.js/Go 内置服务器
进程模型每次请求启动新进程(慢)长驻进程池(快)Python 专用协议单进程/协程
性能★☆☆☆☆★★★★☆★★★★☆★★★★★
语言任意(Shell/Perl/C/Python)任意Python/Java任意
部署复杂度
今天是否常用❌ 很少✅ 仍用于 PHP-FPM✅ Python Web✅ 主流

3. CGI在哪里还有应用?#

  • 老旧系统/嵌入式设备(如路由器 Web 管理界面)。
  • 教学演示:最直观展示“HTTP → 程序 → HTTP”流程。
  • 一次性脚本:内部工具快速暴露 HTTP 接口,无需框架。

4. 总结#

CGI 是 Web 后端“老祖宗”,每请求一进程、简单通用但性能差;如今已让位给 FastCGI、WSGI、反向代理 等更高效方案,但理解它有助于理解整个 Web 架构演进。

什么是CGI
https://zhanyin.site/posts/什么是cgi/
作者
Leo
发布于
2025-08-06
许可协议
CC BY-NC-SA 4.0