zoukankan      html  css  js  c++  java
  • wsgi、uwsgi、asgi协议的关系

    WSGI, UWSGI和ASGI

    首先是介绍什么是WSGI, 接着是什么是UWSGI, 接着是ASGI

            首先需要介绍的是CGI, CGI全称(Common Gateway Interface, 通用网关接口),定义的是客户端与Web服务器交流方式的一个程序.例如正常情况下客户端发送来一个请求,CGI根据HTTP协议的将请求内容进行解析, 经过计算以后会将计算出来的内容封装好,比如服务器返回一个html页面,并且根据http协议构建返回的内容格式,涉及到的tcp连接、http原始请求和相应的格式这些, 都是由一个软件来完成,完成以上的工作需要一个程序来完成, 便是CGI。

      关于WSGI, 全称Web服务器网关接口(Python Web Server Gateway Interface, WSGI),是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口..简单来说就是用来处理Web服务端与客户端的通信问题的,(以django框架为例,使用的是wsgiref模块,该模块的功能)

    以django框架为例,使用的是wsgiref模块,该模块的功能是:
        监听8000端口,把http请求根据WSGI协议将其转换到applcation中的environ参数, 然后调用application函数.
        wsgiref会把application函数提供的响应头设置转换为http协议的响应头,把application的返回(return)作为响应体,根据http协议,生成响应,返回给浏览器.

    UWSGI是一个Web服务器, 实现了WSGI协议,uwsgi,http等协议,

    uwsgi是一个二进制协议, 能够携带任何类型的信息,uwsgi数据包的前4个字节用于面描述信息的类型,该协议主要工作在tcp方式下,uwsgi是一种线路协议而不是通信协议,因此常用于在uWSGI服务器与其他网络服务器的数据通信.

    uwsgi 协议是一个 uWSGI服务器自有的协议,用于定义传输信息的类型

    Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。WSGI是一种Web服务器网关接口。它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范。

    对于管理人员来说,uWSGI服务器提供了各种配置方法:命令行、环境变量、XML、INI、YAML、JSON、SQlite3数据库和LDAP。

    除此之外,它的设计完全模块化,这意味着,可以使用不同的插件以便满足不同的技术应用,从而实现兼容性.
    关于ASGI

     是异步网关协议接口,介于网络服务和python饮用应用之间的标准接口,能够处理多种通用的协议类型,包括http,http2和websocket.

    关于WSGI和ASGI的区别是

    WSGI是基于http协议模式开发的,不支持websocket,而ASGI的诞生解决了python中的WSGI不支持当前的web开发中的一些新的协议标准,同时ASGI支持原有模式和Websocket的扩展, 即ASGI是WSGI的扩展.

    关于ASGI的应用案例, 下一篇博客我们再聊

    更多精彩,可以关注楼主的公众号,

    最全面的django面试题总结: 回复django面试题即可获取, pycharm供给激活压缩包, 回复pycharm破解包即可获取,破解步骤在我的这一篇博客(点我直达)已经破解百次, 屡试不爽.

    以及其他楼主精心打造的原创文章,欢迎各位来访.

  • 相关阅读:
    使用C39HrP48DhTt字體生成條型碼
    GUI設計禁忌
    music
    AADL的四种经典设计模式
    Model to Text工具Acceleo使用教程(七)——模板服务
    Model to Text工具Acceleo使用教程(二)——体系结构
    Model to Text工具Acceleo使用教程——背景知识
    P/NP/NPC/NPhard概念的图形解释
    哥德巴赫猜想穷举验证算法及实现
    Model to Text工具Acceleo使用教程(五)——模板服务
  • 原文地址:https://www.cnblogs.com/f-g-f/p/11294559.html
Copyright © 2011-2022 走看看