(1)代码: #coding=utf8 import socket import re import multiprocessing def server_client(client): # 接受来自客户端的数据,这里需要经二进制数据解码 requestData = client.recv(1024).decode("utf-8") print(requestData) # 处理对数据通过换行符切割 requestPathlist = requestData.splitlines() if len(requestPathlist) > 1: # 获取客户端请求的第一行,例如:GET /index.html HTTP/1.1 requestPath = requestPathlist[0] print(requestPath) print("*"*30) # 通过正则表达式获取匹配字符,例如:GET /qt3to4.html HTTP/1.1 res = re.match(r"[^/]+(/[^ ]*)", requestPath) filname = None if res: print(res.groups()) # 得到请求路径,例如:/qt3to4.html filname = res.groups()[0] print(filname) # 拼接响应头:注意\r\n必须加 reponseHeaders = "HTTP/1.1 200 OK\r\n" reponseHeaders += "\r\n" try: if filname == "/":
使用python中的socket套接字完成一个简单的http服务器
最新推荐文章于 2024-10-14 09:08:48 发布
本文介绍如何使用Python的socket创建一个简单的HTTP服务器,并通过进程、线程和协程实现多任务处理,以提升服务器处理客户端请求的效率。分别探讨了进程(资源独享,高效但资源消耗大)、线程(资源共享,易死锁但资源消耗小)和协程(需安装额外包)的实现方法。
摘要由CSDN通过智能技术生成