相关疑难解决方法(0)

403 Forbidden vs 401 Unauthorized HTTP响应

对于存在的网页,但对于没有足够权限的用户(他们未登录或不属于正确的用户组),要提供的正确HTTP响应是什么?401?403?别的什么?到目前为止,我对每个人的看法都不太清楚.哪些用例适合每个响应?

http-status-codes http-response-codes http-headers http-status-code-403 http-status-code-401

2544
推荐指数
18
解决办法
97万
查看次数

用于更新和删除的HTTP状态代码?

我应该为UPDATE(PUT)和DELETE(例如产品成功更新)设置什么状态代码?

http http-status-codes

1264
推荐指数
7
解决办法
66万
查看次数

"此电子邮件已注册"的HTTP响应代码是什么?

我正在创建一个RESTful API来创建强制使用唯一电子邮件地址的用户:

成功POST /users:HTTP 201 Created

如果我POST再次使用相同的电子邮件地址,响应代码应该是什么?是409 Conflict适当的响应代码?

api rest http

45
推荐指数
4
解决办法
3万
查看次数

避免使用REST重复POST

我一直在REST API中使用POST来创建对象.每隔一段时间,服务器就会创建一个对象,但客户端会在收到201 Created响应之前断开连接.客户端只能看到失败的POST请求,稍后再次尝试,服务器会愉快地创建一个重复的对象......

其他人一定有这个问题吧?但我谷歌周围,每个人似乎都忽略了它.

我有2个解决方案:

A)改为使用PUT,并在客户端上创建(GU)ID.

B)向客户端上创建的所有对象添加GUID,并让服务器强制执行UNIQUE-ness.

A与现有框架不匹配,B感觉就像是黑客.在现实世界中,其他人如何解决这个问题?

编辑:

使用Backbone.js,您可以在客户端上创建对象时将GUID设置为id.保存后,Backbone将执行PUT请求.让你的REST后端处理PUT到不存在的id,然后你就设置了.

rest post atomicity

39
推荐指数
4
解决办法
3万
查看次数

是否有语言/软件实现http状态代码418?

我知道状态代码418被定义为愚人节的笑话,并且"预计不会被实际的HTTP服务器实现",维基百科所述.

但是如果你们中的任何人知道支持它的语言/网络服务器/ IDE,我会感兴趣.

我正在尝试Apache(通过php),显然它给我一个内部错误(500).我只是喜欢它背后的幽默(我不想在这里试图)并且想知道是否不仅仅是Emacs实现了这一点.


更确切地说:它可以在php中模拟,例如通过做类似的事情...

header("HTTP/1.1 418 Whatever text I'd like");
Run Code Online (Sandbox Code Playgroud)

...但是你们中的任何人都知道任何实际的服务器软件(或语言)本地实现它,其中类似下面的东西不会抛出500,但实际上工作:

http_response_code(418);
Run Code Online (Sandbox Code Playgroud)

http http-status-codes httpserver

29
推荐指数
2
解决办法
1万
查看次数

资源创建POST由于现有匹配资源而失败时的HTTP响应代码

想象一下,我们有一个API,可以通过POST创建一个新的Employee

www.example.com/api/employees
Run Code Online (Sandbox Code Playgroud)

一名员工可以被描述为,

{
  name: "John Smith",
  tax_number: "ABC123"
}
Run Code Online (Sandbox Code Playgroud)

税号对所有人来说都是独一无二的.如果创建了一个创建,并且已存在一个名称和税号与现有记录匹配的记录,则可以安全地假设请求者想要返回该记录的引用(使用它的内部id和其他数据,客户端可能不会有,例如,创建于,更新于).

HTTP状态代码用于返回该资源的内容是什么?我想重定向可以用于返回id,但我更喜欢将整个对象包含在响应中.

这种情况对于简单的重复错误是唯一的,因为如果尝试重复,则意味着您希望创建的记录已经存在 - 而不是与现有记录冲突.

api rest post http http-status-codes

15
推荐指数
1
解决办法
1万
查看次数

RESTful POST请求,如果POST数据上已存在记录,我们是返回200 OK还是304 Not Modified?

我有一个POST请求端点,用户重复发布数据.在我将数据插入数据库之前,根据用户请求,我会检查记录是否已经存在. - 如果记录已经存在,我返回200 OK,包含table_id和状态的响应主体 - 如果记录不存在,我创建新记录并返回200 OK,包含table_id和status的响应主体

基本上在这两种情况下,用户获得状态200.由于用户无法区分其是新记录还是现有记录,因此可能会令人困惑.

我以为我会将304返回给响应主体,并告知消费者该请求是"未修改",这样消费者就会做出决定.

这是一个好习惯还是在RESTful主体中有替代方法.

rest http

10
推荐指数
1
解决办法
2万
查看次数

注册期间现有电子邮件的 422 或 409 状态代码

我正在构建 RESTful API,我遇到了一种情况。在用户注册时,如果电子邮件之间已经存在,那么422409它的HTTP响应代码有道理?

我有过类似的浏览一个和接受的答案是,从2012年其答案是否仍持有好?例子会有很大帮助。

api rest http

10
推荐指数
2
解决办法
1万
查看次数