关于cgi和fastcgi的几点认识

关于cgi和fastcgi的几点认识
2008-12-09 0:31

经过两天的学习吧,终于有点清楚了cgi和fastcgi是干吗的了!

1.cgi是Web服务器和外部程序的沟通桥梁?这个“其他程序”可以使用任何计算机语言来编写,它通过CGI这个接口从HTTP服务器取得输入,然后把运行的结果又通过CGI这个接口交给HTTP服务器,而HTTP服务器把这个结果送给浏览器。

2.cgi具体能干什么?就是在最初开始有网站的时候,那时候的页面全是以html语言写的,后来出现了CGI,网站不在有固定不变的图形和文字了.CGI可以写小从简单的网页计数器,留言版,大至搜索引擎,可做线上实时交易的电子商务,网络下单,评论等功能.

3.cgi的运行模式为fork-and-execute 模式,CGI的程序每次执行时都要花费时间去复制一个新的进程,这会占用过多的资源。如果有大量的request,那么服务器反应会变的很慢.随着网站使用量的日增,会大大的影响网站的效率.

为了克服cgi的瓶颈,提出了一些解决之道.

NSAPI,应用在unix系统上,用NSAPI改写网站应用程序最麻烦的是你要把所有程序编译成动态函式库 (share library),以供 Enterprise Server 在 run-time 时期可以动态呼叫这些程序。由于利用 NSAPI 所写的程序是直接从 Web Server 的执行空间内被呼叫,所以速度最快,但是程序必须遵循 Enterprise Server 的撰写规则,而且一旦程序发生错误,Web Server 也会受影响.

IISAPI,相较于NSAPI,在Microsoft NT IIS (Internet Information Server) 平台就是ISAPI了.类似NSAPI,利用ISAPI撰写网站应用程序,必须把应用程序编译成动态函式库,也就是DLL.它的执行速度也很快,但要遵循ISAPI的撰写规则和数据结构,程序发生错误时也会影响 IIS Server 的正常运作.而且应用平台只是Microsoft NT.

荐于以上解决之到的应用特定平台和固定的缺点,fastcgi应运而生.

不同于NSAPI及ISAPI以及其它的网页服务器语言(如 ASP, PHP3, mod_perl),FastCGI比较类似 CGI,它只是一个网站应用程序设计的规格,因此先天上不受任何网站服务器平台,操作系统平台,以及开发语言的限制,但又能大幅改善CGI效率不良的问题.FastCGI的特色如下:

1. FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去,fork,一次(这是CGI最为人诟病的fork-and-execute模式). 
2. FastCGI可在任何平台上使用,Netscape Enterprise及IIS都有FastCGI的模块可供使用,Apache上也有mod_fastcgi可用. 
3. FastCGI支持C/C++,Perl,Tcl,Java,Python等程序语言. 
4. FastCGI的应用程序亦兼容于CGI.即FastCGI的应用程序也可以当成CGI来执行. 
5. 现有的CGI程序要改写成FastCGI非常简单,最少可能只需要多加入三行程序代码. 
6. FastCGI的侦错方式与 CGI 大同小异,只要带入程序所需的环境变量及参数,即可在命令列模式执行或侦错. 
7. FastCGI应用程序的写作方式与 CGI类似,除了几项原则要特别注意外,FastCGI的写作方式跟CGI几乎一样,与学习 Web Server API比较起来,FastCGI 简单多了. 
8. FastCGI支授分布式运算(distributed computing),即FastCGI程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值