CGI与WSGI

Web Server

包括Apache、Nginx、Lighttpd等这些常见的静态服务器,负责接受HTTP请求、解析HTTP请求、发送HTTP响应这些底层工作。

CGI(Common Gateway Interface)

通用网关接口,它是一段程序,运行在Web Server上。

CGI程序可以是Python脚本,PERL脚本,SHELL脚本,C或者C++程序等。

优点:CGI程序能专注于动态内容的生成。

缺点:每次有请求,服务器都会fork and exec,每次都会有一个新的进程产生,开销比较大。基本淘汰了。

WSGI(Python Web Server Gateway Interface)

作为一个协议规范,WSGI不同于CGI,其位于Web Application与Web Server之间。

Web Server接收HTTP请求,封装一系列环境变量,按照WSGI接口标准调用注册的WSGI Application,最后将响应返回给客户端。

开发基于WSGI实现框架(Flask、Django等)的应用,能放置在实现WSGI规范的Web Server上运行。

你可能感兴趣的:(Python)