忽略 Django 中的请求

dvt*_*tan 1 django request

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

knb*_*nbk 6

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

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

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