WSGI 是「Web Server Gateway Interface」的縮寫,它是一種 Python Web 應用程式與 Web 伺服器之間的標準介面,用來定義 Web 應用程式如何接收 HTTP 要求和回傳 HTTP 回應。
簡單來說,WSGI 提供了一個標準的介面,讓 Web 應用程式和 Web 伺服器可以獨立運作,不用擔心它們所在的環境。這樣一來,就可以讓 Web 應用程式的程式碼更加簡潔、可攜性更好、也更容易維護。
使用 WSGI 的好處是,它可以與任何符合 WSGI 標準的 Web 伺服器一起使用,例如 Apache、Nginx 等。這意味著開發者可以自由選擇他們喜歡的 Web 伺服器,不必擔心和 Web 應用程式的相容性問題。
通常,WSGI 應用程式由一個可呼叫的物件(例如函數或類別的實例)組成,這個物件會接收一個環境變數和一個回呼函數(通常被稱為 start_response)作為參數,並回傳一個可迭代的回應內容。 Web 伺服器會將 HTTP 要求轉換為環境變數,然後呼叫 WSGI 應用程式,將回呼函數作為參數傳遞給它,這樣 WSGI 應用程式就可以將回應資料傳回給 Web 伺服器。
總之,WSGI 提供了一個標準化的介面,讓 Python Web 應用程式可以和不同的 Web 伺服器進行互動,從而實現 Web 應用程式的可攜性、可擴展性和易於開發等優點。