一文搞懂 CGI、FastCGI、WSGI、uWSGI、uwsgi

中间件

中间件:介于a和b之间的东西都称之为中间件

服务器中间件:nginx,apache
数据库中间件:介于应用程序和数据库之前的, MyCat
消息队列中间件:kafka,rabbitmq,Rocketmq

1. CGI

CGI (公共网关接口)是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据API与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎所有服务器都支持CGI,可用任何语言编写CGI

  • 通用网关接口(Common Gateway Interface/CGI)是一种重要的互联网技术,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。CGI描述了服务器和请求处理程序之间传输数据的一种标准

  • CGI程序可以用任何脚本语言或者是完全独立编程语言实现,只要这个语言可以在这个系统上运行。

  • 用来规范 web 服务器传输到 php 解释器中的数据类型以及数据格式,包括URL、查询字符串、POST数据、HTTP header等,也就是为了保证web server传递过来的数据是标准格式的

  • 一句话总结: 一个标准,定义了客户端服务器之间如何传数据

2. FastCGI

  • 快速通用网关接口(Fast Common Gateway Interface/FastCGI)是一种让交互程序与Web服务器通信的协议。FastCGI是早期通用网关接口(CGI)的增强版本。

  • FastCGI致力于减少网页服务器与CGI程序之间互动的开销,从而使服务器可以同时处理更多的网页请求。

  • 使用FastCGI的服务器:

Apache HTTP Server (部分)
Cherokee HTTP Server
Hiawatha Webserver
Lighttpd
'Nginx'	
LiteSpeed Web Server
Microsoft IIS

nginx 是一个符合 fastcgi 协议的软件,处于浏览器和web程序之间,主要做请求转发负载均衡,也可以称之为服务器中间件

在这里插入图片描述

3. WSGI

Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。自从WSGI被开发出来以后,许多其它语言中也出现了类似接口。

  • wsgi server (比如uWSGI) 要和 wsgi application(比如django )交互,uwsgi需要将过来的请求转给django 处理,那么uWSGI 和 django的交互和调用就需要一个统一的规范,这个规范就是WSGI WSGI(Web Server Gateway Interface)

  • WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口。自从 WSGI 被开发出来以后,许多其它语言中也出现了类似接口。

  • WSGI 的官方定义是,the Python Web Server Gateway Interface。从名字就可以看出来,这东西是一个Gateway,也就是网关。网关的作用就是在协议之间进行转换。

  • WSGI 是作为 Web 服务器与 Web 应用程序或应用框架之间的一种低级别的接口,以提升可移植 Web 应用开发的共同点。WSGI 是基于现存的 CGI 标准而设计的

  • 一句话总结: 为Python定义的web服务器和web框架之间的接口标准

4. uWSGI

uWSGI 是符合 wsgi 协议的 web 服务器,上面标准的具体实现,还有以下具体实现

wsgiref,werkzeug: 	一个是符合wsgi协议的web服务器+工具包(封装了一些东西)
uWSGI: 				用c语言写的,性能比较高
gunicorn: 			python写的
tornado: 			也可以部署django项目

在这里插入图片描述

5. uwsgi

uwsgi 是一种线路协议而不是通信协议,是 uWSGI 服务器实现的独有的协议,用于定义传输信息的类型,是用于前端服务器与 uwsgi 的通信规范。因此常用于在 uWSGI 服务器与其他网络服务器的数据通信。

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值