Here's a function that might be helpful if you want to talk directly to an SCGI server. import socket def scgi_request(content, **kwargs): headers = '\0'.join( ['%s\0%s' % item for item in [('CONTENT_LENGTH', len(content)), ('SCGI', 1)] + kwargs.items()]) return "%s:%s\0,%s" % (len(headers)+1, headers, content) def send_scgi(port, host='localhost', content='', PATH_INFO='/', SCRIPT_NAME='', **kwargs): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((host, port)) s.send(scgi_request(content, PATH_INFO=PATH_INFO, SCRIPT_NAME=SCRIPT_NAME, **kwargs)) return s.recv(1000) print send_scgi(11001)