tornado httpserver

這是一個非阻塞的,單線程的httpserver。這個類通常是不會被應用程序直接調用的,它通常是被上層的tornado.web.Application.listen方法調用,由於這個listen方法是這樣定義的python

 def listen(self, port, address="", **kwargs):
        """Starts an HTTP server for this application on the given port.

        This is a convenience alias for creating an `.HTTPServer`
        object and calling its listen method.  Keyword arguments not
        supported by `HTTPServer.listen <.TCPServer.listen>` are passed to the
        `.HTTPServer` constructor.  For advanced uses
        (e.g. multi-process mode), do not use this method; create an
        `.HTTPServer` and call its
        `.TCPServer.bind`/`.TCPServer.start` methods directly.

        Note that after calling this method you still need to call
        ``IOLoop.current().start()`` to start the server.

        Returns the `.HTTPServer` object.

        .. versionchanged:: 4.3
           Now returns the `.HTTPServer` object.
        """
        # import is here rather than top level because HTTPServer
        # is not importable on appengine
        from tornado.httpserver import HTTPServer
        server = HTTPServer(self, **kwargs)
        server.listen(port, address)
        return server

 

@staticmethod和@classmethod,實例方法的區別web

@classmethod 是一個函數修飾符,它表示接下來的是一個類方法,而對於日常咱們見到的則叫作實例方法。 類方法的第一個參數cls,而實例方法的第一個參數是self,表示該類的一個實例。由於持有cls參數,能夠來調用類的屬性,類的方法,實例化對象等,避免硬編碼。app

靜態方法則沒有,它基本上跟一個全局函數相同,通常來講用的不多,只是包含在類結構中,實際跟類沒有關係,要調用到這個類的一些屬性方法,只能直接類名.屬性名或類名.方法名。函數

 

版本4.0的變化tornado

HTTPRequest類被移動到了tornado.httputil.HTTPServerRequest,原來的名字仍是能夠使用的oop

HTTpServer默認支持keep-alive鏈接,自動支持HTTP/1.1,當客戶端要求keep-alive鏈接時變爲HTTP/1.0
this

相關文章
相關標籤/搜索