《紅魔城蕾米莉亞:緋色交響曲》重製版將登PC/NS
阿新 • • 發佈:2021-06-06
1. 什麼是WSGI
Web伺服器閘道器介面(Python Web Server Gateway Interface,縮寫為WSGI)是為Python語言定義的Web伺服器和Web應用程式或框架之間的一種簡單而通用的介面。自從WSGI被開發出來以後,許多其它語言中也出現了類似介面。
2. 發展歷史
1989年
特點:
server只能返回靜態檔案,例如html,css,image等靜態檔案
過程:伺服器收到request請求,知道要獲取index.html,伺服器從硬碟中讀取index.html的內容, 將讀取的內容放在body中返回。
1991年
需求:想讓伺服器返回html form表單
特點:
1997年
出現了公共的網管介面:CGI
目的是為了設定一組規範,命名一些環境變數,以及宣告它們的用途。
公共閘道器介面(Common Gateway Interface,CGI)是Web 伺服器執行時外部程式的規範,按CGI 編寫的程式可以擴充套件伺服器功能。
CGI 應用程式能與瀏覽器進行互動,還可通過資料API與資料庫伺服器等外部資料來源進行通訊,從資料庫伺服器中獲取資料。格式化為HTML文件後,傳送給瀏覽器,也可以將從瀏覽器獲得的資料放到資料庫中。幾乎所有伺服器都支援CGI,可用任何語言編寫CGI,
包括流行的C、C ++、Java、VB 和Delphi 等。CGI分為標準CGI和間接CGI兩種。標準CGI使用命令列引數或環境變量表示伺服器的詳細請求,伺服器與瀏覽器通訊採用標準輸入輸出方式。間接CGI又稱緩衝CGI,在CGI程式和CGI介面之間插入一個緩衝程式,
緩衝程式與CGI介面間用標準輸入輸出進行通訊
規定了下圖的內容
2003年
python為了進一步的執行cgi的標準,因此規定了標準化指令碼,任何從web伺服器呼叫指令碼,都必須擁有類似於nerdy的函式。函式接受兩個變數,env是一個dict字典,用來儲存cgi規定的變數。foo是一個特殊引數(函式),只需要已特定的方式呼叫第二個引數即可。
foo函式的兩個引數 1. http_status --- response的status 2. http_headers_list --- response的headers
nerdy函式返回值,就是response的body部分
上圖說面了單個http請求的總時間消耗。
紫色部分:http server解析http request,並且建立環境變數(類似於cgi規定的變數)
藍色部分:用python指令碼處理請求所花費的時間。
紅色部分:紅色表示從硬碟上載入python二進位制檔案
# TODO