這是用C編寫的小型Web服務器,該服務器支持HTTP 1.0規格的子集。伺服器;
•應該能夠同時處理請求
•實施HTTP方法獲取和頭
•處理並響應無效的請求。
您應該能夠證明您的Web服務器能夠將主頁傳遞到Web瀏覽器。您應該實現HTTP的1.0版,如RFC 1945所定義的,其中為網頁的每個組件發送了單獨的HTTP請求。該服務器將能夠並行處理多個同時服務請求。這意味著Web服務器是多線程的。在主線程中,服務器會聽到固定端口。當它收到TCP連接請求時,它通過另一個端口設置了TCP連接,並在單獨的線程中為請求提供服務。
為了簡化此編程任務,我們將在兩個階段開發代碼。在第一階段,您可以編寫一台多線程服務器,該服務器只能顯示收到的HTTP請求消息的內容。此程序正確運行後,您可以添加生成適當響應所需的代碼。
在開發代碼時,您可以從Web瀏覽器(例如Chrome,Safari,Firefox Web瀏覽器)作為HTTP客戶端應用程序測試服務器。但是請記住,您沒有通過標準端口80進行服務,因此您需要指定向瀏覽器提供的URL中的端口號。例如,如果您的機器的名稱是testhost.mydomain.com,您的服務器您的服務器正在收聽端口6789,並且您想檢索文件index.html,則您將在瀏覽器中指定以下URL:http:// testhost.mydomain.com:6789/index.htex.htex.html
如果省略“:6789”,瀏覽器將假設端口80,很可能不會在上面偵聽服務器。
當服務器遇到錯誤時,它將發送帶有適當HTML源的響應消息,以便在瀏覽器窗口中顯示錯誤信息。
一般要求:
•將使用POSIX庫(Pthread)。
•服務器收取太多請求,但它只能返迴響應10個請求。拒絕了10多個請求。在此狀態下,服務器返回“服務器忙”消息
•服務器接受將是HTML和JPEG文件的請求。其他類型將不接受