gpt4 book ai didi

django - 何时在 Django 中使用 HttpResponseBadRequest (http 400)

转载 作者:行者123 更新时间:2023-12-02 05:49:32 24 4
gpt4 key购买 nike

我最近在 Django 中经常使用 HttpResponseBadRequest (http 400)。我开始好奇它到底意味着什么,然后我发现了 this question 。根据那里接受的答案,听起来在 View 中使用 HttpResponseBadRequest 根据定义总是是错误的。

我将它用于 View 接收到错误输入或在错误情况下调用的情况,这只能是由恶意用户输入错误数据(或代码中的错误)引起的。

alternative HttpResponses在这种情况下,所有这些似乎都是更糟糕的选择。大多数 Django 开发人员如何使用 HttpResponseBadRequest?该文档似乎没有解释不同类的用途。

最佳答案

这不是 Django 特有的。您真正要问的是何时使用 HTTP 400(“错误请求”)状态代码。一般来说,成功呈现给用户的任何页面都应该获得 200 级代码。任何出现服务器端故障的请求都应该获得 500 级代码。 400 级代码适用于请求失败但由于客户端而不是服务器错误而导致的情况。例如,404 表示 URL 对应的路径在服务器上不存在。

使用 400 状态代码的典型情况是发送到有效的受支持路径的 HTTP 请求,其中请求参数(例如 GET 或 POST 参数)不正确(缺少必需的参数或参数已包含)类型不正确、不在允许范围内或在枚举参数的情况下不是有效枚举值的值)。这种情况在用户发出的请求中几乎不会发生(因为应用程序的其他部分应该只生成格式正确的请求),并且对于您为其他开发人员(或您自己)创建的 API 来说,这种情况更为常见。也就是说,如果请求失败并且您看到它是 400,您可以很快诊断出需要更改参数才能使其正常工作。如果这就是您所说的“ View 收到不正确的输入”的意思,那么这对我来说似乎是合理的;然而,“在错误的情况下”似乎是 400 状态代码的错误用法。对于“在错误情况下”的情况,可能有更合适的status codes ,取决于你所说的“错误的情况”是什么意思。

但是,我应该强调,没有确切的正确答案。选择使用哪些错误代码时,重要的考虑因素包括:同一站点内资源之间的内部一致性、使用 API 的开发人员的可理解性/期望(如果您正在创建 API)、浏览器如何解释各种状态代码、代理和搜索引擎。

关于django - 何时在 Django 中使用 HttpResponseBadRequest (http 400),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27232891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com