WSGI 全稱 Web Server Gateway Interface杖爽,即 Web 服務(wù)器網(wǎng)關(guān)接口栏豺,是一個專業(yè)化的 python web 網(wǎng)關(guān)接口實(shí)現(xiàn)規(guī)范。
某種意義上說他是協(xié)議也沒錯,作為一個對各種交互方式的約定健提,從廣義上理解與網(wǎng)絡(luò)傳輸協(xié)議是同一個目的扎狱。
一侧到、WSGI 規(guī)范功能區(qū)分
WSGI 接口規(guī)范主要定義了下面幾個內(nèi)容:
- Server/Gateway HTTP 請求或者 uwsgi 協(xié)議的信息的接收入口服務(wù)器的內(nèi)容和行為規(guī)范;
- Application 根據(jù) Server 處理之后的調(diào)用參數(shù)實(shí)施調(diào)用行為的接口規(guī)范淤击;
- Middleware 處于 Server 和 Application 中間的中間件行為的規(guī)范匠抗,其實(shí)其行為與 Application 基本上沒有差別;
- 傳輸?shù)男畔⒏袷揭?guī)范 主要是從 Server 到 Application 傳輸?shù)膮?shù)結(jié)構(gòu)規(guī)范污抬。
二汞贸、WSGI 規(guī)范數(shù)據(jù)流向
WSGI 協(xié)議定義的調(diào)用流程和數(shù)據(jù)流向如下:
傳入的數(shù)據(jù)可以不止是 HTTP 協(xié)議數(shù)據(jù),也可以是 uwsgi 協(xié)議數(shù)據(jù)壕吹。
三著蛙、WSGI 規(guī)范結(jié)構(gòu)解讀
Server 與 Application 的邏輯拆分 將 Server 與 Application 拆分開來好處在于兩者解耦了,使用者可以使用不同的對應(yīng)實(shí)現(xiàn)進(jìn)行組裝耳贬。
Middleware 中間件 Middle 將 Application 的功能分塊踏堡,允許不同功能塊隨意進(jìn)行拆裝,同時遵循同一個規(guī)范實(shí)現(xiàn)的功能塊允許提供給其它人進(jìn)行復(fù)用咒劲,整體的靈活度相比要更高(實(shí)現(xiàn)不同邏輯之間的解耦)顷蟆。