![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Tornado
StarSky_Ye
一个在程序员路上的菜鸟
展开
-
Tornado6.0.3-源码分析之Application
一、回顾联结HTTPServer从前面上一节对HTTPServer的源码分析,我们知道Application类需要满足继承至HTTPServerConnectionDelegate类,并实现其start_request方法,该方法返回一个HTTPMessageDelegate类的实例,从而后续HTTPServer可以把相应的http的请求提交给HTTPMessageDelegate类相关的实例去做逻辑处理;二、Application的类间关系通过查看源码,可以知道,Application并不是直接继承原创 2020-08-16 17:25:20 · 410 阅读 · 0 评论 -
Tornado6.0.3-源码分析之HTTPServer
一、前述在开始正篇之前,先简单了解下http协议。http协议是基于客户/服务器模型,面向tcp连接的协议。典型的http事务处理过程如下:(1)客户端与服务器建立连接;(2)客户端向服务器提出请求;(3)服务器接受请求,并根据请求返回对应的响应;(4)客户端与服务器关闭连接。Tornado在实现http协议时,有一种代理模式的味道。所谓代理,就是在中间起一个沟通协调作用的主体;以二手车交易来说,在买家和卖主之间的中间商,就是一个代理的作用,负责不断把信息在买家和卖主之间传递,起一个桥梁作用。原创 2020-05-29 22:55:10 · 624 阅读 · 0 评论 -
Tornado-6.0.3源码分析之TCPServer
一、前述在IOStream之上,区分为服务端和客户端的不同实现,对于服务端,实现方向是TCPServer–> HTTPServer --> web应用实现;对于客户端,实现方向是TCPClient --> HTTPClient;在本系列的源码分析上,优先以服务器方向为准。TCPServer类的使用方法是,继承该类并实现其中的handle_stream方法,这个handle_s...原创 2020-05-10 21:31:39 · 381 阅读 · 0 评论 -
Tornado-6.0.3源码分析之IOStream类
一、前述前面讲到的IOLoop类是可以实现对套接字相关的网络读写状态的监听和回调处理。在Tornado的实现里面,对于网络的数据的读写操作,进行了一层封装,以IOStream类,对上提供相应的操作接口。IOStream类并不是实时进行网络数据的读写操作,而是维持有一个内存缓冲区的操作,当需要读取数据时,先在内存缓冲区内查找是否满足读取条件,若满足,则直接从内存缓冲区中将数据读取提交给上层处理;若...原创 2020-04-25 20:06:57 · 366 阅读 · 0 评论 -
Tornado-6.0.3源码分析之IO Event 事件的IOLoop类及其子类
一、前述通过上一篇的Configurable类的相关介绍,这里再进一步说明IOLoop类。为了方便查看IOLoop类相应的类关系。这里也放置一张类图。从轷原创 2020-04-12 22:22:26 · 538 阅读 · 0 评论 -
Tornado-6.0.3源码分析之IO Event 事件的Configurable类
一、前述要想理解tornado的io event实现,主要是要学习熟悉python 标准库的asyncio库。对于这个库的API的,python在规划是分为两个层次的,如果是为了理解Tornado库,至少要先理解下,Asyncio库的Future相关知识和Event Loop相关知识。讲解说明Asyncio库,不在这篇文章的范围内。二、结构说明对于Tornado的IOLoop的整体实现,所涉...原创 2020-04-07 23:07:25 · 338 阅读 · 0 评论 -
Tornado-6.0.3源码分析之前述
闲言之语许久没有想起写博客了,之前尝试写了几遍,但是都没有好好坚持下来。以致于,很多自己遇到的问题,自己想到的解决方案没有被记录下来。如今回想起来,竟也是几乎全忘光了,突然感觉这种状态不能这么继续下去。如今,在学习python的一个web框架库tornado,感觉自己应该需要不断整理输出自己的思路,记录自己的学习历程;对自己而言,也是一种学习方式,对他人而言,也是一种交流方式;本人使用的是tor...原创 2020-04-06 14:19:02 · 491 阅读 · 0 评论