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

 

來源:http://www.douban.com/note/13508388/python

pache/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 serverweb

WSGI是python的接口規範,這個規範是針對WEB服務器和python應用(框架等)的交互的。FASTCGI則是二者底層的通訊協議的規範。apache

相關文章
相關標籤/搜索