今天的进度更新到《python标准库》的第十二章 Internet。 初读之下,略感陌生,拿起了之前只读了1/3的《自顶向下方法》复习起来,结合之前的Tcp/Udp的一些小demo之后,感觉理解和思考更进了一个层次,之前很多掠过一眼的东西,现在能引起我的思考。愿一步一个脚印。 今天主要打了HTTP中 GET和POST两大方法的实现。虽然书中给出的报文似乎不是很标准,但是对其实现有了更进一步的思考。 基于BaseHTTPServer
这个库,实现关于自己的GET POST等方法。下面附上代码
这是POST方法实现
from BaseHTTPServer import BaseHTTPRequestHandlerimport urlparseclass GetHandler(BaseHTTPRequestHandler): def do_GET(self): parsed_path = urlparse.urlparse(self.path) message_parts = [ 'CLIENT VALUES:', 'client_address = %s (%s)'%(self.client_address, self.address_string()), 'command=%s'%self.command, 'path=%s',self.path, 'real path=%s'%parsed_path.path, 'query=%s'%parsed_path.query, 'request_version=%s'%self.request_version, '', 'SERVER VALUES:', 'server_version=%s'%self.server_version, 'sys_version=%s'%self.sys_version, 'protocol_version=%s'%self.protocol_version, '', 'HEADERS RECEIVED:' ] for name,value in sorted(self.headers.items()): message_parts.append('%s=%s'%(name,value.rstrip())) message_parts.append('') message = '/r/n'.join(message_parts) self.send_response(200) self.end_headers() self.wfile.write(message) returnif __name__ =='__main__': from BaseHTTPServer import HTTPServer server = HTTPServer(('localhost',8080),GetHandler) server.serve_forever()这是GET方法实现 里面还有一些不懂的地方,明日再战吧。
新闻热点
疑难解答