前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ASGI 协议知识

ASGI 协议知识

作者头像
KEVINGUO_CN
发布于 2020-03-17 10:15:52
发布于 2020-03-17 10:15:52
1.3K0
举报
文章被收录于专栏:全栈全栈全栈全栈

在使用ASGI 特性之前,先让我们了解下,什么是 ASGI?

ASGIWSGI,都是一种 Web 服务网关接口协议,是在CGI的标准上构建的。

CGI(通用网关接口, Common Gateway Interface),简单来说就是解析浏览器等客户端发送给服务端的请求,并组装需要返回的 HTTP 请求的一种通用协议,处理这个过程的程序,我们就可以叫 CGI 脚本。互联网早起的动态网页都是基于CGI标准的。

WSGI,是一种 Python 专用的 Web 服务器网关接口,它分为两部分"服务器(或网关)"和"应用程序(或应用框架)"。「服务器」,一般独立于应用框架,为应用程序运行提供环境信息和一个回调函数(Callback Function)。当应用程序完成处理请求后,透过回调函数,将结果回传给服务器。常用的WSGI服务器有: uwsgigunicon。「应用程序」,是各种实现了WSGI标准的 Python web 框架了,常用的有DjangoFlask等。

ASGI(Asynchronous Server Gateway Interface)是 Django 团队提出的一种具有异步功能的 Python web 服务器网关接口协议。能够处理多种通用的协议类型,包括 HTTP,HTTP2 和 WebSocket。WSGI是基于 HTTP 协议模式的,不支持WebSocket,而ASGI的诞生则是为了解决 Python 常用的 WSGI 不支持当前 Web 开发中的一些新的协议标准(WebSocket、Http2 等)。同时,ASGI向下兼容WSGI标准,可以通过一些方法跑WSGI的应用程序。常用的「服务器」有DaphneUvicorn

更多ASGI资料可参考文档

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
区分wsgi、uWSGI、uwsgi、php-fpm、CGI、FastCGI
在学习Python web开发时候,可能会遇到诸如uwsgi,wsgi等名词,下面通过梳理总结探究它们之间的关系。
DevOps在路上
2023/05/16
9220
区分wsgi、uWSGI、uwsgi、php-fpm、CGI、FastCGI
Python 异步 ASGI 服务器及框架
在 Python3.5 之后增加 async/await 特性之后,异步编程变得异常火爆,越来越多开发者投入异步的怀抱。
Python编程与实战
2020/03/19
3.3K0
Python 异步 ASGI 服务器及框架
详述WebSocket原理
WebSocket协议和HTTP协议一样,都是在ISO七层模型的最顶层——应用层。WebSocket允许服务器端主动向客户端推送数据。在WebSocket协议中,客户端浏览器和服务器只需要完成一次握手就可以创建持久性的连接,并在浏览器和服务器之间进行双向的数据传输——全双工通讯。
码农编程进阶笔记
2021/07/20
2.2K0
Django3.0新鲜出炉!全面解读新特性,ASGI真香实锤,不来了解一下?
写这篇文章完全是机缘巧合,想想已经好长时间没有关注过Django了,虽然Django一直霸占着Python Web开发界的王座,但是由于各种原因自从使用Asyncio以来一直使用Aiohttp这个框架。碰巧因为之前写了几天的《2019逆向复习系列》,脑子里充斥着“逆向”,“逆向”,“逆向”。今天想换换思路写点其他的文章,偶然间看到前两天Django 3.0版本推出,简单看了下Django 3.0的新特性,看到Django 3.0正式版本终于支持ASGI了,内心真是一阵澎湃,当时放弃Django去选择其他的异步框架也是因为它不支持异步,现在它终于完全拥抱异步了,我也就可以重拾Django,尝尝鲜啦!
云爬虫技术研究笔记
2019/12/17
2.8K0
Django3.0新鲜出炉!全面解读新特性,ASGI真香实锤,不来了解一下?
ASGI Servers库详解
ASGI(Asynchronous Server Gateway Interface)是一种Python异步服务器网关接口,用于构建异步Web应用程序,类似于WSGI(Web服务器网关接口)但支持异步代码。ASGI服务器库用于实现ASGI协议,其中包括常用的框架,如FastAPI、Starlette等。在这个教程中,我将向你展示如何使用ASGI服务器库来构建一个简单的异步Web应用程序。
Michel_Rolle
2024/02/10
2.9K0
Python - WSGI 和 ASGI 服务器
WSGI wiki 上的解释 Web Server Gateway Interface Web 服务器网关接口 是为 Python 定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口 WSGI 的问题 随着移动网络的发展,Web 技术也在升级,比如 WebSocket、HTTP/2,HTTP/3 WSGI 应用是一个单调用、同步接口,即输入一个请求,返回一个响应;这个模式无法支持长连接或者 WebSocket 这样的连接 即使想办法将 WSGI 应用改成异步,还有另一个限制:一个 U
小菠萝测试笔记
2021/09/23
8920
wsgi和asgi
wsgi和asgi都是Web服务器网关接口。它们是一种规范,描述了Web服务器如何与Web应用程序(客户端)通信,以及如何将Web应用程序链接在一起以处理一个请求。
zy010101
2021/12/08
1.4K0
关于python ASGI 服务器,你知道多少?
unicorn 就是 ASGI 服务器。那么 ASGI 服务器是什么?为什么 FastAPI 要结合 ASGI 服务器使用呢?
shengjk1
2025/05/16
1250
关于python ASGI 服务器,你知道多少?
FastAPI入门
FastAPI是一个现代、快速的Python Web框架,用于快速构建API。它基于 Pydantic 和 Starlette,使得代码更加简洁且易于绶护。
@小森
2024/07/25
2510
FastAPI入门
闪电侠 Uvicorn
答:Uvicorn 是基于 uvloop 和 httptools 构建的非常快速的 ASGI 服务器。
somenzz
2020/11/25
1.6K0
django3 websockets
现在Django 3.0附带了对ASGI的支持,将Websockets添加到Django应用中不需要任何额外的依赖关系。 在本文中,您将学习如何通过扩展默认的ASGI应用程序来使用Django处理Websocket。 我们将介绍如何在示例ASGI应用程序中处理Websocket连接,发送和接收数据以及实现业务逻辑。
py3study
2020/10/16
3.6K0
Python Web 部署方式大全
学过PHP的都了解,php的正式环境部署非常简单,改几个文件就OK,用FastCgi方式也是分分钟的事情。相比起来,Python在web应用上的部署就繁杂的多,主要是工具繁多,主流服务器支持不足,在了解Python的生产环境部署方式之前,先明确一些概念!很重要!
马哥linux运维
2019/02/21
1.7K0
Django Channels实现Zabbix实时告警到页面
Geewolf:《FastDFS分布式存储实战》作者,国内第一本《Ansible中文手册》译者、Flamingo、FMS作者
Zabbix
2021/02/03
2.3K0
协议:WSGI,uWSGI,Nginx,CGI协议简介
当咱们部署完一个应用程序,浏览网页时具体的过程是怎样的呢?首先咱们得有一个 Web 服务器来处理 HTTP 协议的内容,Web 服务器得到客户端的请求,交给应用程序,应用程序处理完,返回给 Web 服务器,这时 Web 服务器再返回给客户端。Web 服务器与应用程序之间显然要进行交互,这时就出现了不少 Web 服务器与应用程序之间交互的规范,最先出现的是 CGI,后来又出现了改进 CGI 性能的FasgCGI,Java 专用的 Servlet 规范,Python 专用的 WSGI 规范等等。有了统一标准,程序的可移植性就大大提升了。
Freedom123
2024/03/29
2540
协议:WSGI,uWSGI,Nginx,CGI协议简介
所谓 ASGI
本文的主体内容大部分来自对 ASGI Documentation 原文的翻译,其余部分为本人对原文的理解,在整理过程中我没有刻意地区分翻译的部分和我个人理解的部分,这两部分内容被糅杂在一起形成了本文。因此,请不要带着「本文的内容是百分之百正确」的想法阅读。如果文中的某些内容让你产生疑惑,你可以给我留言与我讨论或者对比 ASGI Documentation 的原文加以确认。
Ryoma
2022/09/19
1.3K0
FastAPI or Flask?从用户出发,才是王道
前段时间,Milvus demo 使用的服务框架从 Flask 切换为 FastAPI,这一改动引发了社区小伙伴们讨论:为什么要改服务框架?改了以后有什么好处?为了解答社区小伙伴们的疑问,Zilliz 数据工程师云梅写下这篇文章。
Zilliz RDS
2021/11/23
3.8K0
Django学习笔记之uWSGI详解
WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口。自从 WSGI 被开发出来以后,许多其它语言中也出现了类似接口。
Jetpropelledsnake21
2019/02/15
3K0
responder初体验
responder 是 @kennethreitz 新开发的一个项目, 是一个基于 Python 的 HTTP 服务框架. 底层用了 Starlette 的框架, Starlette 是一款轻量级的 ASGI 框架/工具包, 可以用 Starlette 构建高性能的异步 IO 服务.
用户1416054
2018/12/24
1.6K0
responder初体验
使用Django+channels+Python3.7时提交Form表单: 400 Bad Request问题
上次在自己的博客项目上尝试了Python3.7的beta版之后,意识到Celery因为惯性还是不能兼容3.7,所以不在做升级的打算。直到前不久开始弄一个简单的内部社区,针对购买视频的同学。这也是个人项目,所以激进点没什么关系。
the5fire
2019/03/01
2.2K0
Django Channels配置
Channels包装了Django的原生异步视图支持(Django3之后支持异步视图),允许Django项目不仅可以处理HTTP,还可以处理WebSockets,MQTT等。Channels提供了与Django的身份验证系统,会话系统等的集成,使得将纯HTTP项目扩展到其他协议比以往任何时候都更容易。因此,通常我们在Django3上实现websocket还是会使用channels
zy010101
2021/12/07
1.2K0
Django Channels配置
相关推荐
区分wsgi、uWSGI、uwsgi、php-fpm、CGI、FastCGI
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档