定義:
官方定義:wsgi是Web服務器網關接口(Python Web Server Gateway Interface,縮寫為WSGI)是為Python語言定義的Web服務器和Web應用程序或框架之間的一種簡單而通用的接口。
大白話:wsgi就是一種規范,提供了一種標准,一種sever與application之間的一種標准,它定義了使用web應用程序與Python編寫的web服務器程序之間的接口格式,實現web應用程序與web服務器程序間的解耦。
web應用的本質:
- 瀏覽器發送一個HTTP請求;
- 服務器收到請求,生成一個HTML文檔;
- 服務器把HTML文檔作為HTTP響應的Body發送給瀏覽器;
- 瀏覽器收到HTTP響應,從HTTP Body取出HTML文檔並顯示。
WSGI接口工作流程
總結
wsgi就是一種規范,它定義了使用web應用程序與Python編寫的web服務器程序之間的接口格式.無論多么復雜的Web應用程序,入口都是一個WSGI處理函數。HTTP請求的所有輸入信息都可以通過environ獲得,HTTP響應的輸出都可以通過start_response()加上函數返回值作為Body。
Flask中的werkzeug工作原理類似.
多說一點uwsgi
uWSGI是一個Web服務器,它實現了WSGI協議、uwsgi、http等協議。Nginx中HttpUwsgiModule的作用是與uWSGI服務器進行交換
要注意 WSGI / uwsgi / uWSGI 這三個概念的區分。
- WSGI是一種通信協議。
- uwsgi是一種線路協議而不是通信協議,在此常用於在uWSGI服務器與其他網絡服務器的數據通信。
- 而uWSGI是實現了uwsgi和WSGI兩種協議的Web服務器。
--個人理解,多多指教