python中WSGI是什麼

uswgi學習文檔

http://uwsgi-docs-cn.readthedocs.io/zh_CN/latest/WSGIquickstart.html

WSGI是什麼?

WSGI,全稱 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是爲 Python 語言定義的 Web 服務器和 Web 應用程序或框架之間的一種簡單而通用的接口。自從 WSGI 被開發出來之後,許多其它語言中也出現了相似接口。html

WSGI 的官方定義是,the Python Web Server Gateway Interface。從名字就能夠看出來,這東西是一個Gateway,也就是網關。網關的做用就是在協議之間進行轉換。nginx

WSGI 是做爲 Web 服務器與 Web 應用程序或應用框架之間的一種低級別的接口,以提高可移植 Web 應用開發的共同點。WSGI 是基於現存的 CGI 標準而設計的。web

不少框架都自帶了 WSGI server ,好比 Flask,webpy,Django、CherryPy等等。固然性能都很差,自帶的 web server 更多的是測試用途,發佈時則使用生產環境的 WSGI server或者是聯合 nginx 作 uwsgi 。服務器

  •  
    也就是說,WSGI就像是一座橋樑,一邊連着web服務器,另外一邊連着用戶的應用。可是呢,這個橋的功能很弱,有時候還須要別的橋來幫忙才能進行處理。WSGI 的做用如圖所示:

WSGI的做用

WSGI有兩方:「服務器」或「網關」一方,以及「應用程序」或「應用框架」一方。服務方調用應用方,提供環境信息,以及一個回調函數(提供給應用程序用來將消息頭傳遞給服務器方),並接收Web內容做爲返回值。網絡

所謂的 WSGI中間件同時實現了API的兩方,所以能夠在WSGI服務和WSGI應用之間起調解做用:從WSGI服務器的角度來講,中間件扮演應用程序,而從應用程序的角度來講,中間件扮演服務器。「中間件」組件能夠執行如下功能:app

  • 重寫環境變量後,根據目標URL,將請求消息路由到不一樣的應用對象。
  • 容許在一個進程中同時運行多個應用程序或應用框架。
  • 負載均衡和遠程處理,經過在網絡上轉發請求和響應消息。
  • 進行內容後處理,例如應用XSLT樣式表。
相關文章
相關標籤/搜索