模块概述篇4--tornado.http1connection

概述:本模块是对HTTP/1.x协议实现的客户端和服务端
1、

#本类是用来处理网络“请求”数据的调度类
#想要学习实现一个http协议解析器本类是重点

#tornado中将作为server端收到的请求和client发出请求统一抽象为本类,已is_client来区分
#client模式由asyncclient创建
#server端由HTTP1ServerConnection作为构建类创建
class HTTP1Connection(httputil.HTTPConnection)
  //核心方法
  def _read_message(self, delegate)
  #1. 通过_parse_headers解析start_line, headers(httputil.HTTPHeaders.parse方法)。本方法描述了http报文头的规则。      
  #2. delegate.headers_received(start_line, headers)将header传递给Application,创建响应的handler,查看是否有必要解析body
  #server模式传递顺序:_ServerRequestAdapter.headers_received-->(Application)_RequestDispatcher.headers_received-->_RequestDispatcher.execute(参见tornado.web模块篇)
  #client模式待续
  #3. _read_body将body传递给handler。
  #传递顺序:_read_body-->_read_fixed_body->_RequestDispatcher.data_received->handler.data_received
  #等待handler _write_finished收尾
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,699评论 25 708
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,196评论 6 13
  • 无论简历多么光鲜亮丽,面试才是入职关键。因为那几十分钟,是决定你是否能让雇主真正动心、最终获得offer的必经之路...
    650555878492阅读 3,173评论 2 23
  • 最近开始频发焦虑症,不能闲下来,闲下来我就会想很多事情,而最严重的事情是,宝宝的终身大事,其实我一点儿也不捉...
    夏筱棉眠阅读 332评论 0 1