网站建设对数据库有何要求,挂机宝怎么做网站,网站建设域名和空间,wordpress 路径函数Python实实现现简简易易版版的的Web服服务务器器(推推荐荐)下面给大家介绍python实现简易版的web服务器#xff0c;具体内容详情大家通过本文学习 #xff01;1、请自行了解HTTP协议/article/133883.htm (点击跳转)2、创建Socket服务#xff0c;监听指定IP和端口3、以阻塞方…Python实实现现简简易易版版的的Web服服务务器器(推推荐荐)下面给大家介绍python实现简易版的web服务器具体内容详情大家通过本文学习 1、请自行了解HTTP协议/article/133883.htm (点击跳转)2、创建Socket服务监听指定IP和端口3、以阻塞方式等待客户端连接、读取客户端请求数据并进行解析5、准备服务器运行上下文6、处理客户端请求数据7、根据用户请求路径读取文件8、返回响应结果给客户端9、程序入口10、目录结构11、运行python wsgiserver.py app:run12、源码a.wsgiserver.py文件#encoding:utf-8import socketimport StringIOimport sysimport loggingfrom datetime import datetimelogger logging.get ogger(__name__)class WSGIServer(object):address_family socket.AF_INETsocket_type socket.SOCK_STREAMrequest_queue_size 30recv_size 1024def __init__(self, server_address):self._listen_socket _listen_socket socket.socket(self.address_family,self.socket_type) _listen_socket.setsockopt(socket.SO _SOCKET, socket.SO_REUSEADDR,1) _listen_socket.bind(server_address)_listen_socket.listen(self.request_queue_size)_host, _port _listen_socket.getsockname()self._server_name socket.getfqdn(_host)self._server_port _portself._headers_set []self._application Noneself._client Noneself._request_data Noneself._request_method Noneself._path Noneself._request_version Noneself._start_response Nonedef set_application(self, application):self._application applicationdef server_forever(self):_listen_socket self._listen_socket(listen on %s:%s, self._server_name, self._server_port) while 1:try:self._client, _addr _listen_socket.accept()self._handle_request(_addr)except KeyboardInterrupt as e:(interrupt )breakexcept BaseException as e:logger.error(e)def _handle_request(self, client_addr):self._request_data _request_data self._client.recv(self.recv_size)self._parse_reques