簡易web服務器
web服務器是指在物理服務器上搭建的網絡連接服務器,時刻等待客戶端的請求,並作出響應。
客戶端與服務器的通信,是以HTTP協議進行的,客戶端可以是任意支持HTTP協議的軟件
客戶端在向服務器發送HTTP請求前,先建立TCP連接,通過TCP連接發送HTTP請求,客戶端和服務器建立TCP連接用到套接字(socket)
套接字:可以理解為通信端點的抽象形式,可以讓一個程序通過文件描述符與另一個程序進行通信。
TCP套接字對:4元組:本地ip,本地端口,外部ip,外部端口
服務器套接字創建流程:
Created with Raphaël 2.1.2
created socket
bind
accept
connected socket
客戶端套接字創建流程
Created with Raphaël 2.1.2
created socket
connect
代碼:
import socket
SERVER_ADDRESS = (HOST, PORT) = '', 8888
REQUEST_QUEUE_SIZE = 5
def handle_request(client_connection):
request = client_connection.recv(1024)
print(request.decode())
http_response = b"""\ HTTP/1.1 200