❖ WSGI理解

作者: Solomon_Xie | 来源:发表于2019-01-14 03:21 被阅读0次

理解CGI

CGI (Common Gateway Interface),常听说但不太明白。实际上一句话就可以概括:

"CGI offers a standard protocol for web servers to execute programs that execute like console applications (also called command-line interface programs) running on a server that generates web pages dynamically. " -Wiki

也就是说,CGI的作用就是把HTTP Server接收到的请求,转换为本机上其它应用程序(如Shell命令行、Python、Java等)可以理解的命令。也就是说,让网页的互动像直接与本地程序互动一样简单。

简而言之:
CGI就是一个语言转换器。将网络语言转换为具体的各种程序语言。

基于这个特性,CGI只是一个泛指。而针对不同的语言、程序,自然也就有不同的CGI来转换。
常见的CGI如下:

  • 适于Python:
    • WSGI
    • mod_python
  • 多语言适用:
    • FastCGI (Python, node.js, PHP, Ruby, Java, Go, C++, Lua ...)

理解基于Python语言的WSGI

WSGI (Web Server Gateway Interface),是一种Python官方(PEP 333)制定的一个网络交互规范:客户端 -> HTTP服务器 -> WSGI -> Application(Wordpress/Flask/Django)。反过来发送给客户端也是一样。

每个语言对于网络服务器的处理可能不一样:如同Ruby的Rack。Python使用wsgi,即一种通用的接口标准或者接口协议,实现了python web程序与服务器之间交互的通用性。

wsgi是将HTTP Server的参数进行Python化,封装为request对象传递给apllication命名的func对象并接受其传出的response参数,由于其处理了参数封装和结果解析,才有python世界web框架的泛滥,在python下,写web框架就像喝水一样简单。(参考:https://www.zhihu.com/question/19998865/answer/27033737

有了这个东西,Flask或者django等等的python web开发框架,就可以轻松地部署在不同的web server上了,不需要做任何特殊配置(也需要一些小小的配置调整)

"如全称代表的那样,WSGI不是服务器,不是API,不是Python模块,更不是什么框架,而是一种服务器和客户端交互的接口规范."

在客户端向服务器发出请求时,HTTP Server服务器接收请求,进行socket、tcp、udp等基层操作,全部验证通过后,再把请求内容发给WSGI。然后WSGI作为一个Python关口,把请求数据全部转换为Python程序能理解的信息,再把这些信息发送给具体的某个app应用,比如Flask,或Django。这时候,Flask等框架接收到的,就是一般的Python化的数据了,而不是网络规范的数据。也就是说,Flask等框架,完全无需考虑Protocols网络协议等东西,专心做好自己的网站就好了。

imageimage

WSGI 组件

在WSGI规范下,web组件被分成三类:client, server, and middleware.

相关文章

  • ❖ WSGI理解

    理解CGI CGI (Common Gateway Interface),常听说但不太明白。实际上一句话就可以概括...

  • wsgi、uwsgi、uWSGI、nginx、apache

    参考: cgi、wsgi、uwsgi 与 uWSGI都是啥? 做python Web开发你要理解:WSGI & u...

  • WSGI&ASGI

    此文档用于解读理解WSGI和ASGI两个概念,目标解决一下几个问题: 什么是WSGI 什么是ASGI WSGI和A...

  • WSGI,uwsgi, uWSGI理解

    WSGI 全称:Web Server Gateway Interface 翻译过来就是Web服务器网关接口;WSG...

  • python wsgi+Odoo 的启动

    参考:WSGI初探Odoo web 机制浅析python的 WSGI 简介python wsgi 简介 wsgi的...

  • wsgi&uwsgi

    WSGI协议 WSGI, aka Web Server Gateway Interface, WSGI 不是服务器...

  • 关于wsgi协议的理解

    基础概念 首先要了解 WSGI 规范的概念,WSGI(Web Server Gateway Interface)规...

  • wsgi在web服务中的作用

    一、理解http请求的过程 理解wsgi全称,理解这个概念,首先要理解http协议,就是请求从浏览器到服务端经过了...

  • wsgi简介

    wsgi是什么? WSGI:Web Server Gateway Interface。WSGI接口定义非常简单,它...

  • WSGI简介

    结合案例Python部署 & 示例代码wsgi-demo All in One WSGI WSGI = Pytho...

网友评论

    本文标题:❖ WSGI理解

    本文链接:https://www.haomeiwen.com/subject/gvtirqtx.html