忽略Flask中的请求

时间:2016-05-24 17:46:07

标签: python windows flask

我想不回答Flask处理的请求。我根本不想返回任何错误代码,数据或答案。

通过这样做我想要完成的是有一个端点需要传感器数据并且不返回任何信息。客户端将数据发送到此端点,但他们不等待应答和关闭(我无法控制客户端。)所以我看到以下错误:“{Errno 10053]已建立的连接是被主机中的软件中止“。所以我问自己,为什么我甚至回应这些要求。

1 个答案:

答案 0 :(得分:2)

我可以想到两个理由做这样的事情:

  • 您想要阻止访问您网站的“朋友”或
  • 你有误导的观点认为这有助于防止(D)DoS攻击。

当你说“完全忽略一个请求”时,一般来说你实际上不能这样做。除非您知道流量来自的IP地址,然后您可以指示您的操作系统,网卡,路由器,交换机,负载均衡器,甚至ISP来过滤掉来自该IP的流量。

否则,由于互联网的运作方式,你有点不走运。

HTTP通过TCP *工作。具体来说,客户端进程看起来像这样:

  • 将DNS(例如google.com)转换为IP地址(例如216.58.218.174)
  • 打开与216.58.218.174:80的TCP连接(使用谷歌作为示例)
  • 将HTTP标头发送给Google:

    GET / HTTP / 1.1

  • 阅读回复

一旦为您的服务器创建了TCP / IP连接,在非常,您将不得不终止连接。

从Python本身开始,实际上没有好办法,当然也不是在Flask中。

当你更新答案时,事实证明你真的是don't have to change anything,Flask已经在处理幕后的错误了。它可能会将消息路由到您可能能够处理的特定记录器,如果您真的不想看到消息,但它并不重要。

失败的原因要便宜得多。

* <子>清除。当然你可以通过UDP完成,但你可能不是