无效查询参数的 HTTP 404 与 400

2024-01-07

这是我的请求网址:

http://server.com/app/user/getuser/?userId=9999 http://server.com/app/user/getuser/?userId=9999

注意userId是查询参数。未嵌入路径参数。

据我了解,如果请求 URL 是:http://server.com/app/user/getuser/9999 http://server.com/app/user/getuser/9999并且数据库中不存在 ID 9999,应使用代码 404。

但是这种情况应该使用什么 HTTP 状态userId是查询参数?现在我返回 400 而不是 404。


我会用404 未找到.

Why?

The RFC 7231 https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1定义了一个400 错误请求像这样的回应:

400(错误请求)状态代码表示服务器由于被认为是客户端错误(例如格式错误的请求语法、无效的请求消息帧或欺骗性请求路由)而无法或不会处理请求。

...由于您的请求有效并且您只是尝试访问不存在的资源,我认为404 未找到状态比较合适。RFC 7231 https://www.rfc-editor.org/rfc/rfc7231#section-6.5.4定义它的含义是这样的:

404(未找到)状态代码表示源服务器没有找到目标资源的当前表示,或者不愿意透露该表示的存在。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无效查询参数的 HTTP 404 与 400 的相关文章

随机推荐

  • 如何在运行时动态地将值传递给 ObjectDataProvider.MethodParameters

    我写了这段代码 public class CustomData public int F1 get set public int F2 get set public string F3 get set public class Retrie
  • 寻找用 AS3 编写的 CSS 解析器

    我需要在我的 Flex 应用程序中运行时加载并应用 CSS https stackoverflow com questions 204924 how do you dynamically load a css file into a fle
  • 为什么我在 Google Calendar API 中收到 (401) 未经授权的错误

    我一直在使用 Google Calendar API 但遇到了一些问题 当我在下面调用它时删除日历事件它在第一次通过时效果很好 通常在第二次时效果很好 然而 在我第二次或第三次调用这个方法时 我得到了一个 401 未经授权的错误 它每次都使
  • 打印文件中从匹配行到文件末尾的行

    我编写了以下 awk 来打印从匹配行到 EOF 的行 awk match line file 我怎样才能在 sed 中做同样的事情 sed n matched p file awk matched 0 file
  • 使用和不使用数组解码不同类型

    我正在尝试按如下方式解码错误 我正在以数组格式处理的大部分错误 String 但在少数情况下 错误不是数组格式 而是一个String 如果数组格式出现错误 名称为errors 但如果是字符串格式则为error 我该如何处理这种情况 我怎样才
  • Apache mod_rewrite 已启用,但不工作

    第二天与使用 mod rewrite 的问题作斗争 系统操作系统 Windows XP HTTP 服务器 Apache 2 2 httpd httpd conf 中的几个相关行 LoadModule rewrite module modul
  • Xcode 9 的安全区

    在探索的同时Xcode9 测试版 Found 安全区在界面构建器上查看层次结构查看器 文档要点是 我很好奇并试图了解苹果文档中的安全区域 与自动布局直接交互的视图区域 但这并没有让我满意 我想知道这个新东西的实际用途 有人知道吗 Apple
  • UITableView 中的自定义单元格在滑动编辑后立即移动

    我只想要一个简单的 UITableView 能够向左滑动删除 一切正常 除了我的原型单元中文本视图的正确约束似乎在滑动删除后发生了变化 这是我的表代码 func tableView tableView UITableView cellFor
  • 触摸表视图单元格后的第一个方法 didSelectRowAtIndexPath 或prepareforSegue?

    我根据其类型设计了不同书籍的表格视图 如果用户触摸单元格 则会对需要书籍项目的新视图控制器执行segue 我已在中初始化了这本书 void tableView UITableView tableView didSelectRowAtInde
  • 如何向现有 Windows EC2 实例添加实例存储?

    我有一个 Windows 2008 EC2 实例 我已对其 EBS 启动驱动器进行了一些自定义 我将实例启动为 m1 small 或 m1 large 并且实例存储不会显示为附加驱动器 我读到 ec2 run instances 命令中的
  • 如果文本框为空,如何禁用按钮

    首先 我很抱歉我的英语不好 我是 C 初学者 我制作了一个 Windows 窗体应用程序 但如果文本框为空 我无法禁用一个按钮 我尝试了一些启用的方法 但它们不起作用 希望有人能帮我解决这个问题 非常感谢 public partial cl
  • 如何在 Jenkins 中通过 ssh-agent 直接在 Windows 上使用 git

    我正在尝试更新裸 git 存储库作为构建的一部分 在 Linux 上 它相对简单 dir my git repo git sshagent git sh git fetch origin module module 但是我不知道如何在 Wi
  • 如何向 Oracle 数据库中 CLOB 中包含的 xml 添加属性?

    如何向 Oracle 数据库中 CLOB 中包含的 xml 添加属性 我可以使用 UpdateXML 函数来更新现有属性 但它不会添加属性 您可以使用以下组合deleteXml 与任一appendChildXml insertChildXm
  • App Engine 和 Firebase 托管在一个域中

    我有一个自定义域 travelbox id 已连接到 Firebase 托管 我还有一个 App Engine 应用程序作为我的 API 我想将 App Engine 应用程序托管在api dev travelbox id 我将自定义域映射
  • 如何使母版页中内容页的默认焦点

    我有带有内容占位符的母版页 我有使用母版页的内容页 在我的所有内容页面中 我需要默认关注文本框 以便用户可以直接在文本框中键入内容 而不是将鼠标移到文本框上 在某些页面中没有文本框 因此我不会将默认焦点保留在那里 有什么方法可以在我的母版页
  • Java 字符串返回 null

    我试图让一个类从另一个类返回一个字符串 尽管我得到的返回值为空 我有一个 set 方法 可以在原始类中设置字符串 但是当在第二个类中调用该方法时 我得到 null 返回 这是第一堂课 public class IceCream instan
  • Android Kotlin 回收器视图中点击事件的新意图

    我刚刚开始学习使用 Kotlin 进行 Android 开发 我有一个列出项目的回收者视图 我正在尝试为该项目创建 onClick 事件 然后启动一个新意图并传递项目 id 尝试实例化意图 无法使用提供的参数调用以下函数 时出现错误 我认为
  • 通过在另一个模块中混合来覆盖模块混合行为

    我希望能够来回切换实例如何响应消息 我想通过混合一个模块 然后混合另一个模块来覆盖该行为来做到这一点 Example module Dog def speak puts woof woof end end module Cat def sp
  • 使用数组 C# 中的值过滤数据表

    我有一个删除方法 它获取一个 GUID 数组 并且我有一个数据表 如何过滤数据表 使其仅包含 GUID public void delete Guid guidlist datatable template ReadTemplateList
  • 无效查询参数的 HTTP 404 与 400

    这是我的请求网址 http server com app user getuser userId 9999 http server com app user getuser userId 9999 注意userId是查询参数 未嵌入路径参数