看完《HTTP 權威指南》前三章:HTTP 概述、URL 與資源、HTTP 報文,大體對如今 Web 服務中 HTTP 協議有個初步的認識,通常 http 的客戶端都是瀏覽器,現寫個小工具,實現 http 客戶端的功能,發送報文,並接受響應報文。html
requests 是用 python 寫的 HTTP 庫,基於 urllib,可是比 urllib 更加方便,測試 HTTP 客戶端發送請求報文,能夠選用 requests 庫,社區中 requests 比 urllib 更加 pythoner。python
安裝 requests:mysql
pip3 install requests
安裝完成後就能夠導入了,並調用 HTTP 方法:git
import requests #GET、POST、PUT、DELETE、HEAD、OPTIONS 方法 r = requests.get("http://www.baidu.com") r = requests.post("http://www.baidu.com") r = requests.put("http://www.baidu.com") r = requests.delete("http://www.baidu.com") r = requests.head("http://www.baidu.com") r = requests.options("http://www.baidu.com")
requests 在發送請求報文的時候,還能夠自定義 header:github
#header header = {'content-type': 'application/json', 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0' } r = requests.post("https://api.github.com/some/endpoint', headers=header
固然還有自定義參數:sql
requests.get("http://www.baidu.com", params={'wd':'python}) requests.post("http://www.baidu.com", data={'comment':'POST test'})
使用 requests 方法以後,會返回一個 response 對象,存儲了來自服務器的響應內容:數據庫
r.encoding #響應報文的字符集 r.status_code #響應狀態碼 r.raw #返回原始響應體,也就是 urllib 的 response 對象,使用 r.raw.read() 讀取 r.text #字符串方式的響應體,會自動根據響應頭部的字符編碼進行解碼 r.headers #以字典對象存儲服務器響應頭,可是這個字典比較特殊,字典鍵不區分大小寫 r.json #requests 中內置的 JSON 解碼器 r.ralse_for_status() #失敗請求拋出異常 pip3 install requests
有關 requests 的詳細可參考官方文檔:http://docs.python-requests.org/zh_CN/latest/user/quickstart.htmljson
進程監控平臺:api
期間用過阿里雲自帶的進程監控,在服務器執行 ps -ef | grep process_name 的時候,監控也會把這條bash 進程當作是正在監控的進程而報警,以前也用過 bash scripts 每次執行都會過濾配置文件裏面配置的進程名稱,而後在終端顯示出來,無法起到實時監測的做用,想練練手寫個進程監控平臺;瀏覽器
後臺 python:獲取進程狀態信息、響應 HTTP 請求併發送進程狀態信息報文至前臺
前臺 h5:每隔一段時間 GET 請求獲取進程狀態,而後展現。
數據庫 mysql:存放進程狀態信息