一段话理解 WSGI
2019-07-14 本文已影响0人
shallows2013
网上很多文章都详细说明了WSGI是什么,比如https://my.oschina.net/leejun2005/blog/486771 就说得很具体:
Server 和 Application 之间怎么通信,就是 WSGI 的功能。它规定了 app(environ, start_response) 的接口,server 会调用 application,并传给它两个参数:environ 包含了请求的所有信息,start_response 是 application 处理完之后需要调用的函数,参数是状态码、响应头部还有错误信息。
仅仅看这段话,初学者任然很难理解。但结合service和app的工作,就能很容易理解什么是WSGI了:
service会绑定、监听特定接口,处理tcp请求,对其中的http请求解析,将解析得出的method、path等信息保存至类型为dict的变量environ里,然后调用 app(environ, start_response) 。start_response作为一个函数提供给app返回response的head信息。app(environ, start_response) 的返回值则为app处理完的response内容。接下来service将response内容和head信息生成http response返回给请求方。