一個cs模型是由服務器和客戶端組成,大多相互狀況下也就是服務器端和瀏覽器之間的通訊。經過瀏覽器請求服務器,而後服務器再響應瀏覽器。html
那麼若是瀏覽器想要請求一個python文件,例如http://127.0.0.1:8000/time.py/那麼該如何實現。python
首先若是瀏覽器只請求相似index.html的時候只要server中擁有這個index.html。而且構建一個「狀態碼+響應頭+「\r\n」+響應體」將index.html的源代碼做爲響應體傳入瀏覽器就能夠實現靜態頁面的請求響應。瀏覽器
首先有這樣一個想法構建一個相似請求靜態頁面的那樣一個響應字符串。將響應體做爲python程序的返回值傳入瀏覽器會有什麼樣的結果。以下圖服務器
也就是說這是沒辦法實現和咱們想象的中的那樣。app
引入接口這個概念,前輩們的不懈努力完成了wsgi協議。也就是隻要咱們能夠實現wsgi接口而後經過服務器來調用這個接口就能夠實現瀏覽器請求python文件。socket
python程序(ctime.py):server
import timehtm
def application(env,start_response):
stauts = "200 ok"
headers = [("Content-Type","text/plain")]
start_response(stauts,headers)
return time.ctime()blog
server端(僞代碼): 接口
def start_response(self,statu_num,response_headers): self.response_statu_num = statu_num response_header = 「」 for header in response_headers: response_header += 「%s: %s」%(header) self.response_headers = response_headerdef handla_file(self): ctime = __import__(模塊名) response_body = ctime.application(environ,start_response) response_data= response_statu_num+response_headers+」\r\n」+response_body client_socket.send(bytes(response_data,」utf-8」))