1. 程式人生 > 遊戲 >《紅魔城蕾米莉亞:緋色交響曲》重製版將登PC/NS

《紅魔城蕾米莉亞:緋色交響曲》重製版將登PC/NS

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