使用说明
1. HTTP 核心概念
概述
该 超文本传输协议(HTTP) 是网络的基础协议。
它定义了客户端(通常是浏览器或应用程序)和服务器如何在互联网上交换消息。
基本原则
-
客户端-服务器模型:
客户端发送请求;服务器处理并返回响应。 -
无状态性
每个请求都是独立的——服务器不会在请求之间保留客户端上下文。 (状态必须由外部管理,例如,使用cookies、会话或令牌。) -
请求-响应周期:
- 客户端使用HTTP发起请求 方法 (
GET,POST,PUT,DELETE等。) - 服务器返回一个 状态码 和 响应体.
- 客户端使用HTTP发起请求 方法 (
-
方法(动词):
方法 目的 GET提取数据 POST提交数据或创建资源 PUT更新或替换资源 PATCH部分更新资源 DELETE移除资源 -
状态码:
范围 含义 示例 1xx 信息性 100 继续 2xx 成功 200 OK 3xx 重定向 301 永久移动 4xx 客户端错误 404 未找到 5xx 服务器错误 500 内部服务器错误
核心头文件
HTTP头部为请求和响应提供元信息,例如:
Content-Type身体格式(例如。,application/json)Authorization凭证或令牌Cache-Control缓存策略
2. REST架构
概述
REST(表述性状态转移) 这是一种将HTTP原则应用于设计Web API的架构风格。
由Roy Fielding的博士论文(2000年)所定义,REST强调 简洁性,可扩展性, 并且 统一的接口。
REST 约束
-
客户端-服务器(模式):
用户界面(客户端)与数据存储(服务器)的分离。 -
无状态性:
每个请求都必须包含所有必要信息——服务器不存储客户端上下文。 -
可缓存:
响应必须明确其是否可缓存,以提高网络效率。 -
统一接口:
使用标准的HTTP方法和媒体类型,实现一致且可预测的交互。 -
分层系统:
客户端无需知道它们是直接连接到终端服务器,还是通过中间人连接。 -
可选:按需代码(Code-on-Demand):
服务器可以通过发送可执行代码(例如,JavaScript)来扩展客户端的功能。
资源导向
- 资源 是关键实体(例如,用户、订单、帖子)。
- 每个资源都通过一个(标识符)来识别 URI(统一资源标识符) (例如。,
/api/users/1)。 - 表示;表述;代理(或代表) (通常为JSON)描述资源状态。
好处;利益
- 简洁性和可扩展性
- 明确使用HTTP方法和状态码
- 易于集成和互操作
局限性
- 无状态开销(必须重新发送上下文)
- 不适用于实时或双向通信
- 版本控制和部分更新的模糊性
3. JSON-RPC(远程过程调用协议)
概述
JSON-RPC(JSON远程过程调用) (JSON 远程过程调用) 是一种 轻便的 以JSON编码的远程过程调用协议。
它通过调用带有参数的命名方法,实现客户端与服务器之间的通信。
与REST不同,JSON-RPC侧重于 动作(方法) 而不是 资源。
核心特性
-
与传输无关的(或传输中立的)
通常通过HTTP或WebSockets运行,但不仅限于此。 -
请求结构:
{ "jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": 1 }