Tornado可以当作HTTP server,直接TCP开始实现HTTP服务,这也就是为啥说Tornado可以不经过WSGI。实际上它也不是CGI。

CGI是指通过stdin和stdout进行HTTP的请求处理。

WSGI则是包裹成一个Python对象来传递请求和响应。

WSGI是写入PEP的python的HTTP接口,然而缺点是这个借口是完全同步的,

Tornado最大的特点是可以异步处理请求,然而如果使用WSGI,那就不能做到了。

官方文档明确指出,将Tornado应用作为WSGI应用时异步接口全部不可用。

相反,Tornado可以作为HTTP server向其它框架提供WSGI容器,所以可以用Tornado来做apache/nginx/guicorn之类的事情。

Tornado: HTTP 服务器、WSGI 框架(很少用)

CGI: 古老的动态 HTTP 服务方式,极其低效、容易出漏洞。Perl 盛行的时代很常用。

WSGI: Python 的 HTTP 接口协议

FastCGI: PHP 等的接口协议。PHP 也是唯一一个把 FastCGI 实现得像 CGI 的 FastCGI 实现(HTTP 头可通过环境变量访问)

uwsgi: 它是一个软件。是 WSGI、PSGI 等等的容器。也就是它实现了这些协议。同样实现了 WSGI 的还有 gunicorn 之类的。

nginx: 可以作为代理,把 HTTP 传给 Tornado。也可以作为网关,把 HTTP 转成 FastCGI、uwsgi 协议传给后边的程序

tornado cgi wsgi uwsgi之间的关系的更多相关文章

  1. uWSGI、uwsgi、WSGI、之间的关系,为什么要用nginx加uWSGI部署。

    WSGI 协议 WSGI:是一种协议规范,起到规范参数的作用,就像告诉公路一样,规定超车靠右行,速度不低于90km/h,等.但这一切都是对双方进行沟通,比如,重庆到武汉这条高速路,这儿重庆和武汉就各为 ...

  2. 如何理解Nginx, WSGI, Flask之间的关系

    概览 之前对 Nginx,WSGI(或者 uWSGI,uwsgi),Flask(或者 Django),这几者的关系一存存在疑惑.通过查阅了些资料,总算把它们的关系理清了. 总括来说,客户端从发送一个 ...

  3. uWSGI和WSGI之间的关系

    一.WSGI 协议 WSGI:是一种协议规范,起到规范参数的作用,就像告诉公路一样,规定超车靠右行,速度不低于90km/h,等.但这一切都是对双方进行沟通,比如,重庆到武汉这条高速路,这儿重庆和武汉就 ...

  4. 如何理解Nginx, WSGI, Flask(Django)之间的关系

    如何理解Nginx, WSGI, Flask(Django)之间的关系 值得指出的是,WSGI 是一种协议,需要区分几个相近的名词: uwsgi 同 wsgi 一样也是一种协议,uWSGI服务器正是使 ...

  5. Django学习——分组查询、图书管理系统项目、wsgi, uwsgi, cgi, fastcgi

    1 分组查询 # 分组查询 # 查询每一个出版社id,以及图书平均价格(单表) # 原生sql # select publish_id,avg(price) from app01_book group ...

  6. php CGI、Fastcgi、PHP-FPM的详细介绍与之间的关系

    以下PHP CGI.Fastcgi.PHP-FPM的一些信息归纳和汇总----->详细介绍与之间的关系 一:CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的 web ...

  7. uwsgi nginx与django之间的关系以及各自的作用

    首先要明确几个概念及其作用(注意大小写的区别): WSGI uWSGI uwsgi Nginx WSGI 是一种协议,不是任何包不是任何服务器,就和 TCP 协议一样.它定义了 Web 服务器和 We ...

  8. 一文读懂Python web框架和web服务器之间的关系

    我们都知道 Python 作为一门强大的语言,能够适应快速原型和较大项目的制作,因此被广泛用于 web 应用程序的开发中. 在面试的过程中,大家或多或少都被问到过这样一个问题:一个请求从浏览器发出到数 ...

  9. python Web开发之 WSGI & uwsgi & uWSGI

    首先弄清下面几个概念: WSGI 全称是Web Server Gateway Interface,WSGI不是服务器,python模块,框架,API或者任何软件,只是一种规范,描述web server ...

  10. Java Servlet与Web容器之间的关系

    自从计算机软件开发进入网络时代,就开始涉及到通讯问题.在客户/服务器(也叫C/S应用)时期,每个软件都有自己的客户端和服务器端软件.并且客户端和服务器端之间的通讯协议差别也很大.后来随着互联网的发展, ...

随机推荐

  1. VUE基础 · 绑定(1)

    前端三大框架:Angular.js.React.js.Vue.js,目前最热的是Vue,并且使用的热度还在递增中. Vue已经将操作页面的方法封装好,我们只需要对数据进行修改就可以完成页面的显示.Vu ...

  2. docker容器启动报错Unable to access jarfile

    1.错误表现 Errot: Unable to access jarfile /opt/run-java/deployments/chiano.jar 2.原因:容器的基础镜像对jar的权限有要求 3 ...

  3. Echart 使用

    查看前端面试题小程序 大量面试题和答案,请微信查看 // var list = [1,1,54,5,5,85,8,8,5,5,8,8,85,8,8,5,5,85,88,85,8,88,8,8,8,8, ...

  4. 苹果电脑快捷键使用 Mac快捷键大全详细介绍

    相信有很多刚开始使用苹果电脑操作系统的用户,都并不了解整个MAC操作系统,就连一般快捷键的使用都不清楚,这让人很感觉很苦恼.分享一下Mac快捷键大全的详细介绍,记住这些常用的快捷键,是你熟悉苹果电脑的 ...

  5. 8.golang语言学习,运算符介绍

    1.算术运算 自增,自减,只能单独使用,++,--只能写在变量后面 2.赋值运算符 优先级,单目运算,赋值运算从右到左运算,其余从左到右,无三目运算,用if实现 3.比较运算符/关系 4.逻辑运算符 ...

  6. Spring入门之使用 spring 的 IOC 解决程序耦合(Spring环境搭建)(03-01)

    3.1 案例的前期准备 1.使用的案例是:账户的业务层和持久层的依赖关系解决(就是有两个账户实现转账之类的事情,后期继续用这个案例)2.准备环境:在开始 spring 的配置之前,我们要先准备一下环境 ...

  7. 记录一个二级域名绑定动态ip的操作

    家里的路由器,还有一台路由器需要登录,以前一直用f3322的动态域名绑定,感觉使用也还可以,但最近几个月,只要是f3322.com的二级域名全部被chrome标注为危险. 所以准备换一个免费的二级域名 ...

  8. php success error 封装跳转

    /** * Warning提示信息 * @param string $type 提示类型 默认支持success, error, info * @param string $msg 提示信息 * @p ...

  9. Python day 02 知识点学习

    1.格式化输出中,如果想单纯打出%,可以在%后面再跟一个%来转义达到效果.如下图: 2.while else 循环中,如果while循环被 break 打断,不会执行else结果,如下图:  初始编码 ...

  10. js处理树形数组扁平化

        // 树形数组扁平化 const extractTree = (data: TagsParams[]) => { if (!data.length) return []; const l ...