1. 程式人生 > >實現一個HTTP伺服器的Demo

實現一個HTTP伺服器的Demo

在學完linux高階程式設計後,開啟一個HTTP伺服器的demo,因為一個完整的http伺服器涉及的範圍很廣,遠不是一個人可以全部完成的。所以這個demo只是實現了http伺服器的一個簡單的功能->GET請求。包括請求html檔案和圖片(jpg &png)。下面是實現的一些思路:

工作流程:
1.獲取初始化伺服器配置資訊
2.初始化伺服器引數
3.啟動伺服器,監聽埠
4.與客戶端建立連結,啟動子程序處理請求
5.解析請求檔案,獲得請求檔案頭
    if 請求方式為 GET 
        ----參見6
    else
        ----暫不處理
6.獲取請求文字型別
7.獲得請求檔案路徑
8.開啟多執行緒處理檔案
    if 檔案存在
        讀取檔案資料
    else 檔案不存在
        讀取error.html
9.生成響應頭
10傳送響應頭
11.傳送響應資料
12斷開連線

關於伺服器與客戶端(瀏覽器)連線後的工作時序圖如下:
這裡寫圖片描述

關於程式碼,下面準備傳送門:https://gitee.com/dengmingli/httpFuWuQi/tree/master