前言:这段代码是有问题的,下面给出了解决方案。
import socket
import multiprocessing
import re
def service_client(new_socket):
"""为这个客户端返回数据"""
# 接收浏览器发送过来的请求, 即http请求
# GET / HTTP/1.1
# ......
request = new_socket.recv(1024).decode("utf8") # request:请求(的事物)
# print(">>>"*50)
# print(request)
# print(type(request))
request_lines = request.splitlines()
print("")
print(">"*20)
print(request_lines)
# GET /index.html HTTP/1.1
# get post put del
file_name = ""
ret = re.match(r"[^/]+(/[^ ]*)", request_lines[0]) # + 表示匹配前一个字符至少出现1次
if ret:
file_name = ret.group(1)
print("*"*50, file_name)
if file_name == "/":
file_name = "/index.html"
# 2.返回http格式的数据,给浏览器