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