WSGI和CGI

WSGI:Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)

作为一个协议规范,WSGI不同于CGI,基于现存的CGI标准而设计其位于Web Application与Web Server之间。

是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。自从WSGI被开发出来以后,许多其它语言中也出现了类似接口。WSGI是作为Web服务器与Web应用程序或应用框架之间的一种低级别的接口,以提升可移植Web应用开发的共同点。WSGI是基于现存的CGI标准而设计的。

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

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

WSGI区分为两个部份:一为“服务器”或“网关”,另一为“应用程序”或“应用框架”。在处理一个WSGI请求时,服务器会为应用程序提供环境资讯及一个回呼函数(Callback Function)。当应用程序完成处理请求后,透过前述的回呼函数,将结果回传给服务器。所谓的 WSGI 中间件同时实现了API的两方,因此可以在WSGI服务和WSGI应用之间起调解作用:从WSGI服务器的角度来说,中间件扮演应用程序,而从应用程序的角度来说,中间件扮演服务器。“中间件”组件可以执行以下功能:

1、重写环境变量后,根据目标URL,将请求消息路由到不同的应用对象。
2、允许在一个进程中同时运行多个应用程序或应用框架。
3、负载均衡和远程处理,通过在网络上转发请求和响应消息。
4、进行内容后处理,例如应用XSLT样式表。

cgi:(Common Gateway Interface)

通用网关接口,它是一段程序,描述了客户端和服务器程序之间传输数据的一种标准,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据,运行在Web Server上。

CGI程序独立于任何语言的,可以是Python脚本,PERL脚本,SHELL脚本,C或者C++程序等。

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

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

参考博客1
参考博客2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值