在web开发中,快速处理客户端的请求对于用户体验至关重要,fastcgi技术就以其高性能和高效的特点被广泛应用。所谓fastcgi,即是一种CGI的替代方案。
相比于CGI,fastcgi有着如下优势:
- 将CGI解释器进程启动的开销和每次请求调用CGI的开销分开,解决了CGI中著名的效率低的问题。
- 通过共享进程池降低了请求之间切换的后果,极大的提升了服务器的性能。
- 通过在前置的WEB服务器上进行负载均衡,能够支持更加优秀的横向扩展能力。
而fastcgi协议,其实简单来说就是将CGI协议分为两部分。首先,fastcgi将CGI的socket通信协议改为了基于TCP/IP的协议。其次,fastcgi对处理请求的CGI引擎进行改进,具备一下特性:
- 使用了类似线程池的技术,重载和idling的处理方式大大提高了并发处理能力。
- fastcgi采用了二进制协议,也就是说,传输数据并不是简单的文本,这样就大大加快了数据传输速度。
fastcgi解决了CGI性能瓶颈的问题,同时兼顾了安全性和可扩展性。在LAMP技术栈中得到广泛应用,被用于千万级别的web应用,成为web服务的标配。