WSGI是什么?
?
WSGI是什么?
WSGI,全稱?Web Server Gateway Interface,或者?Python Web Server Gateway Interface ,是為 Python 語言定義的 Web 服務(wù)器和 Web 應(yīng)用程序或框架之間的一種簡單而通用的接口。自從 WSGI 被開發(fā)出來以后,許多其它語言中也出現(xiàn)了類似接口。
WSGI?的官方定義是,the Python Web Server Gateway Interface。從名字就可以看出來,這東西是一個Gateway,也就是網(wǎng)關(guān)。網(wǎng)關(guān)的作用就是在協(xié)議之間進行轉(zhuǎn)換。
WSGI 是作為 Web 服務(wù)器與 Web 應(yīng)用程序或應(yīng)用框架之間的一種低級別的接口,以提升可移植 Web 應(yīng)用開發(fā)的共同點。WSGI 是基于現(xiàn)存的 CGI 標準而設(shè)計的。
很多框架都自帶了 WSGI server ,比如 Flask,webpy,Django、CherryPy等等。當然性能都不好,自帶的 web server 更多的是測試用途,發(fā)布時則使用生產(chǎn)環(huán)境的 WSGI server或者是聯(lián)合 nginx 做 uwsgi 。
也就是說,WSGI就像是一座橋梁,一邊連著web服務(wù)器,另一邊連著用戶的應(yīng)用。但是呢,這個橋的功能很弱,有時候還需要別的橋來幫忙才能進行處理。WSGI 的作用如圖所示:
WSGI的作用
WSGI有兩方:“服務(wù)器”或“網(wǎng)關(guān)”一方,以及“應(yīng)用程序”或“應(yīng)用框架”一方。服務(wù)方調(diào)用應(yīng)用方,提供環(huán)境信息,以及一個回調(diào)函數(shù)(提供給應(yīng)用程序用來將消息頭傳遞給服務(wù)器方),并接收Web內(nèi)容作為返回值。
所謂的 WSGI中間件同時實現(xiàn)了API的兩方,因此可以在WSGI服務(wù)和WSGI應(yīng)用之間起調(diào)解作用:從WSGI服務(wù)器的角度來說,中間件扮演應(yīng)用程序,而從應(yīng)用程序的角度來說,中間件扮演服務(wù)器。“中間件”組件可以執(zhí)行以下功能:
- 重寫環(huán)境變量后,根據(jù)目標URL,將請求消息路由到不同的應(yīng)用對象。
- 允許在一個進程中同時運行多個應(yīng)用程序或應(yīng)用框架。
- 負載均衡和遠程處理,通過在網(wǎng)絡(luò)上轉(zhuǎn)發(fā)請求和響應(yīng)消息。
- 進行內(nèi)容后處理,例如應(yīng)用XSLT樣式表。
轉(zhuǎn)載于:https://www.cnblogs.com/huiziblog666/p/7205021.html
總結(jié)
- 上一篇: Vue + VueRouter + Vu
- 下一篇: 来写一个 Alfred 的 Workfl