def process_request(conn): r = conn.recv(1024) r = r.decode('utf-8') log("请求结束 ({})".format(r), flush=True) if len(r) < 2: conn.close() else: request = Request() # todo debug log # log("request {}".format(dir(request)), flush=True) request.method = r.split()[0] path = r.split()[1] request.add_headers(r.split("\r\n\r\n", 1)[0].split("\r\n")[1:]) request.body = r.split("\r\n\r\n", 1)[1] response = response_for_path(path, request) conn.sendall(response) log("响应完成 response {}".format(response)) conn.close()