CGI原理

原创 2016年06月02日 10:31:25

CGI简介

CGI全称是“通用网关接口”(Common Gateway Interface),它可以让一个客户端,从网页浏览器向执行在Web服务器上的程序请求数据。CGI描述了客户端和这个程序之间传输数据的一种标准。CGI的一个目的是要独立于任何语言的,所以CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。

CGI运行原理

  1. 客户端访问某个 URL 地址之后,通过 GET/POST/PUT 等方式提交数据,并通过 HTTP 协议向 Web 服务器发出请求。
  2. 服务器端的 HTTP Daemon(守护进程)启动一个子进程。然后在子进程中,将 HTTP 请求里描述的信息通过标准输入 stdin 和环境变量传递给 URL 指定的 CGI 程序,并启动此应用程序进行处理,处理结果通过标准输出 stdout 返回给 HTTP Daemon 子进程。
  3. 再由 HTTP Daemon 子进程通过 HTTP 协议返回给客户端。
  4. 上面的这段话理解可能还是比较抽象,下面我们就通过一次 GET 请求为例进行详细说明。
  5. 如图所示,本次请求的流程如下:

    1. 客户端访问 http://127.0.0.1:9003/cgi-bin/user?id=1
    2. 127.0.0.1 上监听 9003 端口的守护进程接受到该请求
    3. 通过解析 HTTP 头信息,得知是 GET 请求,并且请求的是 /cgi-bin/ 目录下的 user 文件。
    4. 将 uri 里的 id=1 通过存入 QUERY_STRING 环境变量。
    5. Web 守护进程 fork 一个子进程,然后在子进程中执行 user 程序,通过环境变量获取到id
    6. 执行完毕之后,将结果通过标准输出返回到子进程。
    7. 子进程将结果返回给客户端。



Nginx解析PHP的原理 | CGI、FastCGI及php-fpm的关系

Nginx解析PHP的原理,CGI/FastCGI以及PHP-Fpm的关系. 一、PHP+Nginx应运而生的场景. 随着互联网的发展,用户对此接受面广,数据流的增大使得Web端的运行承载压力日益...
  • qq_36031499
  • qq_36031499
  • 2016年12月28日 18:50
  • 1386

Apache服务器技术之CGI环境变量和POST原理

在CGI程序工作的过程中,客户端和服务器端都要将信息保存在某些环境变量中。环境变量在CGI的程序设计中占自很重要的地位。当服务器收到一个请求时,首先要收集能得到的所有相关信息,并把它们存入环境变量。环...
  • climb_up
  • climb_up
  • 2013年11月30日 17:14
  • 1317

C语言构建WEB管理系统(五):CGI实现上传文件

在很多网站中经常会遇到有向服务器上传文件的情况,比如在博客或空间中上传自己的头像。这一节我们来看一下在后台如何使用C语言实现文件上传这一功能。 首先创建一个html文档来上传文件,然后使用wiresh...
  • gentleliu
  • gentleliu
  • 2016年03月16日 09:33
  • 2865

Nginx学习笔记3—FastCGI与CGI解释器的区别,及其工作原理

一、FastCGI是什么:是一个可伸缩、高速的在web server和脚本语言间通迅的接口   CGI工作原理:每当客户请求CGI的时候,WEB服务器就请求操作系统生成一个新的CGI解释器进程(如p...
  • chinabluexfw
  • chinabluexfw
  • 2012年10月06日 21:18
  • 354

Nginx学习笔记3—FastCGI与CGI解释器的区别,及其工作原理

一、FastCGI是什么:是一个可伸缩、高速的在web server和脚本语言间通迅的接口  CGI工作原理:每当客户请求CGI的时候,WEB服务器就请求操作系统生成一个新的CGI解释器进程(如php...
  • m13666368773
  • m13666368773
  • 2012年09月25日 16:46
  • 3669

CGI的作用和原理

===========>>>>>摘抄自:http://blog.chinaunix.net/uid-9688646-id-3084940.html CGI代表Common Gateway Inter...
  • sinat_29830917
  • sinat_29830917
  • 2017年06月25日 12:19
  • 692

nginx、cgi通信原理

nginx+fastcgi+php-fpm是很多大型网站的服务端架构,也都知道fastcgi在性能上比CGI优异很多,但很少有人解释nginx是怎么跟fastcgi通信的,下面我们来解释下 网上对C...
  • clh604
  • clh604
  • 2014年02月28日 11:56
  • 5771

Nginx学习笔记3—FastCGI与CGI解释器的区别,及其工作原理

Nginx学习笔记3—FastCGI与CGI解释器的区别,及其工作原理 一、FastCGI是什么:是一个可伸缩、高速的在web server和脚本语言间通迅的接口   ...
  • zzjjiandan
  • zzjjiandan
  • 2014年06月24日 14:21
  • 864

FASTCGI与CGI解释器的区别,及其工作原理

http://www.cnphp6.com/archives/14919  一、FastCGI是什么: 是一个可伸缩、高速的在web server和脚本语言间通迅的接口 CGI工作原理:每当...
  • scdxmoe
  • scdxmoe
  • 2015年09月07日 17:58
  • 348

CGI的基本原理

一.基本原理 CGI:通用网关接口(Common Gateway Interface)是一个Web服务器主机提供信息服务的标准接口。通过CGI接口,Web服务器就能够获取客户端提交的信息,转交给...
  • nyist327
  • nyist327
  • 2014年10月15日 19:18
  • 1210
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CGI原理
举报原因:
原因补充:

(最多只允许输入30个字)