CGI、WSGI、ASGI、框架以及Web服务器的关系

CGI

CGI(Common Gateway Interface,通用网关接口)是一种互联网编程标准,它定义了客户端(通常是Web浏览器)与服务器之间动态生成Web页面的方法。
在Web开发中,CGI是最早的动态网页生成技术之一。它允许在服务器上运行外部程序(通常是脚本语言编写的程序),并将这些程序的输出作为Web页面的内容返回给客户端。这些外部程序可以与客户端请求进行交互,根据不同的请求生成不同的页面内容。
CGI的主要优点是它的简单性和灵活性,可以轻松地与数据库和其他服务器进行交互。然而,由于它的性能较低和存在安全风险(例如,可能受到注入攻击),现代的Web开发已经转向更高效和更安全的替代技术,如PHP、Python和Ruby的Web框架。

WSGI

WSGI(Web Server Gateway Interface,Web服务器网关接口)是Python中的一种Web服务器网关接口标准,用于将Web服务器与Web应用程序进行通信。
WSGI允许Web服务器通过标准化的接口与Web应用程序进行交互,从而使得Web应用程序的开发和部署变得更加简单和一致。它定义了一组标准化的接口和协议,其中包括请求处理、响应生成、中间件处理等。
WSGI的两个主要组件是WSGI服务器和WSGI应用。WSGI服务器负责接收客户端的请求,然后将请求传递给WSGI应用进行处理。WSGI应用则是一个Python的WSGI应用对象,它负责处理请求并生成响应。

ASGI

ASGI(Asynchronous Server Gateway Interface,异步服务器网关接口)是Python中的一种异步Web服务器网关接口标准,用于将异步Web服务器与Web应用程序进行通信。允许异步Web服务器通过标准化的接口与Web应用程序进行交互,从而使得异步Web应用程序的开发和部署变得更加简单和一致。它定义了一组标准化的接口和协议,其中包括请求处理、响应生成、中间件处理等。主要组件是ASGI服务器和ASGI应用。ASGI服务器负责接收客户端的请求,然后将请求传递给ASGI应用进行处理。ASGI应用则是一个Python的ASGI应用对象,它负责处理请求并生成响应。

关系

Web服务器网关接口协议:WSGI、ASGI、uwsgi

nginx与apache

Nginx是一个高性能的异步Web服务器,专为性能和可扩展性而设计。它使用事件驱动的架构来处理大量的连接,主要用来提供静态文件,但现在已经发展成为一个完整的Web服务器,可以处理所有服务器任务。Nginx的并发能力强,能够在高并发连接下保持高效的处理能力,并且占用较少的资源和内存。它使用单线程模型,通过异步非阻塞事件处理机制,一个进程只有一个主线程,实现了循环处理多个准备好的事件,轻量级且高并发。Nginx作为反向代理、负载均衡器和HTTP缓存被广泛使用。
Apache是一个专一性服务,每个请求都独占一个工作线程,并发数在几千,占用内存和CPU,降低性能。它使用流程驱动的方法并为每个请求创建一个新线程。尽管Apache也有事件驱动的模块(MPM_Event),但仍是采用多线程多进程的方式进行处理。
Nginx在处理大量并发连接、资源使用和响应时间方面表现较好,而Apache在处理每个请求时需要创建新的线程或进程,因此在并发数较多时会产生较大的资源消耗和性能降低。但是Apache对于一些特定的应用场景有很好的支持,比如PHP和Per-Process SCGI。

python web框架

Django:Django是一个广泛使用的Python Web框架,它以MVC(Model-View-Controller)架构为基础,具有强大的ORM(对象关系映射)和内置的管理界面。Django还提供了许多内置的功能,例如URL路由、表单处理、ORM、模板引擎等。
Flask:Flask是一个轻量级的Python Web框架,它简单易用,适合小型Web应用程序。Flask的核心是一个轻量级的WSGI工具包,它提供了基本的HTTP请求处理、路由、模板渲染等功能。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇