国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Tornado 4.3文檔翻譯: HTTP 服務和客戶端-非阻塞 HTTP server

tianyu / 2266人閱讀

摘要:譯者說于年月日發布,該版本正式支持的關鍵字,并且用舊版本編譯同樣可以使用這兩個關鍵字,這無疑是一種進步。原諒我沒排好版非阻塞非阻塞,單線程。其舊名稱仍作為一個別名。非阻塞,單線程。要使可以服務于加密的流量,需要把參數設置為一個對象。

譯者說

Tornado 4.3于2015年11月6日發布,該版本正式支持Python3.5async/await關鍵字,并且用舊版本CPython編譯Tornado同樣可以使用這兩個關鍵字,這無疑是一種進步。其次,這是最后一個支持Python2.6Python3.2的版本了,在后續的版本了會移除對它們的兼容。現在網絡上還沒有Tornado4.3的中文文檔,所以為了讓更多的朋友能接觸并學習到它,我開始了這個翻譯項目,希望感興趣的小伙伴可以一起參與翻譯,項目地址是tornado-zh on Github,翻譯好的文檔在Read the Docs上直接可以看到。歡迎Issues or PR。本節感謝@ladrift翻譯

PS:本節最好直接在https://tornado-zh.readthedocs.org或者http://tornado.moelove.info/閱讀,以獲得更好的閱讀體驗(格式支持)。原諒我沒排好版QAQ tornado.httpserver — 非阻塞 HTTP server

非阻塞,單線程 HTTP server。

典型的應用很少與 HTTPServer 類直接交互,除非在進程開始時開啟server (盡管這經常間接的通過 tornado.web.Application.listen 來完成)。

在 4.0 版更改: 曾經在此模塊中的 HTTPRequest 類 已經被移到 tornado.httputil.HTTPServerRequest 。 其舊名稱仍作為一個別名。

HTTP Server class tornado.httpserver.HTTPServer(args, *kwargs)

非阻塞,單線程 HTTP server。

一個server可以由一個 HTTPServerConnectionDelegate 的子類定義, 或者,為了向后兼容,由一個以 HTTPServerRequest 為參數的callback定義。 它的委托對象(delegate)通常是 tornado.web.Application 。

HTTPServer 默認支持keep-alive鏈接(對于HTTP/1.1自動開啟,而對于HTTP/1.0, 需要client發起 Connection: keep-alive 請求)。

如果 xheaders 是 True ,我們支持 X-Real-Ip/X-Forwarded-For 和 X-Scheme/X-Forwarded-Proto 首部字段,他們將會覆蓋 所有請求的 remote IP 與 URI scheme/protocol 。 當Tornado運行在反向代理或者負載均衡(load balancer)之后時, 這些首部字段非常有用。如果Tornado運行在一個不設置任何一個支持的 xheaders 的SSL-decoding代理之后, protocol 參數也能設置為 https 。

要使server可以服務于SSL加密的流量,需要把 ssl_option 參數 設置為一個 ssl.SSLContext 對象。為了兼容舊版本的Python ssl_options 可能也是一個字典(dictionary),其中包含傳給 ssl.wrap_socket 方法的關鍵 字參數。:

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 的初始化依照以下三種模式之一(初始化方法定義 在 tornado.tcpserver.TCPServer ):

listen: 簡單的單進程:
server = HTTPServer(app)
server.listen(8888)
IOLoop.current().start()

在很多情形下, tornado.web.Application.listen 可以用來避免顯式的 創建 HTTPServer 。

bind/start: 簡單的多進程:
server = HTTPServer(app)
server.bind(8888)
server.start(0)  # Fork 多個子進程
IOLoop.current().start()

當使用這個接口時,一個 IOLoop 不能被傳給 HTTPServer 的構造方法(constructor)。 start 將默認 在單例 IOLoop 上開啟server。

add_sockets: 高級多進程:
sockets = tornado.netutil.bind_sockets(8888)
tornado.process.fork_processes(0)
server = HTTPServer(app)
server.add_sockets(sockets)
IOLoop.current().start()

add_sockets 接口更加復雜, 但是,當fork發生的時候,它可以與 tornado.process.fork_processes 一起使用來提供更好的靈活性。 如果你想使用其他的方法,而不是 tornado.netutil.bind_sockets , 來創建監聽socket, add_sockets 也可以被用在單進程server中。

在 4.0 版更改: 增加了 decompress_request, chunk_size, max_header_size, idle_connection_timeout, body_timeout, max_body_size 參數。支持 HTTPServerConnectionDelegate 實例化為 request_callback 。

在 4.1 版更改: HTTPServerConnectionDelegate.start_request 現在需要傳入兩個參數來調用 (server_conn, request_conn) (根據文檔內容)而不是一個 (request_conn).

在 4.2 版更改: HTTPServer 現在是 tornado.util.Configurable 的一個子類。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37861.html

相關文章

  • Tornado 4.3文檔翻譯: 用戶指南-介紹

    摘要:譯者說于年月日發布,該版本正式支持的關鍵字,并且用舊版本編譯同樣可以使用這兩個關鍵字,這無疑是一種進步。其次,這是最后一個支持和的版本了,在后續的版本了會移除對它們的兼容。 譯者說 Tornado 4.3于2015年11月6日發布,該版本正式支持Python3.5的async/await關鍵字,并且用舊版本CPython編譯Tornado同樣可以使用這兩個關鍵字,這無疑是一種進步。其次...

    chaos_G 評論0 收藏0
  • Tornado 4.3文檔翻譯: 用戶指南-介紹

    摘要:譯者說于年月日發布,該版本正式支持的關鍵字,并且用舊版本編譯同樣可以使用這兩個關鍵字,這無疑是一種進步。其次,這是最后一個支持和的版本了,在后續的版本了會移除對它們的兼容。 譯者說 Tornado 4.3于2015年11月6日發布,該版本正式支持Python3.5的async/await關鍵字,并且用舊版本CPython編譯Tornado同樣可以使用這兩個關鍵字,這無疑是一種進步。其次...

    xumenger 評論0 收藏0
  • Tornado 4.3文檔翻譯: 用戶指南-異步阻塞I/O

    摘要:譯者說于年月日發布,該版本正式支持的關鍵字,并且用舊版本編譯同樣可以使用這兩個關鍵字,這無疑是一種進步。其次,這是最后一個支持和的版本了,在后續的版本了會移除對它們的兼容。 譯者說 Tornado 4.3于2015年11月6日發布,該版本正式支持Python3.5的async/await關鍵字,并且用舊版本CPython編譯Tornado同樣可以使用這兩個關鍵字,這無疑是一種進步。其次...

    smartlion 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<