Please add an "Content-Length" entry in front of the "Content-Type" entry.
Sukram ----- Original Message ----- From: "Jeremy Aiyadurai" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Friday, May 03, 2002 4:18 AM Subject: HTTP headers problem > hi all > > here is a barebone webserver. I am having problems with the http headers. I > can get a page to load in > netscape, but not Internet explorer. > > the following is the code. please pay close attention to the > getParse(),createHeader() and contentType() subroutines. > > Your help is much appreciated. > > Jeremy A. > > ############################################################################ > ####### > #!python > > > >from socket import * > import re > >from string import * > > > class webserver: > > def __init__(self,port,wwwroot): > self.PORT = port > self.WWWROOT = wwwroot > > def start(self): > print "Starting server..." > ss = socket(AF_INET,SOCK_STREAM) > ss.bind(("127.0.0.1",self.PORT)) > print "Server Bound" > ss.setblocking(1) > ss.listen(1) > print "\nListening..." > self.handle(ss) > > def handle(self, ss): > while 1: > client,addr = ss.accept() > self.Analyze(client) > > > def Analyze(self,client): > response = self.stringread(client) > method,url,proto = split(response," ") > proto = self.chomp(proto) > print method > result = None > response = self.stringread(client) > result = re.match('\S',response) > print result > while result == None: > response = self.stringread(client) > result = re.match('\S',response) > print result > > if method == "GET": > self.getParse(url,proto,client) > > > def chomp(self,s): > if s[-2:] == '\r\n': > return s[:-2] > if s[-1:] == '\r' or s[-1:] == '\n': > return s[:-1] > return s > > > > def getParse(self,url,proto,client): > if url == "/": > print "in" > url = "index.html" > htm = open(""+url+"","r") > buf = htm.read() > self.createHeader(url,proto,client) > client.send(buf) > client.shutdown(2) > > > > def createHeader(self,url,proto,client): > print ""+proto+" 200 OK\n" > client.send(proto+" 200 OK\r\n") > self.contentType(url,client) > > def contentType(self,url,client): > client.send("Content-Type: text/html\r\n\r\n") > > def stringread(self,ss): > string = "" > while 1: > response = ss.recv(1) > if response != "\n": > string = string+""+response > else: > break > return string+"\n" > > > > > if __name__ == "__main__": > server = webserver(80,'/') # Make sure port is passed as integer > server.start() # '()' again > > > _______________________________________________ > ActivePython mailing list > [EMAIL PROTECTED] > To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs > Other options: http://listserv.ActiveState.com/mailman/listinfo/ActivePython > _______________________________________________ ActivePython mailing list [EMAIL PROTECTED] To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs Other options: http://listserv.ActiveState.com/mailman/listinfo/ActivePython