httpd庫是基於HTTP 1.1協議實現而來, 內置了高性能的http協議解析器與urldecode解析庫.git
httpd庫默認狀況下就能工做的很好, 可是在一些需求較爲極端的場景仍是須要微調一下參數.github
設置每一個鏈接到最大空閒(idle)鏈接等待時間, 超過這個數值httpd將主動斷開鏈接. (默認值爲:30秒)json
設置Path的最大長度, 超過這個值httpd將會返回414. (默認值爲: 1024)api
設置Header最大長度, 超過這個值httpd將會返回431. (默認值爲: 65535)數組
設置Body的最大長度, 超過這個值將會返回413. (默認爲 1024 * 1024)app
before方法決定API與USE路由回調在觸發以前的行爲, 默認狀況下容許全部路由經過.框架
before方法通常用來設置與修改用戶驗證路由行爲(例如頭部驗證), 這提供了開發者基於before函數設計中間件的機會.函數
當開發者設置了function後(便是是一個空函數), 須要利用http庫來決定行爲.post
group方法提供了一種批量註冊路由的方式, 爲一組同一組路由提供簡單便方便在註冊方法.性能
第一個參數type爲須要批量註冊的路由類型; 初始化httpd對象後, 使用app.USE
或app.API
進行傳值;
第二個參數prefix爲string類型的頭部; 例如:/api
、/admin
;
第三個參數爲一組路由處理函數或處理類數組; 類型爲: {route = '/login', class = class};
注意: 此方法僅支持批量註冊API與USE路由, 不可同時註冊不一樣類型路由;
listen方法用於告訴httpd對象監聽指定端口.
第一個參數ip暫未被httpd使用(可是必須設置), 默認監聽全部網卡的'0.0.0.0'地址與指定的端口號;
backlog爲用戶最大鏈接等待隊列, 合理的設置能減小鏈接被重置的狀況(默認值爲128).
在httpd庫全部參數與路由設置完畢以後, 調用run方法開啓監聽模式.
日誌格式爲: [年/月/日 時:分:秒] - [ip] - [x-real-ip] - [path] - [method] - [http code] - [request handle timeline]
httpd庫提供了before
方法, 爲開發人員自定義'中間件'行爲提供了可能. 具體使用方法請參考http庫.
每一個http請求都會在調用before
與用戶註冊的路由時爲其傳入一個content, 這個Content是客戶端請求的全部參數.
args : 支持標準get或者post的參數, 對a[1]=1&a[2]=2將會不會解析爲數組類型; 支持multipart/form-data
的參數傳遞方式;
header: 原始header key-value表, 框架層不會進行header進行內容解析. (通常狀況下沒這個必要);
body : 目前body支持這些類型: multipart/form-data
、application/x-www-form-urlencoded
、application/json
、application/xml
;
json/xml: 在body爲json類型的時候, content的json屬性爲true; 在body爲xml類型的時候, content的xml屬性爲true.
file : 當客戶端使用multipart/form-data
傳遞數據時將會有這個屬性; 這個屬性是數組類型;
一下章咱們一塊兒學習如何利用template庫構建httpd模板引擎