diff --git a/basic-http-get/http_server_get.py b/basic-http-get/http_server_get.py new file mode 100644 index 0000000000000000000000000000000000000000..e63802a2714c68ea1d945fd2e78cd7ac020fe3f9 --- /dev/null +++ b/basic-http-get/http_server_get.py @@ -0,0 +1,44 @@ +from http.server import BaseHTTPRequestHandler +from urllib import parse + + +class GetHandler(BaseHTTPRequestHandler): + + def do_GET(self): + parsed_path = parse.urlparse(self.path) + message_parts = [ + 'CLIENT VALUES:', + 'client_address={} ({})'.format( + self.client_address, + self.address_string()), + 'command={}'.format(self.command), + 'path={}'.format(self.path), + 'real path={}'.format(parsed_path.path), + 'query={}'.format(parsed_path.query), + 'request_version={}'.format(self.request_version), + '', + 'SERVER VALUES:', + 'server_version={}'.format(self.server_version), + 'sys_version={}'.format(self.sys_version), + 'protocol_version={}'.format(self.protocol_version), + '', + 'HEADERS RECEIVED:', + ] + for name, value in sorted(self.headers.items()): + message_parts.append( + '{}={}'.format(name, value.rstrip()) + ) + message_parts.append('') + message = '\r\n'.join(message_parts) + self.send_response(200) + self.send_header('Content-Type', + 'text/plain; charset=utf-8') + self.end_headers() + self.wfile.write(message.encode('utf-8')) + + +if __name__ == '__main__': + from http.server import HTTPServer + server = HTTPServer(('localhost', 8080), GetHandler) + print('Starting server, use <Ctrl-C> to stop') + server.serve_forever() \ No newline at end of file