CGI, FastCGI 理解
来源:互联网 发布:在线p图软件 编辑:程序博客网 时间:2024/05/22 04:55
1. 先了解一下网关的概念:
HTTP 扩展和接口的发展是由用户需求驱动的。要在 Web 上发布更复杂资源的需求出现时,人们很快就明确了一点:单个应用程序(me+: 比如说nginx服务器)无法处理所有这些能想到的资源。
为了解决这个问题,开发者提出了网关(gateway)的概念,网关可以作为某种翻译器使用,它抽象出了一种能够到达资源的方法。网关是资源和应用程序(me+: nginx)之间的粘剂。应用程序可以(通过 HTTP 或其他已定义的接口)请求网关来处理某条请求,网关可以提供一条响应。网关可以向数据库发送查询语句,或者生成动态的内容,就像一个门一样:进去一条请求,出来一个响应。
有些网关会自动将 HTTP 流量转换为其他协议,这样 HTTP 客户端无需了解其他协议,就可以与其他应用程序进行交互了。
理解:从用途上大概可以将网关分为两大类,协议网关和资源网关。CGI 和 FastCGI 属于资源网关。资源网关就像一种规范或者说是一组接口,支持这个规范的资源(me+: 比如说PHP程序)就可以被资源网关调用到从而返回数据给服务器(me+: 比如nginx),服务器再将数据返回给用户。
2. CGI 和 FastCGI
第一个流行的应用程序网关 API 就是通用网关接口(Common Gateway Interface,CGI)。CGI 是一个标准接口集,Web 服务器可以用它来装载程序以响应对特定 URL 的 HTTP 请求,并收集程序的输出数据,将其放在 HTTP 响应中回送。(me+: 和上面的理解好像是一样的意思。囧~)
me+: 所以CGI起到了将服务器和众多资源分离并连接也就是一个中间人的作用,这样的好处是服务器只用管调用CGI就行了,降低了服务器的复杂度,也能防止一些糟糕的资源对它造成的破坏(如果这些资源直接与服务器相连,造成的错误可能会引发服务器溃)。
但是,这种分离会造成性能的耗费。为每条 CGI 请求引发一个新进程的开销是很高的,会限制那些使用 CGI 的服务器的性能,并且会加重服务端机器资源的负担。为了解决这个问题,人们开发了一种新型 CGI -- 并将其恰当地称为快速 CGI。这个接口模拟了 CGI,但它是作为持久守护进程运行的,消除了为每个请求建立或拆除新进程所带来的性能损耗。
参考资料:《HTTP权威指南》
- CGI, FastCGI 理解
- cgi与fastcgi的理解
- 理解CGI、FastCGI、PHP-CGI、PHP-FPM
- CGI、FastCGI、WSGI网关协议理解
- 快速理解 FastCGI、PHP-CGI、PHP-FPM
- CGI、FastCGI、php-fpm个人理解
- 关于CGI、fastcgi、PHP-CGI、PHP-FPM的理解
- cgi fastcgi php-cgi php-fpm mod_php之间的理解
- cgi-fastcgi
- cgi, fastcgi
- CGI --fastCGI
- PHP cgi fastcgi & php-fpm 的关系以及理解
- CGI,FASTCGI,PHP-CGI,PHP-FPM等概念的个人理解
- FastCGI 与CGI区别
- cgi与fastcgi区别
- cgi && fastcgi && php-fpm
- CGI及FastCGI介绍
- CGI,FastCGI的区别
- JAVASRIPT正则表达式
- 如何系统地学习数据挖掘
- 查找之二分查找
- poj3660Cow Contest
- Warning: strftime() [function.strftime]: It is not safe to rely on the system's timezone settings.
- CGI, FastCGI 理解
- 汽车销售大王朱孝明:18元到2000万的发家致富路
- 实例经验教程:代理服务器架设与维护(代理服务器学习)
- liggdx 游戏摇杆类
- 【MySQL 复制】20G以下的mysql数据库从库快速搭建
- python中的异常处理
- C#调用 Oracle 存储过程例子代码
- make a package for tcl << Tcl/Tk
- java demo在eclips编译正常 在命令行编译报错问题