Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未通过验证的REST HTTP状态代码或无效重复?

我正在用一个基于REST的API构建一个应用程序,并且已经到了为每个请求指定状态代码的地步。

我应该发送什么状态代码来验证请求失败,或者请求正在尝试在我的数据库中添加重复项?

发送状态码时是否有通常的做法?

回答 2

人生的旅途

发布于 2017-12-18 06:43:37

00,300,400,500都是非常通用的。如果你想通用,400是确定的。

422被越来越多的API使用,甚至被开箱即用的Rails使用。

无论您选择哪种状态码,都会有人不同意。但我更喜欢422,因为我认为“400 +文本状态”太泛化了。另外,您还没有充分利用JSON就绪解析器。相反,具有JSON响应的422非常明确,并且可以传达大量的错误信息。

说到JSON响应,我倾向于在这种情况下对Rails错误响应进行标准化,即:

代码语言:txt
AI代码解释
复制
{
代码语言:txt
AI代码解释
复制
    "errors" :
代码语言:txt
AI代码解释
复制
    { 
代码语言:txt
AI代码解释
复制
        "arg1" : ["error msg 1", "error msg 2", ...]
代码语言:txt
AI代码解释
复制
        "arg2" : ["error msg 1", "error msg 2", ...]
代码语言:txt
AI代码解释
复制
    }
代码语言:txt
AI代码解释
复制
}

这种格式非常适用于表单验证,在“错误报告丰富性”方面,我认为这是最复杂的情​​况。如果你的错误结构是这样,它可能会处理你所有的错误报告需求。

以往V

发布于 2017-12-18 06:43:18

验证失败:403禁止(“服务器理解请求,但拒绝履行)”。与流行的观点相反,RFC2616没有说“403只是用于失败的认证”,而是“403:我知道你想要什么,但是我不会这样做”。这种情况可能会或可能不会由于身份验证。

尝试添加一个副本:409冲突(“由于与资源的当前状态发生冲突,请求无法完成”)

您应该在响应头文件和/或正文中给出更详细的解释(例如使用自定义头文件X-Status-Reason: Validation failed)。

和开发者交流更多问题细节吧,去 写回答
相关文章
http状态代码含义
如果某项请求发送到您的服务器要求显示您网站上的某个网页(例如,用户通过浏览器访问您的网页或 Googlebot 抓取网页时),服务器将会返回 HTTP 状态码响应请求。
后场技术
2020/09/03
1.2K0
EasyDSS/EasyNTS通过Golang使用http如何优化响应body未关闭的问题?
我们大多数平台都是用的Golang进行编译的,在很多视频流媒体软件比如EasyDSS、EasyNTS等产品的编译中,经常会出现要使用http接口访问其他服务的接口的情况,一般的编程代码如下:
TSINGSEE青犀视频
2021/06/16
1.7K0
通过curl 来对比http状态码301和302
使用命令行工具发送请求,一个 HTTP 请求客户端(实际上它也可以做 FTP/SCP/TELNET 协议的事情)。可类比于浏览器中的 fetch
虎妞先生
2022/09/28
1.5K0
通过curl 来对比http状态码301和302
网站HTTP错误状态代码及其代表的意思总汇
在调试Web服务器时,会遇到各种错误代码,让人摸不着头脑,单如果知道了这些代码代表什么意思?很多问题就迎刃而解了,对我们的调试也会有很大帮助。
德顺
2019/11/13
6.3K0
网站HTTP错误状态代码及其代表的意思总汇
什么是REST或RESTFul?
什么是REST或RESTFul?REST(Representational State Transfer,简称REST)即表述性状态传递。是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种网络应用的设计和开发方式。目前在三种主流的Web服务实现方案中(REST,SOAP和XML-RPC),因为REST模式明显更加简洁,越来越多的web服务开始采用REST风格,或者说是RESTful的。REST中的资源标识符就是URI(Uniform Resource Identifier),可以是图片,也可以是文件或是数据。
马克java社区
2019/08/12
6490
什么是REST或RESTFul?
PHP的HTTP验证
在日常开发中,我们进行用户登录的时候,大部分情况下都会使用 session 来保存用户登录信息,并以此为依据判断用户是否已登录。但其实 HTTP 也提供了这种登录验证机制,我们今天就来学习关于 HTTP 验证相关的知识。
硬核项目经理
2020/06/16
4K0
通过代码WordPress文章超过N天未更新提示
方法:复制以下代码添加至文章页面Single.php 添加至合适的位置其中代码中的180为180天,可根据需要自行修改。
叮当叮
2020/04/20
1.2K0
通过代码WordPress文章超过N天未更新提示
"Suspicious Invalid HTTP Accept Header of ?"可疑的无效HTTP Accept头部
"Suspicious Invalid HTTP Accept Header of ?" 描述的是检测到一个可疑的无效HTTP Accept头部。 HTTP Accept头部:HTTP协议是用于在客户
公众号图幻未来
2023/10/10
2520
Rest Notes-将REST应用于HTTP
摘要: 超文本移交协议(HTTP)在Web架构中既作为在Web组件之间通信的主要的应用级协议,也作为特别为移交资源的表述而设计的唯一的协议(现在并不是唯一,还有COAP协议)。 正文: 将REST应用于HTTP 超文本移交协议(HTTP)在Web架构中既作为在Web组件之间通信的主要的应用级协议,也作为特别为移交资源的表述而设计的唯一的协议(现在并不是唯一,还有COAP协议)。 REST用来识别早期HTTP协议中的问题,并指定了一个可以和HTTP1.0互操作的协议子集,然后分析HTTP1.1的扩展提议,并
itliusir
2018/06/12
7020
常见http状态码有哪些(常用的http响应状态码)
HTTP状态码(HTTP Status Code)是一种表示网页服务器响应状态的三位数字编码。通过这些数字,可以简化状态的表达。状态码有十种,其中首位数字为1-5。根据这5个数字,状态码可以分为5类。1XX表示请求正在处理;2XX表示请求已经成功处理;3XX表示重定向;4xx表示请求错误;5xx表示服务器错误。
全栈程序员站长
2022/07/25
1.2K0
http状态码
chimchim
2023/10/17
2960
http状态码
1开头的http状态码 表示临时响应并需要请求者继续执行操作的状态代码。 100   (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。   101   (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 2开头的http状态码 表示请求成功 200     成功处理了请求,一般情况下都是返回此状态码;  201     请求成功并且服务器创建了新的资源。  202     接受请求但没创建资源;  203     返回另一资源的请求;  204     服务器成功处理了请求,但没有返回任何内容; 205     服务器成功处理了请求,但没有返回任何内容; 206     处理部分请求; 3xx (重定向)  重定向代码,也是常见的代码 300   (多种选择)  针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。  301   (永久移动)  请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。  302   (临时移动)  服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。  303   (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。  304   (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。  305   (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。  307   (临时重定向)  服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 4开头的http状态码表示请求出错 400    服务器不理解请求的语法。  401   请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。  403   服务器拒绝请求。  404   服务器找不到请求的网页。  405   禁用请求中指定的方法。  406   无法使用请求的内容特性响应请求的网页。  407   此状态代码与 401类似,但指定请求者应当授权使用代理。  408   服务器等候请求时发生超时。  409   服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。  410   如果请求的资源已永久删除,服务器就会返回此响应。  411   服务器不接受不含有效内容长度标头字段的请求。  412   服务器未满足请求者在请求中设置的其中一个前提条件。  413   服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。  414   请求的 URI(通常为网址)过长,服务器无法处理。  415   请求的格式不受请求页面的支持。  416   如果页面无法提供请求的范围,则服务器会返回此状态代码。  417   服务器未满足”期望”请求标头字段的要求。 5开头状态码并不常见,但是我们应该知道 500   (服务器内部错误)  服务器遇到错误,无法完成请求。  501   (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。  502   (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。  503   (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。  504   (网关超时)  服务器作为网关或代理,但是没有及时从上游服务器收到请求。  505   (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。
py3study
2020/01/17
1.6K0
HTTP状态码
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。
用户8647142
2021/07/30
1.2K0
HTTP状态保持的原理
a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookie b)浏览器接收到cookie之后会自动保存 c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookie
汪凡
2019/03/01
6320
Http常见的状态码
编辑这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送 1xx 响应。
taoli
2022/10/08
1.1K0
http状态码
状态码查询 201-206都表示服务器成功处理了请求的状态代码,说明网页可以正常访问。 200(成功) 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。 201(已创建) 请求成功且服务器已创建了新的资源。 202(已接受) 服务器已接受了请求,但尚未对其进行处理。 203(非授权信息) 服务器已成功处理了请求,但返回了可能来自另一来源的信息。 204(无内容) 服务器成功处理了请求,但未返回任何内容。 205(重置内容) 服务器成功处理了请求,但未返回任何内容。与
大象无痕
2018/07/17
1.5K0
HTTP 状态码
状态码是来告诉客户端,发生了什么事情。状态码为客户端提供了一种理解事务处理结果的便捷方式。状态码位于响应的起始行中
ColinLiu
2019/05/04
2.8K0
HTTP 状态码
HTTP状态码
response.sendError(401, "当前账户未登录或会话失效,请重新登录!)
WindWant
2020/09/11
1.2K0
Http无状态
HTTP 是一种无状态协议。无状态协议不要求服务器在多个请求期间保留有关每个用户的信息或状态
Karl Du
2023/10/20
2410
HTTP状态码
HTTP状态码由三个十进制数字组成 HTTP状态码列表:
李玺
2021/11/22
6650
HTTP状态码

相似问题

API网关密钥对验证问题(无法通过验证 状态码401)?

2659

OCR的HTTP状态码?

1110

nginx 配置HTTPS反向代理无效 无法通过http://或者https 访问?

01.5K

网站访问异常,HTTP状态码详情 HTTP状态码:404???

83K

HTTP状态码503?

23.9K
相关问答用户
擅长4个领域
腾讯 | 技术专家擅长2个领域
萃橙科技 | 合伙人擅长4个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档