HTTP服务器接口规范

CGI

HTTP服务器接受浏览器发送的请求,对于静态请求,HTTP服务器自己发送响应,对于动态请求,HTTP服务器需要调用调用(fork and exec)响应的程序来处理请求,再由HTTP服务器转交给浏览器,这个HTTP服务器与处理程序直接通信的规范就是CGI,即Common Gateway Interface,通用网关接口。这个处理动态网页请求的程序叫CGI程序。下面一python cgi程序为例说明整个过程,如下图所示

 FastCGI

FASTCGI是对CGI的开放的扩展, 改良版CGI。与为每个请求创建一个新的进程不同,FastCGI使用持续的进程来处理一连串的请求。这些进程由FastCGI服务器管理,而不是web服务器。 当进来一个请求时,web服务器把环境变量和这个页面请求通过一个socket比如FastCGI进程与web服务器(都位于本地)或者一个TCP connection(FastCGI进程在远端的server farm)传递给FastCGI进程。

SCGI

SCGI协议是一个CGI(通用网关接口)协议的替代品· 它是一个应用与HTTP服务器的接口标准,类似于FastCGI,但是它设计得更为容易实现。

WSGI

WSGI,即Python Web Server Gateway Interface ,Python Web 服务器网关接口,它是 Python 应用程序和 WEB 服务器之间的一种接口。它的作用,类似于FCGI 或 FASTCGI 之类的协议的作用。
WSGI 的目标,是要建立一个简单的普遍适用的服务器与 WEB 框架之间的接口


备注

Fluppython WSGI 的一种实现。

Spawn-fcgi:管理fast-cgi进程的程序

php-fpm: php fastcgi进程的管理器


Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
永久连接: http://www.nfvschool.cn/?p=183
标签:

发表评论