本文主要是介绍Crow:http请求到Rule绑定的handler_的调用链,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Crow:基于req.rul查找路由Rule对象及匹配参数-CSDN博客
介绍了当接收到http请求后如何查找到Rule对象
Connection::do_read ->
HTTPParser::feed ->
而feed实际上会依此调用定义于http_parser_settings中的所有函数,并完成http信息的解析
const static http_parser_settings settings_{on_message_begin,on_method,on_url,on_header_field,on_header_value,on_headers_complete,on_body,on_message_complete,
};当HTTPParser::on_message_complete执行时,代表已经完成了http的解析,后续的调用链为:
HTTPParser::on_message_complete ->
HTTPParser::process_message -> //HTTPParser通过其成员handler_指向了Connection
Connection::->handle -> //Connection通过其成员handler_指向了Crow, 并将之前查找到的路由routing_handle_result_传递给了Crow
Crow->handle(req_, res, routing_handle_result_) ->
Router::handle //Crow通
这篇关于Crow:http请求到Rule绑定的handler_的调用链的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!