网络请求(蓝旭第六次课)

本文介绍了HTTP请求方法,包括GET、POST、PUT、DELETE等及其用途,强调了在API交互中返回详细错误信息的重要性,如状态码和JSON格式的应用。
摘要由CSDN通过智能技术生成

1.网络请求

HTTP 定义了一组请求方法,以表明要对给定资源执行的操作。指示针对给定资源要执行的期望动作。虽然它们也可以是名词,但这些请求方法有时被称为 HTTP 动词。每一个请求方法都实现了不同的语义,但一些共同的特征由一组共享:例如一个请求方法可以是安全的、幂等的或可缓存的。

1.1 GET
GET 方法请求一个指定资源的表示形式,使用 GET 的请求应该只被用于获取数据。

1.2 HEAD
HEAD 方法请求一个与 GET 请求的响应相同的响应,但没有响应体。

1.3 POST
POST 方法用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用。

1.4 PUT
PUT 方法用有效载荷请求替换目标资源的所有当前表示。

1.5 DELETE
DELETE 方法删除指定的资源。

1.6 CONNECT
CONNECT 方法建立一个到由目标资源标识的服务器的隧道。

1.7 OPTIONS
OPTIONS 方法用于描述目标资源的通信选项。

1.8 TRACE
TRACE 方法沿着到目标资源的路径执行一个消息环回测试。

1.9 PATCH
PATCH 方法用于对资源应用部分修改。

2.返回规范

在使用API时无可避免地会因为各种情况而导致接口返回错误的信息。比如指定的query参数错误,又或者method不支持等,这些情况都会返回相关的错误信息。另外服务器不稳定或者停止运行了,也必须将错误信息返回。

显然,当错误发生的时候,只是笼统地返回“发生了错误”是不行的。如果前端不了解发生了什么错误,也就不知道该怎么去调试,怎么去修复这个bug。所以说,必须向前端返回尽可能多的信息,以便前端找到出错的地方解决问题。

1xx 消息
2xx 成功
3xx 重定向
4xx 前端原因引起的错误
5xx 服务器原因引起的错误

500 Internal Server Error 表示服务器内部错误,且不属于以下错误类型
501 Not Implemented 表示服务器不支持实现请求所需要的功能
502 Bad Gateway 代理服务器无法获取到合法资源
503 Service Unavailable 服务器资源尚未准备好处理当前请求
504 Gateway Timeout 表示代理服务器无法及时的从上游获得响应
505 HTTP Verson Not Supported 表示请求使用的HTTP协议版本不支持
507 Insufficient Storage 表示服务器没有足够的空间处理请求
508 Loop Detected 表示访问资源时检测到循环
511 Network Authentication Required 表示代理服务器发现客户端需要进行身份验证才能获得网络访问权限
向前端返回详细的错误信息
当错误发生时,除了需要返回相应的状态码之外,还需要返回详情的错误信息。因为状态码只是通用的描述错误的类别,一般无法表示实际发生的具体错误信息。

比如说400状态码,只是知道前端请求发生了错误,至于如何去修改,仅凭这个是没有办法找到bug的。

通常来说:返回错误信息的方法有两种:

将信息放入HTTP响应头
将信息通过HTTP响应体返回
1、通过自定义头部,将详细的错误信息放入响应头中

X-ERROR-CODE: 2020
X-ERROR-MESSAGE: Bad authentication token
X-ERROR-INFO: http://api.example.com/v1/authentication

2、将错误信息放入响应体中

{
“error”: {
“code”: 2020,
“message”: “Bad authentication token”,
“info”: “http://api.example.com/v1/authentication”
}
}

3.Json

JSON(JavaScript 对象表示法)是一种轻量级的数据交换格式。人类很容易阅读和写作。机器很容易解析和生成。它基于 JavaScript 编程语言标准 ECMA-262 第 3 版 - 1999 年 12 月的子集。JSON 是一种完全独立于语言的文本格式,但使用 C 系列语言的程序员熟悉的约定,包括 C、C++、C#、Java、JavaScript、Perl、Python 等。这些属性使 JSON 成为理想的数据交换语言。

JSON 建立在两个结构上:

名称/值对的集合。在各种语言中,这被实现为对象、记录、结构、字典、哈希表、键控列表或关联数组。

值的有序列表。在大多数语言中,这是以数组、向量、列表或序列的形式实现的。

  • 34
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值