注:本文为作者学习FastCGI的时候,从多篇文章中看到的内容进行摘录。暂时未加验证及思考筛选。留作后续学习之用。会在相应地方标明摘录来源。
FastCGI的工作原理是:
转载来源 :http://hi.baidu.com/%D2%D0%CC%EC/blog/item/d8f532d1cb22a1349b50274f.html
在上述情况中,你可以想象 CGI通常有多慢。每一个Web请求PHP都必须重新解析php.ini、重新载入全部dll扩展并重初始化全部数据结构。使用FastCGI,所有这些 都只在进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistent database connection)可以工作。
FastCGI的技术原理
转载来源:http://hi.baidu.com/fangle_life/blog/item /f7afa9ecc1f590dfb31cb1cb.html
如果想了解FastCGI的技术原理就要了解何为”短生存期应用程序”,何为”长生存期应用程序”。
先从CGI技术开刀,以下是CGI技术的理论:每次当客户请求一个CGI的时候,Web服务器就请求操作系统生成一个新的CGI进程。当CGI满足要求后,服务器就杀死这个进程。服务器对客户端的每个请求都要重复这样的过程。 而FastCGI技术的理论为:FastCGI程序一旦产生后,他可以持续工作,足够满足客户的请求直到被明确的终止。如果你希望通过协同处理来提高程序的性能,你可以请求Web服务器运行多个 FastCGI 应用程序的副本。
CGI就是所谓的短生存期应用程序,FastCGI就是所谓的长生存期应用程序。
由于 FastCGI程序并不需要不断的产生新进程,可以大大降低服务器的压力。并且产生较高的应用效率。
自今,较为流行的Java语言Servlet 技术在设计上是以参考FastCGI的技术运行所设计。