標籤:web伺服器 windows socket.socke http伺服器與用戶端 http實現
Windows Socket+HTTP伺服器用戶端
Winsock
是 Windows下通訊端標準
。
1.HTTP協議:
HTTP是基於用戶端/伺服器的請求,響應協議。
請求:由用戶端向伺服器發起,指定了要從伺服器擷取的資源。請求包含了協議首部,指明了用戶端處理能力資訊,如可以處理的檔案類型,支援的語言,編碼方式等。
響應:伺服器收到用戶端的請求後,解析這個請求,構造響應,並發送給用戶端。響應同樣包含了協議首部,指明了伺服器的相關資訊。
2.簡易HTTP伺服器與用戶端:
實際中的HTTP協議,考慮到多種需求,協議具有一定的複雜性,這裡我們只實現一個簡單的HTTP伺服器與用戶端,重在理解HTTP協議的工作原理。
Winsock編程下,用戶端通過socket向用戶端發送一段資料(即請求),這段資料包含了用戶端請求的資源(即檔案)。
用戶端收到這段資料後,對這段資料進行處理(即解析URL),提取用戶端請求的資源名,根據資源名找到伺服器資源,將資源與其他資訊處理後(即響應)發送給用戶端。
3.HTTP伺服器與用戶端實質:
HTTP協議是建立在socket之上的,本質上是兩個程式通過socket相互發送資料。HTTP協議,規定了發送方發送資料的格式以及接受方如何使用接受的資料。實現HTTP伺服器與用戶端,HTTP協議的實現體現在雙發對發送與接受資料的處理上。最簡單的例子,用戶端向伺服器發送一個"GET 1.html"資料,伺服器收到資料後,解讀"GET 1.html",明白用戶端想得(GET)到1.html檔案,伺服器將1.html檔案的內容發送給用戶端,用戶端接收到含1.html檔案內容的資料後,建立1.html檔案並寫入伺服器端發送來的資料。
4.牛刀小試:
先在VC6.0中運行伺服器,再開啟一個VC6.0運行用戶端。
運行效果:
常用的瀏覽器也是用戶端,顯然我們的用戶端只是簡單的將html檔案內容列印,瀏覽器則會按HTML規則處理html檔案然後顯示。
伺服器與用戶端參考了《Winsock網路編程經絡》
用戶端程式:
伺服器程式: