知识点

背景

WSGI:用于牛逼的web服务器与网站程序进行交互的协议

交互原理

image-20200725212644878

浏览器访问一个网站,此时会将用户的请求发送给web服务器,web服务器通过WSGI协议调用【应用程序框架】中的【application函数】,调用的同时web服务器会传递两个参数【environ】、【start_response】,其中【environ】是记录用户请求传递的函数信息(如请求页面,提交的验证信息),【start_response】是web服务器的Header和状态处理方法的引用,函数调用完毕以后,web服务器会获取到【响应头】信息,此时程序会继续回到【application】函数中继续处理用户的请求,处理完以后会返回【响应体】给web服务器,web服务器将header和body进行合并后返回给浏览器。

服务器交互

1
2
3
4
5
6
7
8
9
# 符合WSGI协议的服务器会要求Web开发者在程序中定义一个函数:application(environ, start_response)
# environ:一个包含所有http请求信息的dict对象;
# start_response:一个发送Http响应的函数
def application(environ, start_reponse):
# 返回头中的每一条内容对应于传递列表中的每一个元组
start_response('200OK',[('Content-type', 'text/html:charset=utf-8')])
# 此处还可以定义对environ变量的处理方案
return '解析页面的内容'