经过两天的学习吧,终于有点清楚了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模式). |
关于cgi和fastcgi的几点认识
最新推荐文章于 2024-07-10 17:35:49 发布
2008-12-09 0:31