一、WSGI
WSGI ( Web Server Gateway Interface )是一个网络服务器和网络应用的通用接口的规范或者用于Python框架。
由于python开发人员在网络框架的选择限制了网络服务器的选择是python 网络框架的问题。Python应用经常设计只用在 CGI、FastCGI和一些客户API的其中一个上面。
WSGI则用来解决这样的矛盾。它构造一个网络服务器和网络客户端间底层或者框架的接口,使得更多应用可以广泛使用。在WSGI规范上编写的应用可以在任何使用WSGI规范的服务器上使用。
WSGI 应用可以堆积。那些在堆积中的中间称为中间件,必须在WSGI接口的两端应用和服务器执行。
WSGI服务器只接收来自于客服端的请求并将请求传给应用,然后应用再把响应发给客服端。
学习用WSGI规范创建应用并不重要。使用中间件只需要理解如何与应用或者框架一起使用,除了没有中间件的情况才需要学习WSGI规范创建应用。
二、uwsgi
uwsgi协议是一个uWSGI服务器自有的协议,它用于定义传输信息的类型(type of information),每一个uwsgi packet前4byte为传输信息类型描述,它与WSGI相比是两样东西
三、uWSGI
uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。
四、WSGI、uwsgi和uWSGI区别(摘自baidu)
-
WSGI是一种通信协议。
-
uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信。
-
而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。