method
- GET :从服务器取出资源(一项或多项)
- POST :在服务器新建一个资源
- PUT :在服务器更新资源(客户端提供改变后的完整资源,全部更新)
- PATCH :在服务器更新资源(客户端提供改变的属性,局部更新)
- DELETE :从服务器删除资源
- HEAD:和GET一样,只是只返回响应首部,不返回响应体,用于确认资源的信息
- OPTIONS:查询支持的方法,复杂请求的预检会用到。
比如:
- GET /zoos:列出所有动物园
- POST /zoos:新建一个动物园
- GET /zoos/ID:获取某个指定动物园的信息
- PUT /zoos/ID:更新某个指定动物园的信息(提供该动物园的全部信息)
- PATCH /zoos/ID:更新某个指定动物园的信息(提供该动物园的部分信息)
- DELETE /zoos/ID:删除某个动物园
- GET /zoos/ID/animals:列出某个指定动物园的所有动物
- DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物
状态码
HTTP状态码负责表示客户端HTTP请求的返回结果,标记服务端的处理是否正常,通知出现的错误等工作。状态码类别
| 状态码 | 类别 | 原因短语 | | —- | —- | —- | | 1XX | Informational 信息性状态码 | 接收的请求正在处理 | | 2XX | Success 成功状态码 | 请求正常处理完毕 | | 3XX | Redirection 重定向状态码 | 需要进行附加操作以完成请求 | | 4XX | Client Error 客户端错误状态码 | 服务器无法处理请求 | | 5XX | Server Error 服务器错误状态码 | 服务器处理请求出错 |
常用状态码一览
- 200 OK:客户端发来的请求在服务端被正常处理了。
- 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
- 202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
- 204 NO CONTENT :请求已成功处理,但响应中不包含响应体。比如 请求方式为[DELETE]时,表示用户删除数据成功。
- 206 Partial Content: 服务器成功执行了客户端的范围请求。响应中包含由Content-Range首部字段指定范围的实体内容
- 301 Moved Permanently: 永久性重定向,请求的资源已被分配了新的URI。应该按Location首部字段提示的URI访问。
- 302 Found, 303 See Other, 307 Temporary Redirect 都是临时性重定向,请求的资源已被临时分配了新的URI,希望用户本次使用新的URI访问。标准不太统一,每种浏览器可能出现不同的情况,了解即可。
- 304 Not Modified: 这个比较特殊,和重定向没有关系,表示服务器资源未改变,可直接使用客户端缓存。
- 400 Bad Request:用户发出的请求报文中存在语法错误,需要修改请求内容后再发送。
- 401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
- 403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
- 404 NOT FOUND - [*]:服务器无法找到请求的资源。或者在服务器拒绝请求且不想说明理由时使用
- 406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
- 410 Gone - [GET]:用户请求的资源被永久删除,且不会再得到的。
- 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
- 500 INTERNAL SERVER ERROR - [*]:服务器发生错误,可能外web应用存在bug。
- 503 Service Unavailable: 服务器正忙