Web Server
包括Apache、Nginx、Lighttpd等这些常见的静态服务器,负责接受HTTP请求、解析HTTP请求、发送HTTP响应这些底层工作。
通用网关接口,它是一段程序,运行在Web Server上。
CGI程序可以是Python脚本,PERL脚本,SHELL脚本,C或者C++程序等。
优点:CGI程序能专注于动态内容的生成。
缺点:每次有请求,服务器都会fork and exec,每次都会有一个新的进程产生,开销比较大。基本淘汰了。
作为一个协议规范,WSGI不同于CGI,其位于Web Application与Web Server之间。
Web Server接收HTTP请求,封装一系列环境变量,按照WSGI接口标准调用注册的WSGI Application,最后将响应返回给客户端。
开发基于WSGI实现框架(Flask、Django等)的应用,能放置在实现WSGI规范的Web Server上运行。