WSGI、flup、fastcgi、web.py的關系


Apache/lighttpd: 相當於一個request proxy,根據配置,把不同的請求轉發給不同的server處理,例如靜態的文件請求自己處理,這個時候它就像一個web server,對於fastcgi/python這樣的請求轉發給flup這樣的Server/Gateway進行處理

 flup: 一個用python寫的web server,也就是cgi中所謂的Server/Gateway,它負責接受apache/lighttpd轉發的請求,並調用你寫的程序 (application),並將application處理的結果返回到apache/lighttpd

fastcgi: apache/lighttpd的一個模塊,雖然flup可以作為一個獨立的web server使用,但是對於瀏覽器請求處理一般都交給 apache/lighttpd處理,然后由apache/lighttpd轉發給flup處理,這樣就需要一個東西來把apache/lighttpd跟flup聯系起來,這個東西就是fastcgi,它通過環境變量以及socket將客戶端請求的信息傳送給flup並接收flup返回的結果

web.py: 應該說有了上面的東西你就可以開始編寫你的web程序了,但是問題是你就要自己處理瀏覽器的輸入輸出,還有cookie、session、模板等各種各樣的問題了,web.py的作用就是幫你把這些工作都做好了,它就是所謂的web framework,另外一個出名的是django,不過感覺太復雜了,web.py差不多就夠用了

WSGI : 除了flup Server/Gateway外還有很多其他人的寫的Server/Gateway, 這個時候就會出問題了,如果你在flup上寫了一個程序,現在由於各種原因你要使用xdly了,這個時候你的程序也許就要做很多痛苦的修改才能使用 xdly server了,WSGI就是一個規范,他規范了flup這個服務應該怎么寫,應該使用什么方式什么參數調用你寫的程序(application)等,當然同時也規范你的程序應該怎么寫了,這樣的話,只要flup跟xdly都遵守WSGI的話,你的程序在兩個上面都可以使用了,flup就是一個WSGI server


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM