python筆記——網路伺服器之http服務
此實驗所用python的版本為3.2,不同版本會有所不同。
簡述:用python實現網路服務,總體說來有兩種方式:一是使用相對底層的socket類,自己實現所有的細節;二是使用python所提供的網路伺服器框架socketserver,集中精力處理核心業務。此筆記記錄有關socketserver類在同步處理模型下的使用心得。
python網路服務框架的大體結構:socketserver下有兩個類baseserver和baserequesthandler,可以把前者看成網路監聽的實現,後者是對網路連線的處理。
+-------
---------+
| baseserver |
+--------
--------+|v
+-----
-----------+ +------------
-------------+
| tcpserver |------->| unixstreamserver |
+-----
----------+ +------------
-------------+
| v
+----------
------+ +--------------
----
-----------+
| udpserver |------->| unixdatagramserver |
+---------
-------+ +-----------
----
--------------+
貼**:
上述**實現乙個簡單的檔案伺服器功能。
繼續,將需要實現的功能新增到服務中:
從basehttprequesthandler繼承而來的myhttprequesthandler類,必須自己實現do_get(),以處理來自客戶端的get請求。
此外,如果有需要還可以覆蓋setup()和handle()這兩個函式,例如在實現https服務的時候就必須覆蓋上述函式。
Python筆記 網路伺服器之HTTPS服務
現在記錄https服務端的編寫。import ssl,socket,time if name main context ssl.sslcontext ssl.protocol sslv23 context.load cert chain certfile key pub.pem keyfile ke...
關於網路伺服器
假如我有數千萬甚至是上億的使用者資料,我想把使用者自增id和使用者名稱username放到快取裡。我的需求是,當要查詢使用者的資訊時,我想先從快取裡根據使用者名稱username獲取到使用者的id,然後再通過id在資料庫裡查詢使用者的資訊。我想當乙個使用者表達到上億的數量級別時,用自增id來查詢肯定...
網路伺服器宕機
1.伺服器程序終止 當伺服器程序終止時,伺服器傳送fin給客戶端,客戶端回以ack,客戶端進入close wait狀態,但還沒有結束連線。此時客戶端阻塞於fgets,客戶端繼續傳送buffer,伺服器傳送rst,客戶端readline返回0。而如果客戶端不理睬readline返回的rst,繼續wri...