【问题标题】:What's the suitable HTTP error for non requested required data对于未请求的必需数据,什么是合适的 HTTP 错误
【发布时间】:2020-06-25 15:37:45
【问题描述】:

就我而言,不需要任何参数。换句话说,应用程序不希望通过 post、get 或 put 获得任何数据。但是,在实现中,应首先定义会话变量中存储的项目列表,即购物车项目之类的东西,用户收集项目,然后转到下面的操作,否则会引发 HTTP 错误。查看以下示例:

public function actionCreate(){
  if(count(Yii::$app->session->get('versesList',[])) > 0){
    // Do the logic
  }
  else{
    throw new \yii\web\BadRequestHttpException(Yii::t('app', 'You must collect some verses first!')); 
  }
}

我不太清楚,400 bad request 是否是正确的错误代码。我曾尝试在维基百科上阅读List of HTTP status codes,但我对其他一些 HTTP 错误感到困惑,例如:406 Not Acceptable412 Precondition Failed422 Unprocessable Entity

【问题讨论】:

    标签: http web http-error


    【解决方案1】:

    HTTP 400,因为您请求的是服务器不知道如何处理的操作(所以这是一个错误的请求)。

    RFC2731 声明如下:

    400 (Bad Request) 状态码表示服务器不能或不会处理请求,因为某些东西被认为是客户端错误(例如,格式错误的请求语法、无效的请求消息帧或欺骗性请求路由) .

    【讨论】:

      【解决方案2】:

      400 绝对适合这种情况,但如果您想更具体:

      听起来用户需要执行 其他一些 HTTP 请求才能使这个 HTTP 请求有效。对于这些情况,通常使用409 Conflict

      如果有趣的话,我会在我的博客上写一些关于此的更多示例:https://evertpot.com/http/409-confict

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-02
        • 2020-10-28
        • 2012-03-11
        • 1970-01-01
        • 2020-05-20
        • 1970-01-01
        • 1970-01-01
        • 2011-07-19
        相关资源
        最近更新 更多