正确使用 HTTP 错误代码。 550 - 为什么是 5xx 而不是 4xx?

2023-11-23

今天,当用户没有权限时,一位同事在删除操作中使用了 550 错误,乍一看这对我来说很糟糕,因为据我所知,这种错误对我来说看起来像是客户端(又名 4xx)错误而不是服务器(又名 5xx)。

当查看描述时,它完全表明它被正确使用。而不是 401 错误,我之前用它来解决一些“问题”。

401 错误的问题是:如果用户 A 已登录,并尝试执行返回 401 的操作,它可能会建议您必须“登录”,因为您没有有效的凭据来访问该 http 资源。这种方法的问题是,如果用户已登录,服务器知道他没有权限,在这种情况下,看起来像 550 更合适,但在我看来不太应该在这种情况下使用 550 错误设想。

问题是: 在基于 Web 的应用程序中,550 错误的正确用途是什么(如果有)。我了解它在 FTP 和 SMTP 中继中的用途。 如果某个登录用户发送了不允许的操作请求,应该返回哪个错误?

Thanks!


5xx 错误是服务器错误。如果用户没有权限,则应该是 4XX 错误。

不过你是对的。 401错误意味着用户必须登录才能访问。即需要身份验证。

您要查找的错误是403 禁忌

这对于是否因为用户已登录而没有任何歧义。其轮廓清晰。

来自 http 错误代码的 wiki (http://en.wikipedia.org/wiki/List_of_HTTP_status_codes)(强调我的):

403 禁忌

该请求是有效请求,但服务器拒绝响应 到它。[2]与 401 Unauthorized 响应不同,身份验证将使 没有区别。[2]在需要身份验证的服务器上,这 通常意味着所提供的凭据已成功 经过验证的但凭证仍然不授予客户端 访问资源的权限(例如,已识别的用户尝试 访问受限内容)。

同样,根据上面的 wiki,不存在 550 错误这样的事情。我想你可以选择自己实现它,但可能没有必要说实话。然而,根据标准的定义,这应该是服务器错误。

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

正确使用 HTTP 错误代码。 550 - 为什么是 5xx 而不是 4xx? 的相关文章

  • 在 TFS 构建过程中运行 WatiN 测试时出现超时问题

    我已经在我的开发环境中运行了一个简单的 WatiN Web 测试 并尝试让它在 TFS 构建服务器上运行 尝试加载页面时失败 但出现以下异常 WatiN Core Exceptions TimeoutException Internet E
  • 在 DDD 中,表示层可以同时使用 Repository 和 Service 类吗?

    如果表示层只应该使用服务 那么服务类必须公开存储库已实现的相同方法 以使它们可供表示层使用 这似乎是错误的 有人可以帮我澄清一下吗 我敢打赌 这似乎是错误的 因为您实际上并不需要这种抽象级别 应用服务有facades http en wik
  • 在网站上集成 api.ai 聊天机器人 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在我的网站上安装一个聊天机器人 其对话风格类似于 Facebook Messenger 我希望它作为聊天窗口位于同一页面上 而不是
  • 企业 Web 应用程序中的 JavaFX - 经典网页的良好替代方案?

    我们为不同的客户开发了多种 Web 应用程序 从为那些可怜的管理员提供的简单 看起来很无聊的 CRUD 风格的 GUI 到为那些互联网用户提供的奇特的 AJAX 增强型 GUI 所有这些都基于 JSF 1 2 与 JBoss Seam 2
  • 使用 Java 的 OpenId 提供者/服务器

    我正在尝试使用 OpenId 服务增强现有的 Java Web 应用程序 以便登录用户可以使用我的 Web 应用程序作为 OpenId 提供程序登录另一个启用 OpenId 的应用程序 My first attempt was to use
  • 如何区分浏览器选项卡中的会话?

    在使用 JSP 和 Servlet 以 java 实现的 Web 应用程序中 如果我在用户会话中存储信息 则同一浏览器的所有选项卡都会共享该信息 如何在浏览器选项卡中区分会话 在这个例子中
  • 如何在spring mvc框架中运行后台进程

    我有一个网络应用程序 使用 spring mvc 框架 它使得以下内容 用户将文件上传到服务器 立即进入成功页面 使用该文件运行后台进程 那么 我如何使用 spring mvc 框架来做到这一点呢 先感谢您 使用异步标记方法 你在这里有例子
  • 捕获特定的 WebException (550)

    假设我创建并执行一个System Net FtpWebRequest 我可以用catch WebException ex 捕获此请求引发的任何与 Web 相关的异常 但是 如果我有一些逻辑只想在由于以下原因引发异常时执行 550 file
  • 在 Google Apps 脚本中,如何为我实现的服务设置 HTTP 响应代码?

    假设我有一个返回 XML 文档的 服务 function doGet var result
  • 如何在 Jetty 中配置 webapps 部署目录

    这一定是一个非常简单的答案 但我似乎找不到 我刚刚开始使用码头7 0 2 on CentOS 5 5并部署了一个webapp使用默认设置 只需将我的 WAR 文件放入 webapps目录 当 Jetty 启动时 它将战争提取到 tmp je
  • 将 C++ 代码(本机客户端)移植到浏览器(Web 应用程序)

    我有一个使用 Qt creator SDK 编写的 C 模块 我想将此代码移植到任何网页上运行 而不会对最终用户损害源代码 用户应该能够在任何浏览器 Chrome Firefox Safari Explorer 上看到此模块的输出 而无需安
  • bin 文件夹内任何文件的任何更改是否会导致 ASP.NET Web 应用程序中的应用程序回收?

    我知道在 ASP NET Web 应用程序中 更改位于bin文件夹会导致应用程序回收 但我想知道 正如主题所暗示的那样 是否any文件更改会导致这种行为吗 此场景中是否包含简单的文本文件 那么子文件夹呢 bin文件夹 它们的内容呢 我知道我
  • 如何启动两个播放应用程序实例?

    我正在尝试在不同端口中部署同一播放应用程序的两个实例 并通过前面的 nginx 进行负载平衡 根据manual http www playframework com documentation 2 2 x HTTPServer 要启动多个播
  • java Web应用程序中的日期转换

    String date1 13 03 2014 16 56 46 AEDT SimpleDateFormat sdf new SimpleDateFormat dd MM yyyy HH mm ss z sdf setTimeZone Ti
  • Cloud Foundry 解释

    所以我一直在阅读 Cloud Foundry 但我仍然对它是什么感到困惑 无论如何 这是我对 CF 上的 PaaS 的看法 希望你们能告诉我我是否错了 并更好地解释一下 Microsoft Azure 或 Google AppEngine
  • 在 Angular 中加载脚本和资源时实现加载器动画的最佳方法是什么?

    我希望向我的 Web 应用程序的用户显示一个进度条 指示加载所需文件和脚本的当前进度 最好显示百分比 但简单的加载器 gif 是一个可以接受的解决方案 如果可能的话 实现一个可以显示 Angular 中图像 CSS 和 JS 加载完成百分比
  • 用于商业 Web 应用程序的 Flash - 为什么不呢?

    我从事开发商业网络应用程序的行业 它们大多供内部使用 有时有合作伙伴区域 但很少可供公共互联网使用 它们是帮助公司运营业务的应用程序 一段时间以来 我有一个想法困扰着我 为什么不使用 Flash 到现在为止都是ASP NET AJAX 这还
  • 哪些浏览器支持 HTML5 WebSocket API?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我将开发一个在浏览器中运行的即时消息应用程序 哪些浏览器支持WebSocket API
  • 模板化 HTML 脚本中的换行符

    如果我有一个 HTML 文件 test html p p 和一个脚本函数 var t HtmlService createTemplateFromFile test html t str test nstring var content t
  • 不鼓励在Web应用程序中使用线程吗?

    我们与同事就在 Java 的 Web 应用程序中使用线程进行了激烈的讨论 他们的观点是 不建议在 Java Web 应用程序中使用线程 因为它们不受容器管理 一般来说 我对此表示同意 因为线程可能会干扰容器 但是 如果它不是 Java EE

随机推荐

  • MySQL 将行转为动态数量的列

    假设我有三个不同的 MySQL 表 Table products id name 1 Product A 2 Product B Table partners id name 1 Partner A 2 Partner B Table sa
  • 如何删除行中最后一个元素的每个元素的边距?

    如何去除每个边距 li 最后一栏 我要求每一个 li li 当我有 9 时 它出现在最后一列 li li 每列 3 个 我不只是要求删除margin从最后一项开始 li li of a ul 我已经知道了 last child margin
  • 使用 Fody [ImplementPropertyChanged] 时出错

    我使用的是VS 2017社区版 我正在创建 MVVM 模式 安装 fody 后 我的代码出现错误 而教程的讲师在 vs 2015 上实现了它 这是代码 using PropertyChanged using System Component
  • 如何使用 ASP.NET MVC 6 重定向未经授权的用户

    我想知道如何重定向用户 我有一个控制器 Index 我希望只有角色为 学生 的用户才能进入那里 所以我用 Authorize Roles Student 我想知道如何将没有此角色的用户重定向到主页 MVC5 及更早版本 您可以通过更改来做到
  • 如何修复“此应用程序运行的环境不支持此操作。“location.protocol”...”错误?

    我尝试使用 Firebase Google 身份验证 但收到此错误 此应用程序运行的环境不支持此操作 location protocol 必须是 http https 或 chrome extension 并且必须启用 Web 存储 我的代
  • Android TTS 无法在设备中运行

    TextToSpeech 就像 http developer android com resources samples ApiDemos src com example android apis app TextToSpeechActiv
  • 时间日历数据结构

    我们正在考虑更新 重写 我们的系统 该系统存储有关人们白天何时可以预订房间等信息 现在 我们将开始时间和房间可用的日期存储在一个表中 并在另一个表中存储各个预约时间 从表面上看 以这种方式存储信息似乎是一个合乎逻辑的想法 但随着时间的推移和
  • Angular 2 - 无法使用上下文读取未定义错误的属性“0”错误上下文:[object Object]

    我的服务是这样的 getRecords Observable
  • 有人有 ffmpeg 图像转视频脚本吗? [复制]

    这个问题在这里已经有答案了 我想拍摄一堆图像并用它们制作视频幻灯片 会有一个应用程序可以做到这一点 对吗 是的 看起来不少 问题是我希望幻灯片与一段音乐同步 而我见过的所有应用程序只允许您显示每张幻灯片整秒的倍数 我希望它们显示 1 714
  • 从另一个表单调用方法

    我尝试从另一种形式调用方法 我的尝试 public partial class newLedPopUp Form Form1 back new Form1 back output Close and public partial class
  • 使用 HTTPStatusCodeResult 和 jQuery 自定义错误消息

    我有一个控制器操作 它将一些 JSON 结果返回到 jQuery Full Calendar 插件 我返回一个HTTPStatusCodeResult如果出现错误 则会显示自定义错误消息 但我无法显示自定义错误消息 警报框中显示的只是默认的
  • 如何将V8编译的javascript变成EXE?

    我知道谷歌的 v8 将 javascript 编译为本机代码 如果我理解正确的话 是二进制 有没有办法获取输出并将其转换为exe 我不认为您可以使用 V8 直接将一段 JavaScript 转换为可执行文件 但您可能可以制作一个将 V8 引
  • 更新深层 ReactJS 状态

    我在 ReactJS 组件状态中有一个项目数组 我正在迭代这些项目来创建表单 我的问题是 当字段发生变化时 如何最好地更新这些项目 例如 var items this state foo bar items map function ite
  • 从 Axios API 返回数据[重复]

    这个问题在这里已经有答案了 我正在尝试使用 Node JS 应用程序来发出和接收 API 请求 它使用 Axios 向另一台服务器发出 get 请求 并使用从 API 调用接收到的数据 第二个片段是脚本从调用返回数据时的情况 它实际上会获取
  • Sprockets::FileNotFound:在 Rails 4 上找不到文件“jquery.ui.all”

    Sprockets FileNotFound couldn t find file jquery ui all 我尝试了迄今为止找到的所有建议 它们都不适合我 我无法再运行正在开发的程序 因此我无法再在线进行新的部署 Gemfile sou
  • find()、findOrFail()、first()、firstOrFail()、get()、list()、toArray() 之间有什么区别

    这些方法有什么区别 find findOrFail first firstOrFail get list toArray 我一直在使用它们 每一个都会给出不同的结果 有时我需要添加toArray 在 的最后get 因为我的函数需要一个数组
  • 安装多处理 python3

    对 Python 来说还很陌生 我想安装 python 的多处理模块 我正在使用 python 3 6 和 pip 版本 9 1 我收到一个错误 这让我相信由于没有与 python 3 兼容的多处理模块 因此可能会发生以下错误 pip3 i
  • 类型 '{ [x: string]: string; 中缺少属性}'

    在这个反应应用程序中有一个带有一些输入字段的表单 这些字段都使用this handleChange与onChange属性 private handleChange event React FormEvent
  • 保证金最高百分比是如何计算的?

    我知道这应该很简单 但是任何人都可以告诉我为什么下面的子框在以下情况下会溢出其父级的容器 margin top 50 应用于孩子身上 保证金最高百分比是如何计算的 container background lightblue padding
  • 正确使用 HTTP 错误代码。 550 - 为什么是 5xx 而不是 4xx?

    今天 当用户没有权限时 一位同事在删除操作中使用了 550 错误 乍一看这对我来说很糟糕 因为据我所知 这种错误对我来说看起来像是客户端 又名 4xx 错误而不是服务器 又名 5xx 当查看描述时 它完全表明它被正确使用 而不是 401 错