忽略Django中的请求

时间:2017-01-28 21:03:15

标签: django request

让Django有选择地/有条件地忽略请求(不返回任何内容)并删除连接(不阻止将来的请求)的最有效方法是什么?

1 个答案:

答案 0 :(得分:4)

WSGI应用程序通常无法在不发送响应的情况下删除请求。不返回任何内容都是错误,WSGI服务器将响应一条相应的错误消息,指出应用程序未按预期工作。即使您的WSGI服务器没有返回响应,您的Web服务器也只会将其作为超时处理并发送504网关超时。

如果您使用nginx作为面向公众的网络服务器,您可以从Django发送状态代码为444的响应,即return HttpResponse(status=444)。如果nginx从上游服务器收到此状态代码,它将在没有响应的情况下丢弃该请求。据我所知,nginx是唯一提供此选项的网络服务器。

如果您不能使用nginx,恐怕在网络服务器级别没有选择。