摘要:譯者說于年月日發布,該版本正式支持的關鍵字,并且用舊版本編譯同樣可以使用這兩個關鍵字,這無疑是一種進步。原諒我沒排好版非阻塞非阻塞,單線程。其舊名稱仍作為一個別名。非阻塞,單線程。要使可以服務于加密的流量,需要把參數設置為一個對象。
譯者說
Tornado 4.3于2015年11月6日發布,該版本正式支持Python3.5的async/await關鍵字,并且用舊版本CPython編譯Tornado同樣可以使用這兩個關鍵字,這無疑是一種進步。其次,這是最后一個支持Python2.6和Python3.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于2015年11月6日發布,該版本正式支持Python3.5的async/await關鍵字,并且用舊版本CPython編譯Tornado同樣可以使用這兩個關鍵字,這無疑是一種進步。其次...
摘要:譯者說于年月日發布,該版本正式支持的關鍵字,并且用舊版本編譯同樣可以使用這兩個關鍵字,這無疑是一種進步。其次,這是最后一個支持和的版本了,在后續的版本了會移除對它們的兼容。 譯者說 Tornado 4.3于2015年11月6日發布,該版本正式支持Python3.5的async/await關鍵字,并且用舊版本CPython編譯Tornado同樣可以使用這兩個關鍵字,這無疑是一種進步。其次...
摘要:譯者說于年月日發布,該版本正式支持的關鍵字,并且用舊版本編譯同樣可以使用這兩個關鍵字,這無疑是一種進步。其次,這是最后一個支持和的版本了,在后續的版本了會移除對它們的兼容。 譯者說 Tornado 4.3于2015年11月6日發布,該版本正式支持Python3.5的async/await關鍵字,并且用舊版本CPython編譯Tornado同樣可以使用這兩個關鍵字,這無疑是一種進步。其次...
閱讀 1207·2021-11-17 09:33
閱讀 3613·2021-09-28 09:42
閱讀 3343·2021-09-13 10:35
閱讀 2498·2021-09-06 15:00
閱讀 2445·2021-08-27 13:12
閱讀 3614·2021-07-26 23:38
閱讀 1849·2019-08-30 15:55
閱讀 542·2019-08-30 15:53