0
点赞
收藏
分享

微信扫一扫

简述CGI与FASTCGI的区别

343d85639154 2022-03-12 阅读 124
linux运维

简述CGI与FASTCGI的区别

1、CGI

CGI:Common Gateway Interface,公共网关接口,它是一段程序,运行在服务器上,提供同客户端HTML页面的接口,通俗的讲CGI就像是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器,再把服务器执行的结果返还给HTML网页;用CGI可以实现表单的处理,数据库查询,发送电子邮件,基于Web的数据库访问等许多操作,最常见的CGI程序就是计数器。CGI使网页变得不是静态的,而是交互式的。

CGI 在2000年或更早的时候用得比较多,以前web服务器一般只处理静态的请求,如果碰到一个动态请求怎么办呢?web服务器会根据这次请求的内容,然后会 fork 一个新进程来运行外部的 C 程序或者bash,perl脚本等,这个进程会把处理完的数据返回给web服务器,最后web服务器把内容发送给用户,刚才fork的进程也随之退出。 如果下次用户还请求改动态脚本,那么web服务器又再次fork一个新进程,周而复始的进行。

CGI可以让一个客户端,从网页浏览器通过http服务器向执行在网络服务器上的程序传输数据;CGI描述了客户端和服务器程序之间传输的一种标准

CGI请求流程:Client – (http协议) --> httpd – (cgi协议) --> application server (program file) – (mysql协议) --> mysql

2、FASTCGI

FASTCGI的方式是,web服务器收到一个请求时,不会重新fork一个进程(因为这个进程在web服务器启动时就开启了,而且不会退出),web服务器直接把内容传递给这个进程(进程间通信,但fastcgi使用了别的方式,tcp方式通信),这个进程收到请求后进行处理,把结果返回给web服务器,最后自己接着等待下一个请求的到来,而不是退出

FASTCGI请求流程:Client – (http协议) --> httpd – (fastcgi协议) --> fastcgi服务器 – (mysql协议) --> mysql

3、CGI和FASTCGI的区别

CGI:兼职,一次性的过河拆桥式的服务
FASTCGI:专职,全周期的持续式的服务

名称在web服务器方面在对数据进行处理的进程方面
CGIfork一个新的进程进行处理读取参数,处理数据,然后就结束生命期
FASTCGI用TCP方式跟远程机子上的进程或本地进程建立连接要开启TCP端口,进入循环,等待数据的到来,处理数据
举报

相关推荐

0 条评论