1. 程式人生 > >python Web伺服器(1)

python Web伺服器(1)

最近半個月學了python web方面的有關知識,web開發通常是從某一些框架開始學習 比如Django,flask。但是我個人覺得只有自己實現一遍才能更好的理解,印象也會更加深刻。希望個人的經驗能對你有一些幫助

(1) 編寫一個靜態頁面的web伺服器

編寫web伺服器之前,你需要了解一下知識: socket,http協議,tcp/ip協議,作業系統程序等方面的知識

一次HTTP請求所經歷的步驟如下: (1)客戶端(通常為瀏覽器)傳送請求 (2)伺服器建立socket (3)socket 繫結伺服器 (4)socket 監聽 (5)socket 接受客戶端請求 (6)多程序處理客戶端請求 (7)中斷請求

程式碼

import socket

from multiprocessing import Process


def handle_client(client_socket):
    request_data = client_socket.recv(1024)
    print("request_data:" , request_data)

    response_start_line = "HTTP/1.1 200 OK\r\n"
    response_heads = "Server:Myserver\r\n"
    response_body = "This is a easy static web server"
response = response_start_line + response_heads + "\r\n" + response_body print("response_data:", response) client_socket.send(bytes(response, "utf-8")) client_socket.close() if __name__ == "__main__": server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) server_socket.
bind(("", 8000)) server_socket.listen(128) while True: client_socket,client_address = server_socket.accept() print("[%s %s]使用者連線上了" % client_address) client_socket_process = Process(target=handle_client, args=(client_socket,)) client_socket_process.start() client_socket.close() ```