WSGI的工作流程
程序员文章站
2022-07-15 11:37:35
...
1.WSGI作用
WSGI是一套协议,主要作用是规范了wsgi server 和wsgi app之间的接口,
1.1 工作流程图
可参考图:
1.2 主要作用
具体表现为如下:
- 将http请求头部的k,v对封装为字典
environ
和函数start_response
传递给wsgi app; - wsgi会调用wsgi app进行处理请求,
在调用前首先由wsgi app调用start_response构建相应包头
- 总结代码如下:
下面时python 手册上的一个案例,其中wsgiref就是一个框架,现在只要定义好app函数或者其他可调用类型,然后将environ和start_response传递给app,最后将app可调用类型传递给框架wsgi server框架make_server已经实现动态页面。
from wsgiref.util import setup_testing_defaults
from wsgiref.simple_server import make_server
# A relatively simple WSGI application. It's going to print out the
# environment dictionary after being updated by setup_testing_defaults
#############################################################
#主要给app传递environ和start_response函数
#############################################################
def simple_app(environ, start_response):
setup_testing_defaults(environ)
status = '200 OK'
headers = [('Content-type', 'text/plain; charset=utf-8')]
start_response(status, headers)
ret = [("%s: %s\n" % (key, value)).encode("utf-8")
for key, value in environ.items()]
return ret
httpd = make_server('', 8000, simple_app)
print("Serving on port 8000...")
httpd.serve_forever()
2. url参数解析
2.1 查询字符串QUERY_STRING
查询字符串的作用和意义,查询字符串就是进入某一菜单或某一栏目的一个url,这个在设计网站的url时比较注重,举例如下:
2.2 路径字符串PATH_INFO
路径字符串就是如上图片中得category.html
在后端程序主其实很大一部分精力就是在处理PATH_INFO
和QUERY_STRING
信息,根据他俩得信息给用户反馈具体得页面内容。因此这也就是wsgi将请求字典传递给后端程序,后端程序第一步就要解决分析的k v值。
3. webob解析url
webob模块官网学习参考
3.1 解析
上一篇: 004--利用系统溢出漏洞提权
下一篇: pyspark启动python的版本设置