服务器建立
HTTPServer
应用
1
2
3
4
5
6
| application = web.Application([
(r"/", MainPageHandler),
])
http_server = httpserver.HTTPServer(application)
http_server.listen(8080)
ioloop.IOLoop.instance().start()
|
对照应用例子理解源码
1
2
3
4
5
6
7
8
| def __init__(self, request_callback, no_keep_alive=False, io_loop=None,
xheaders=False, ssl_options=None, protocol=None, **kwargs):
self.request_callback = request_callback
self.no_keep_alive = no_keep_alive
self.xheaders = xheaders
self.protocol = protocol
TCPServer.__init__(self, io_loop=io_loop, ssl_options=ssl_options,
**kwargs) #HTTPServer 继承自 TCPServer, 初始化TCPServer
|
参数
- request_callback: 必须产生一个http回复, 例子中 application 即是回复
- xheaders: True(支持通过
x-real-ip
或x-forwarded-for
获取ip) False(当torando之前有反向代理或者负载均衡self.request.remote_ip只能获得127.0.0.1)
- ssl_options: ssl传输数据
ssl_options 使用例子
1
2
3
4
| HTTPServer(applicaton, ssl_options={
"certfile": os.path.join(data_dir, "mydomain.crt"),
"keyfile": os.path.join(data_dir, "mydomain.key"),
})
|
下面应该说下 TCPServer
主体内容在 TCPServer
,
TCPServer