原创 數據結構與算法:2線性表的鏈式存儲

上一節講述了線性表的順序存儲,對於線性表的順序存儲出現的問題,需要分配一整段連續的存儲空間失敗的可能性較之於鏈式存儲大,同時進行數據插入和刪除的時候可能造成需要移動整個線性表。下面要說的線性表的鏈式存儲很好的解決了上述出現的問題,相比較於

原创 WebPack 安裝出現 Cannot find module 'webpack-cli/package.json'的錯誤解決

最近想嘗試一下使用Webpack按照網上和書籍上進行Webpack的安裝,當執行webpack命令的時候會出現 Cannot find module 'webpack-cli/package.json'。經過檢查webpack和webpa

原创 Vue學習 開始走向VUE開發1---感言

 之前的文章寫得是thttpd系列,其實在我工作中第一個參與的項目是Web前端開發,當時公司沒有人做過領導就把這個任務交給了我,當時很是幸運接手的是國外一個大神程序,進行維護和開發,從組織結構到設計思想都很優秀,慢慢的肯了一年。但是當時的

原创 Vue學習 開始走向VUE開發2---第一個Vue程序

Vue一個比較大的特色是支持數據的雙向綁定,現在我們就一這個特性來開始第一個Vue程序帶大家走進Vue的世界。 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Vu

原创 Thttpd源程序解析20 請求回送過程詳解

此文章之前講的請求處理過程說明請求處理過程校驗請求格式、分析請求內容、處理請求將數據存儲在緩存數組中並將此連接的文件描述符的狀態設置爲發送狀態添加在管理數組中,當程序循環執行到檢測此文件的描述符時檢測到此文件的狀態爲發送狀態將會執行han

原创 Thttpd源程序解析19 thttpd請求處理過程總彙

經過前面幾篇文章的講述知道了Thttpd在處理用戶的請求時的幾個主要的函數的作用,下面將講述處理請求的是主要流程。 當有文件需要進行處理的時候將對每個可以進行處理的文件描述符進行處理,可以進行處理的文件描述符的狀態有可讀,可寫和異常處理。

原创 Thttpd源程序解析18 thttpd請求處理過程詳解之CGI過程

從之前講述的really_start_request函數我們知道當設置的cgi_pattern不爲空且文件具有其他用戶可執行的權限且cgi_pattern與文件的擴展名稱匹配時將調用CGI過程。 CGI過程根據用戶的請求方式和請求參數調用

原创 Lintcode142. O(1)時間檢測2的冪次

這道題的主要的目的是檢測整數n是否是2的正整數次冪,要解這道題首先需要注意2點 (1)2的正整數冪的值必須是大於0的整數所以小於等於0的數據需要排除。 (2)真正要使用的解決方法是使用掩碼來計算,大家都知道2的n次冪的數據二進制形式中只會

原创 Thttpd源程序解析17 thttpd請求處理過程詳解之really_start_request函數

根據前面系列的介紹httpd_got_request函數檢驗請求的格式是否正確,httpd_parse_request檢驗請求的內容是否正確,httpd_start_request函數的主要作用是根據請求的做出具體的迴應,主要使用的是re

原创 Thttpd源程序解析16 thttpd請求處理過程詳解之httpd_parse_request函數

前面講解的httpd_got_request函數是判斷請求的格式是否正確,httpd_got_request函數則是對請求的數據進行分析。並初始化相關的數據進行返回請求時處理的依據,主要是獲取用戶的請求的方式,文件的路徑,請求的協議的版本

原创 Lintcode 632. 二叉樹的最大節點

這道題的考察目的主要是考察二叉樹的遍歷,遍歷整個二叉樹獲取值最大的節點。遍歷二叉樹可以使用前序遍歷後序遍歷和中序遍歷,在不使用遞歸的情況下使用前序遍歷最簡單,前序遍歷的思想很簡單,對於每個需要訪問的節點只要節點不爲空就訪問此節點,如果此節

原创 Thttpd源程序解析15 thttpd請求處理過程詳解之httpd_got_request函數

httpd_got_request函數主要是用於檢測請求的格式是否正確,是請求處理第一個被調用的函數。 httpd_got_request函數 前面的文章講述過請求行在HTTP 1.1時代之後變爲 請求方式+空格+請求路徑+空格+協議版本

原创 PackBits解壓縮算法

PackBits壓縮方式是每段數據都有一個頭(有符號的8bit類型數據)和數據。具體形式如下圖所示。 當頭部的值爲-1~-127表示頭部後面的1一個字節的數據進行過數據壓縮,解壓縮時需要將頭部後面的一個字節的數據重複頭部值的絕對值+1次

原创 Thttpd源程序解析13 連接過程詳解

經過前面講述Thttpd源程序每個函數的大致的功能,現在針對Thttpd如何共做接收用戶的連接請求的詳細過程。 當服務器正常運行的時候將會不斷的根據用戶設置的服務器的IP地址類型調用handle_newconnect函數進行對有連接請求的

原创 Thttpd源程序解析10 timer.c文件

Thttpd服務器對於請求處理,請求響應和CGI子程序的運行時間是有限制的,這裏面限制是由Timer.c文件中的函數完成的。計時器的結構爲: typedef struct TimerStruct { TimerProc* timer_pr