JasonZhou的tornado 4.3源码概述笔记

模块概述篇4--tornado.http1connection

2016-10-25  本文已影响0人  交话费的时间放寒假

概述:本模块是对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收尾
上一篇 下一篇

猜你喜欢

热点阅读