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

小夥利用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)

    分享創造快樂