Maksim Kasimov wrote: > I'm trying to write an server-application, using > BaseHTTPServer/BaseHTTPRequestHandler. > > When application is running, some client-application can post data to the > server, and BaseHTTPRequestHandler reads all headers and posted raw data from > "rfile", sends back response, than client/server session, than session closed > - that works just fine. > > how to check whether some data posted again by the client in the session, and > send response again in one session (and do such iterations util client stops > to post data) ? >
BaseHTTPServer is precisely that, a HTTP server. what you are describing is not (I'm pretty sure) not HTTP. HTTP/1.1 can do something similar and is supported by BaseHTTPServer: with HTTP/1.1 the stream is not closed between requests. This relies on a Content-Length field being present in all communications from the server to the client. To enable HTTP/1.1 you have to set the protocol_version attribute of your BaseHTTPRequestHandler derived class to "HTTP/1.1" . A little while back I wrote a small guide to HTTP in the context of BaseHTTPServer: http://crunchy.python-hosting.com/wiki/HttpServer If (as I think) you want to send multiple, inter-dependent messages each way under the aegis of one HTTP request, you should probably look at sublassing TCPServer (you can, and probably should, still use mimetools.Message to parse headers though). -- http://mail.python.org/mailman/listinfo/python-list