在處理一個頁面請求時咱們通常會須要用到一下信息:javascript
如何獲取請求頭的信息css
import os # 這是返回給客戶端的請求頭 print("Content-type: text/html\n\n") print(os.environ)
在輸出界面咱們就能夠看到咱們所提交過去的各類信息.html
GET/POST的請求參數, GET的請求參數咱們能夠經過os.environ裏的QUERY_STRING看到. 而事實上咱們還能夠經過CGI模塊來獲取java
import cgi # 建立 FieldStorage 的實例化 form = cgi.FieldStorage() username = form.getvalue('username', default=None) password = form.getvalue('password', default=None) print("Content-type: text/html\n\n") print("Your username is %s, password is %s"% (username, password))
不管是經過GET仍是POST提交的參數, 均可以經過getvalue獲取.python
cgi是經過stdin, stdout來傳遞數據的.要讓可執行文件的輸出不止於helloworld, 那麼就須要把特定的信息輸出到stdout從而輸出至客戶端. 對於REST風格的API而言, 能夠使用json.dumps來生成返回數據. 而若是是做爲網頁形式, 須要返回整個html, 那麼咱們將須要輸出html的dom、css、javascript, 要咱們一行一行把這些東西給輸出到stdout是很是麻煩的. 這時咱們就能夠經過模板語言來構建html.json
由於CGI會直接啓動一個進程來執行腳本, 那麼咱們就須要注意一個安全性的問題. 執行腳本的用戶應該儘可能少擁有無關的權限. 以防被惡意用戶利用.安全