• WSGI&ASGI


    如何解读理解WSGIASGI两个概念

    CGI (通用网关接口, Common Gateway Interface ), 定义了客户端和Web服务器的交流方法的一个程序。
    例如正常情况下客户端发来一个请求,根据HTTP协议Web服务器将请求内容解析出来,进过计算后,再将加us安出来的内容封装好,

    例如服务器返回一个HTML页面,并且根据HTTP协议构建返回内容的响应格式。涉及到TCP连接、HTTP原始请求和相应格式的这些,都由一个软件来完成,这时,以上的工作需要一个程序来完成,而这个程序便是CGI。

    WSGI (Web服务器网关接口(Python Web Server Gateway Interface) 是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。

    WSGI 区分为两部分:一种为“服务器”或“网关”,另一种为“应用程序”或“应用框架”
    所谓的WSGI中间件同时实现了API的两方,即在WSGI服务器和WSGI应用之间起调解作用:从WSGI服务器的角度来说,中间件扮演应用程序,而从应用程序的角度来说,中间件扮演服务器。中间件具有的功能:

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

    总结一下,其实可以说WSGI就是基于Python的以CGI为标准做一些扩展。

    ASGI 异步网关协议接口,一个介于网络协议服务Python应用之间的标准接口,能够处理多种通用的协议类型,包括HTTPHTTP2WebSocket

    目前的常用的WSGI主要是针对HTTP风格的请求响应模型做的设计,并且越来越多的不遵循这种模式的协议逐渐成为Web变成的标准之一,例如WebSocket

    ASGI尝试保持在一个简单的应用接口的前提下,提供允许数据能够在任意的时候、被任意应用进程发送和接受的抽象。并且同样描述了一个新的,兼容HTTP请求响应以及WebSocket数据帧的序列格式。允许这些协议能通过网络或本地socket进行传输,以及让不同的协议被分配到不同的进程中。

    WSGI和ASGI的区别在哪

    以上,WSGI是基于HTTP协议模式的,不支持WebSocket,而ASGI的诞生则是为了解决Python常用的WSGI不支持当前Web开发中的一些新的协议标准。同时,ASGI对于WSGI原有的模式的支持和WebSocket的扩展,即ASGIWSGI的扩展。

     

    ASGI

    • Uvicorn : Uvicorn是使用uvloophttptools的闪电般快速的ASGI服务器实现
    • Hypercorn ; Hypercorn是基于sans-io hyper,h11h2wsproto库的ASGI Web服务器,其灵感来自Gunicorn
    • Daphne : Daphne 是一个纯Python编写的应用于UNIX环境的由Django项目维护的ASGI服务器。它扮演着ASGI参考服务器的角色。

     

    WSGI

    • uWSGI : uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。
    • Gunicorn : Gunicorn是一个unix上被广泛使用的高性能的Python WSGI UNIX HTTP Server。

     

    WSGI / uwsgi / uWSGI 这三个概念的区分

    • WSGI看过前面小节的同学很清楚了,是一种通信协议。
    • uwsgi同WSGI一样是一种通信协议。
    • 而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。

     

    https://www.jianshu.com/p/65807220b44a

     
  • 相关阅读:
    数组循环三种方式
    PHP上传RAR压缩包并解压目录
    把session写到数据库中
    PHP错误处理方式
    PHP异常处理机制
    css文字的强制换行和超出宽度省略变成点儿
    Mybatis之@Provider的使用方式
    rsync+ssh 枯木
    RHEL6下squid代理之正向代理 枯木
    MySQL体系结构 枯木
  • 原文地址:https://www.cnblogs.com/Mint-diary/p/14798687.html
Copyright © 2020-2023  润新知