Python筆記 網路伺服器之HTTPS服務

2021-06-13 11:04:30 字數 2500 閱讀 8365

現在記錄https服務端的編寫。

import ssl, socket, time

if __name__ == "__main__":

context = ssl.sslcontext(ssl.protocol_sslv23)

#context.load_cert_chain(certfile=『key_pub.pem』, keyfile=『key_priv.pem')   #可以分開定義公鑰和私鑰檔案,也可以合併成乙個檔案

context.load_cert_chain(certfile=』cert.pem')

bindsocket = socket.socket()

bindsocket.bind(('127.0.0.1', 443))

bindsocket.listen(5)

newsocket, fromaddr = bindsocket.accept()

connstream = context.wrap_socket(newsocket, server_side=true)

try:

data = connstream.recv(1024)

print(data)

buf = 'hi nn%f\n\n\n\n'%time.time()

buf = buf.encode()

connstream.send(buf)

finally:

connstream.shutdown(socket.shut_rdwr)

connstream.close()

bindsocket.close()

此例沒有使用socketserver框架,目的在於測試ssl模組的用法。

繼續,用框架實現https服務

說明:handle()函式負責所有與客戶端的通訊。客戶端連線過來之後,ssl模組載入證書,並用sslsocket對socket進行封裝,遮蔽底層的加密通訊細節。

下面再給出https檔案伺服器**,檔案訪問功能由******httprequesthandler實現,資料加密傳輸由ssl實現。

最後,要指出的是setup()和handle()都是在客戶端開始連線之後才被呼叫,從順序上來說setup()先於handle()。

Python筆記 網路伺服器之HTTP服務

python筆記 網路伺服器之http服務 此實驗所用python的版本為3.2,不同版本會有所不同。簡述 用python實現網路服務,總體說來有兩種方式 一是使用相對底層的socket類,自己實現所有的細節 二是使用python所提供的網路伺服器框架socketserver,集中精力處理核心業務。...

關於網路伺服器

假如我有數千萬甚至是上億的使用者資料,我想把使用者自增id和使用者名稱username放到快取裡。我的需求是,當要查詢使用者的資訊時,我想先從快取裡根據使用者名稱username獲取到使用者的id,然後再通過id在資料庫裡查詢使用者的資訊。我想當乙個使用者表達到上億的數量級別時,用自增id來查詢肯定...

網路伺服器宕機

1.伺服器程序終止 當伺服器程序終止時,伺服器傳送fin給客戶端,客戶端回以ack,客戶端進入close wait狀態,但還沒有結束連線。此時客戶端阻塞於fgets,客戶端繼續傳送buffer,伺服器傳送rst,客戶端readline返回0。而如果客戶端不理睬readline返回的rst,繼續wri...