常见HTTP响应状态码对照表

GET

安全且幂等
获取表示
变更时获取表示(缓存)

HTTP响应状态码:

200(OK) - 表示已在响应中发出
204(无内容) - 资源有空表示
301(Moved Permanently) - 资源的URI已被更新
303(See Other) - 其他(如,负载均衡)
304(not modified)- 资源未更改(缓存)
400 (bad request)- 指代坏请求(如,参数错误)
404 (not found)- 资源不存在
406 (not acceptable)- 服务端不支持所需表示
500 (internal server error)- 通用错误响应
503 (Service Unavailable)- 服务端当前无法处理请求

POST

不安全且不幂等
使用服务端管理的(自动产生)的实例号创建资源
创建子资源

部分更新资源
如果没有被修改,则不过更新资源(乐观锁)

HTTP响应状态码:200(OK)- 如果现有资源已被更改
201(created)- 如果新资源被创建
202(accepted)- 已接受处理请求但尚未完成(异步处理)
301(Moved Permanently)- 资源的URI被更新
303(See Other)- 其他(如,负载均衡)
400(bad request)- 指代坏请求
404 (not found)- 资源不存在
406 (not acceptable)- 服务端不支持所需表示
409 (conflict)- 通用冲突
412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突)
415 (unsupported media type)- 接受到的表示不受支持
500 (internal server error)- 通用错误响应
503 (Service Unavailable)- 服务当前无法处理请求

PUT

不安全但幂等
用客户端管理的实例号创建一个资源
通过替换的方式更新资源
如果未被修改,则更新资源(乐观锁)

HTTP响应状态码:

200 (OK)- 如果已存在资源被更改
201 (created)- 如果新资源被创建
301(Moved Permanently)- 资源的URI已更改
303 (See Other)- 其他(如,负载均衡)
400 (bad request)- 指代坏请求
404 (not found)- 资源不存在
406 (not acceptable)- 服务端不支持所需表示
409 (conflict)- 通用冲突
412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突)
415 (unsupported media type)- 接受到的表示不受支持
500 (internal server error)- 通用错误响应
503 (Service Unavailable)- 服务当前无法处理请求

DELETE

不安全但幂等

删除资源

HTTP响应状态码:

200 (OK)- 资源已被删除
301 (Moved Permanently)- 资源的URI已更改
303 (See Other)- 其他,如负载均衡
400 (bad request)- 指代坏请求
404 (not found)- 资源不存在
409 (conflict)- 通用冲突
500 (internal server error)- 通用错误响应
503 (Service Unavailable)- 服务端当前无法处理请求

【说明】

- 安全:对服务端的数据不会造成改变。
- 幂等:多次重复同样操作,对服务端的数据的影响是一样的。
- 不幂等:多次重复同样操作,对服务端的数据的影响是不一样的,如添加数据,就是不幂等的,因为每次执行,都会生成新的数据;更新数据就是幂等的,因为每次执行,服务器的数据还是那条数据;删除数据是幂等的,因为第一次已经删除了数据,第二次执行不会对服务器再产生影响,

【说明2】

- GET和DELETE,只支持参数方式提交:
  - 查询参数 ?xxx=x&yyy=y
  - 路径参数:标准的REST,/x/y
- POST和PUT,支持Body消息体和参数两种方式。

额外说明:PUT要带id参数,保证幂等。

另外注意:URL不要包含动词等


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章