【狂人論壇】

 找回密碼
 註冊
搜索

[分享] 技巧篇Python也能重組web服務器

[複製鏈接]

11

主題

48

金錢

0

積分

積分
0
swydnbc 發表於 2021-2-7 10:52 | 顯示全部樓層 |閱讀模式

今天小編我和大家壹起進入到了新的欄目專欄組是有關於技巧篇的文章如何利用Python也能重組web服務器,小編我告訴大家我們在學習的過程中要循環漸進從基礎理論開始學習再壹點壹滴的積少成多,然後再慢慢的進入到學習的狀態更加努力的學習才能有所收獲。

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

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

客戶端和服務端交互

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

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

Python

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

  運行上面的代碼

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

  同時在程序的控制臺會有如下的輸出

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

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

  創建socket

  調用bind綁定到指定的IP和端口

  調用listen監聽端口

  調用accept接受客戶端的請求

  至此壹個TCP連接創建完成,接下來就可以進行數據的收發。

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

  是不是在學習的海洋裏面又忘記了時間,本文裏面有很多重要的知識和技能,妳可以拿出妳的小本子把核心部分寫下來,不僅可以加深記憶最重要的事還可以長久的保存以便在不時之需時可以拿出來看壹看。

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|聯絡站長|重灌狂人|狂人論壇

GMT+8, 2021-3-1 12:05

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表