浏览器通过 WSGI 请求动态资源的过程

解释: 市面上的web服务器,如:Nginx、Apache等,可以抗住高并发等等优点。但这个是别人用其他语言写好的框架。 我们的应用框架(django、flask)等, 如果想使用这些web服务器。就必须遵从某种协议, 那就是WSGI协议的由来。其他语言的框架也是会有类似WSGI协议的协议。

 

解释: 补充一下吧, 浏览器要解析web服务器的数据, 也是有协议的, 必须发送header+body的形式。所以web服务器和应用框架的通信目的就是拿到 header+body。  他们之间的过程如下:

1)  浏览器向web服务器动态发起请求
2)  web服务器调用框架的def application(env, set_response_header)
3)  框架通过调用web服务器def set_response_header(header)方法,将header传入函数
4)  调用返回,此时web服务器端已经保存了header信息。
5)  生成动态页面的body信息,
6)  框架返回 响应body给web服务器
7)  web服务器把数据返回给浏览器

下面是伪代码:

web服务器:
class Server():
    def __init__():
        self.header = None
        self.body = None

def set_response_header(header):
    # 保存 响应头信息
    self.headers = headers




# 当接收到浏览器的一个请求并判断是动态资源的请求时;调用框架的application()
server = Server()

server.body = framework.application(environ,set_response_header)

response = server.headers + server.body
应用服务框架

def gen_header():
    header = "i am header"
    return header

def gen_body():
    body = "i am body"
    return body

def application(env, set_response_header):
    """
     application是在框架中定义,在服务器中被调用
     set_response_header 是服务器中的一个设置响应头信息的函数
    """
    header = gen_header()
    set_response_header(header)
    
    body  = gen_body()
    return body


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值