歡迎光臨
每天分享高質量文章

小伙利用Python搭建web服務器,這小伙不進騰訊可惜了!

 

簡單的說,web服務器就是機器上監聽了本地的IP和端口的一個行程,當有客戶的請求進來時,它會響應客戶的請求並傳回相應的信息。客戶端和服務端之間的通信基於HTTP協議,客戶端可以是瀏覽器或者任何支持HTTP的應用。我們平時訪問網頁或手機APP里接受服務端的資料,都是通過這樣的方式。

下麵這張圖是一個客戶端和服務端交互的過程

 

用戶在瀏覽器輸入網址向web服務器發出一個請求,web服務器收到請求後傳回Hello, world!給瀏覽器,用戶就能在瀏覽器上看到文字。

我們來用Python實現這樣一個簡單的web服務器。代碼如下

 

上面的代碼監聽本地的8888端口,收到客戶端的請求後,在控制台打印出請求的頭部和內容,並傳迴響應的頭部和內容給客戶端。

運行上面的代碼

 

打開瀏覽器,訪問http://localhost:8888/,會在瀏覽器看到如下的頁面

 

同時在程式的控制台會有如下的輸出

 

這就是客戶端請求的頭部信息。

HTTP協議是TCP協議上層的協議,因此在實現HTTP交互之前,客戶端和服務端先要創建TCP連接。創建TCP連接就要用到socket模塊。創建TCP連接由客戶端發起,為接受客戶端的TCP連接請求,服務器端需要經歷以下幾步:

  • 創建socket
  • 呼叫bind系結到指定的IP和端口
  • 呼叫listen監聽端口
  • 呼叫accept接受客戶端的請求

至此一個TCP連接創建完成,接下來就可以進行資料的收發。

好了,以上就是一個最簡單的web服務器。

    赞(0)

    分享創造快樂