WSGI 解决了什么问题

首先,让我们先看看当用户从鸟瞰的角度使用web应用程序时会发生什么。

web 服务器

假设你是一个web服务器,就像Gunicorn一样。你的工作由以下部分组成:

  • 你坐在那里,耐心地等待某个客户的请求。
  • 当客户向你提出请求时,你会收到它。
  • 然后,你把这个请求交给一个叫PythonApp的人,对他说:“嘿,伙计,醒醒!这是一个非常重要的客户的要求。求你了,想想办法吧。
  • 你从这个PythonApp得到一个响应。
  • 然后,您将此响应反馈给您的客户。

这是你唯一能做的事。你只需要服务你的客户。你对内容或其他东西一无所知。所以你才会这么擅长。您甚至可以根据客户的需求来伸缩处理。你专注于这个单一的任务。

web 应用程序

PythonApp是你的软件。虽然web服务器应该一直存在并等待传入请求,但您的软件仅在执行时存在:

  • web服务器唤醒它并向它发送请求。
  • 它接受请求并在请求上执行一些命令。
  • 它向web服务器返回响应。
  • web服务器将此响应发送回客户端。
  • 它继续睡觉。
  • web服务器将此响应发送回客户端。

它所做的唯一的一件事就是在被要求执行时执行。

存在的问题

上面的场景都很好。然而,web服务器与PythonApp的对话可能会有所不同。

可能是这样对话的:

"嘿,伙计,醒醒吧!这里是一个非常重要的客户端的请求。请做点什么"

或者是这样的:

"Hey dude, wake up! Here's a request from a very important client. Please, do something about it."

再或者是这样的:

"Ehi amico, svegliati! Ecco una richiesta da un cliente molto importante. Si prega, fare qualcosa al riguardo"

甚至可能是这样的:

"Эй, чувак, проснись! Вот запрос от очень важного клиента. Пожалуйста, сделай что нибудь."

你明白了吗? web服务器可以以多种不同的方式运行,而PythonApp需要学习所有这些语言来理解它在说什么并相应地运行。

这意味着在过去(在WSGI出现之前),你必须调整你的软件以适应web服务器的需求。此外,您必须编写不同类型的包装器,以便使其适用于不同的web服务器。开发人员通常不希望处理这样的事情。他们只是想写代码。

WSGI来帮忙

你可以将其看作web服务器和web应用程序的一组规则。

web服务器的规则如下所示:

如果你想和PythonApp对话,请说出这些单词和句子。同时,也要学习这些单词,因为它们会对你产生反馈。此外,如果出了什么问题,这里是PythonApp会说的"骂人"的话,以及你应该如何应对它们。

web应用程序的规则如下所示:

如果您想与web服务器对话,请学习这些单词,因为web服务器在寻址时将使用它们。另外,使用这些词并确保web服务器理解它们。此外,如果出了什么问题,使用这些 "咒骂" 的话和这样的行为。

这就是WSGI发挥作用的地方

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值