python中一个简单的webserver 2013-02-24 15:37:49
分类: Python/Ruby
支持多线程的webserver
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#!/usr/bin/python from SocketServer import ThreadingMixIn
from BaseHTTPServer import HTTPServer,BaseHTTPRequestHandler
class myHandler(BaseHTTPRequestHandler):
#Handler for the GET requests
def do_GET( self ):
self .send_response( 200 )
self .send_header( ‘Content-type‘ , ‘text/html‘ )
self .send_header( ‘Uri‘ , self .path)
self .end_headers()
self .wfile.write( "hi multi threading test!\n" )
class ThreadingHttpServer(ThreadingMixIn, HTTPServer):
pass
PORT_NUM = 8080
serverAddress = ("", PORT_NUM)
server = ThreadingHttpServer(serverAddress, myHandler)
print ‘Started httpserver on port ‘ , PORT_NUM
server.serve_forever() |
测试:
curl -v http://127.0.0.1:8080/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@localhost ~]# curl -v http://127.0.0.1:8080/ * About to connect() to 127.0.0.1 port 8080 * Trying 127.0.0.1... connected * Connected to 127.0.0.1 (127.0.0.1) port 8080 > GET / HTTP/1.1 > User-Agent: curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5 > Host: 127.0.0.1:8080 > Accept: */* > < HTTP/1.0 200 OK < Server: BaseHTTP/0.3 Python/2.4.3 < Date: Sun, 24 Feb 2013 07:28:46 GMT < Content-type: text/html < Uri: / hi multi threading test! * Closing connection #0 |