%PDF- %PDF-
| Direktori : /proc/self/root/lib64/python2.7/site-packages/tornado/ |
| Current File : //proc/self/root/lib64/python2.7/site-packages/tornado/httpserver.pyo |
�
��L]c @� s d Z d d l m Z m Z m Z m Z d d l Z d d l m Z d d l m
Z
m Z d d l m
Z
d d l m Z d d l m Z d d l m Z d d
l m Z d d l m Z d e e e j f d
� � YZ d e f d � � YZ d e j f d � � YZ e j Z d S( s� A non-blocking, single-threaded HTTP server.
Typical applications have little direct interaction with the `HTTPServer`
class except to start a server at the beginning of the process
(and even that is often done indirectly via `tornado.web.Application.listen`).
.. versionchanged:: 4.0
The ``HTTPRequest`` class that used to live in this module has been moved
to `tornado.httputil.HTTPServerRequest`. The old name remains as an alias.
i ( t absolute_importt divisiont print_functiont with_statementN( t
native_str( t HTTP1ServerConnectiont HTTP1ConnectionParameters( t gen( t httputil( t iostream( t netutil( t TCPServer( t Configurablet
HTTPServerc
B� s� e Z d Z d � Z e d e d d e d d d d d d d � Z e d � � Z e d � � Z e
j d � � Z d � Z
d � Z d � Z RS(
sq A non-blocking, single-threaded HTTP server.
A server is defined by a subclass of `.HTTPServerConnectionDelegate`,
or, for backwards compatibility, a callback that takes an
`.HTTPServerRequest` as an argument. The delegate is usually a
`tornado.web.Application`.
`HTTPServer` supports keep-alive connections by default
(automatically for HTTP/1.1, or for HTTP/1.0 when the client
requests ``Connection: keep-alive``).
If ``xheaders`` is ``True``, we support the
``X-Real-Ip``/``X-Forwarded-For`` and
``X-Scheme``/``X-Forwarded-Proto`` headers, which override the
remote IP and URI scheme/protocol for all requests. These headers
are useful when running Tornado behind a reverse proxy or load
balancer. The ``protocol`` argument can also be set to ``https``
if Tornado is run behind an SSL-decoding proxy that does not set one of
the supported ``xheaders``.
To make this server serve SSL traffic, send the ``ssl_options`` keyword
argument with an `ssl.SSLContext` object. For compatibility with older
versions of Python ``ssl_options`` may also be a dictionary of keyword
arguments for the `ssl.wrap_socket` method.::
ssl_ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
ssl_ctx.load_cert_chain(os.path.join(data_dir, "mydomain.crt"),
os.path.join(data_dir, "mydomain.key"))
HTTPServer(applicaton, ssl_options=ssl_ctx)
`HTTPServer` initialization follows one of three patterns (the
initialization methods are defined on `tornado.tcpserver.TCPServer`):
1. `~tornado.tcpserver.TCPServer.listen`: simple single-process::
server = HTTPServer(app)
server.listen(8888)
IOLoop.current().start()
In many cases, `tornado.web.Application.listen` can be used to avoid
the need to explicitly create the `HTTPServer`.
2. `~tornado.tcpserver.TCPServer.bind`/`~tornado.tcpserver.TCPServer.start`:
simple multi-process::
server = HTTPServer(app)
server.bind(8888)
server.start(0) # Forks multiple sub-processes
IOLoop.current().start()
When using this interface, an `.IOLoop` must *not* be passed
to the `HTTPServer` constructor. `~.TCPServer.start` will always start
the server on the default singleton `.IOLoop`.
3. `~tornado.tcpserver.TCPServer.add_sockets`: advanced multi-process::
sockets = tornado.netutil.bind_sockets(8888)
tornado.process.fork_processes(0)
server = HTTPServer(app)
server.add_sockets(sockets)
IOLoop.current().start()
The `~.TCPServer.add_sockets` interface is more complicated,
but it can be used with `tornado.process.fork_processes` to
give you more flexibility in when the fork happens.
`~.TCPServer.add_sockets` can also be used in single-process
servers if you want to create your listening sockets in some
way other than `tornado.netutil.bind_sockets`.
.. versionchanged:: 4.0
Added ``decompress_request``, ``chunk_size``, ``max_header_size``,
``idle_connection_timeout``, ``body_timeout``, ``max_body_size``
arguments. Added support for `.HTTPServerConnectionDelegate`
instances as ``request_callback``.
.. versionchanged:: 4.1
`.HTTPServerConnectionDelegate.start_request` is now called with
two arguments ``(server_conn, request_conn)`` (in accordance with the
documentation) instead of one ``(request_conn)``.
.. versionchanged:: 4.2
`HTTPServer` is now a subclass of `tornado.util.Configurable`.
c O� s d S( N( ( t selft argst kwargs( ( s8 /usr/lib64/python2.7/site-packages/tornado/httpserver.pyt __init__ s c C� s� | | _ | | _ | | _ | | _ t d | d | d | d |
pE d d | d | � | _ t j | d | d | d
|
d | �t � | _ d S( Nt
decompresst
chunk_sizet max_header_sizet header_timeouti t
max_body_sizet body_timeoutt io_loopt ssl_optionst max_buffer_sizet read_chunk_size(
t request_callbackt
no_keep_alivet xheaderst protocolR t conn_paramsR R t sett _connections( R R R R R R R t decompress_requestR R t idle_connection_timeoutR R R ( ( s8 /usr/lib64/python2.7/site-packages/tornado/httpserver.pyt
initialize� s c C� s t S( N( R
( t cls( ( s8 /usr/lib64/python2.7/site-packages/tornado/httpserver.pyt configurable_base� s c C� s t S( N( R
( R&