boxmoe_header_banner_img

⋅無⋅限⋅進⋅步⋅

加载中

文章导读

RESTful原理与实践


avatar
yuhui 2025年10月21日 32

RESTful原理与实践

南北向:

南向:上层系统提供给下层系统的接口

北向:下层系统提供给上层系统的接口

接口提供交互功能,实现数据传输

1741920789559-3f0249ea-e4aa-4674-aeee-25c01d53a23f.png

1741920789577-110a0f68-14ac-48c7-8b25-f198affacfac.png

北向接口的发展:

1741920789577-660d8151-d226-4ce9-9f41-6f867634aeca.png

1741920789561-a495af82-0986-4dd3-a0f8-823d6f718cef.png

规范URI命名

URI(Universal Resource Identify)统一资源标识符,标记资源具体位置

1741920789572-70ee0c83-2e8f-4e15-912b-d0488c6558c2.png

无状态设计

·有状态:服务端需要保存和维护先前请求的状态信息,后面的每一个状态都依赖先前状态

·无状态:服务端每次对相同的请求,函数或方法调用都给出相同的响应,不依赖于其他请求,服务端不需要维护状态信息,更易扩展,每个资源都可寻址,至少有一个URI对其定位

状态化请求:服务器段一般都要保存请求的相关信息,每个请求可以默认地使用以前的请求信息

无状态请求:服务器段的处理结果必须全部来自于一次请求所携带的信息

1741920795676-a96d54d1-5f45-44e8-aed6-05463589674b.png

前后端分离:

·前段涉及用户能看到的界面

·后端涉及数据处理的逻辑功能

1741920795436-ef318591-8a29-42f5-ba0d-0b78fcd58c94.png

1741920795455-64e377f0-17ed-46e2-863d-ee9814169ce6.png

1741920795559-1096a19d-1e9a-4184-8a61-1d9dffef66a4.png

1741920795624-bf8b1af0-21f4-4a19-b1df-1d9766261aeb.png

1741920796369-a2f856e8-212e-4ba2-b957-5b79edf53857.png

1741920796250-320837b1-b190-44d7-a076-ca822be60947.png

1741920796332-b71be378-ee1d-464e-8c46-5af7370dbe70.png

REST(representational State Transfer)表现层状态转化,是一种设计风格

REST作为客户端-服务器的交互框架,具有三个概念

·资源:

一个信息实体,网络上所有事物都可以被抽象为资源,每个资源有一个唯一的资源标识符

REST核心在于资源和操作,用URI定位资源,用HTTP动作描述操作1741920796279-f1d9b7f1-043d-4a52-986a-0a3a07151abe.png

·表现层:

资源具体呈现出来的形式叫表现层

1741920796479-c68f5d3d-d64e-4a25-8148-051434d52bcc.pngURI只代表资源的实体,不代表资源的形式

·状态转化

访问一个URI代表了客户端和服务器的一个互动过程,在这个过程中,势必设计导数据和状态的边喝

互联网通信协议HTTP 是一个无状态协议,这以为这所有的状态都保存在服务器端,客户端不保存状态,因此客户端通过某种手段操作服务器,让服务器端发生状态变化,这种转化依赖表现层,是表现层状态转化

客户端用到的某种手段就是HTTP

1741920797984-f93e8876-1a7f-4ce4-8690-72c1061f3993.png

RESTful和RESTCONF

1741920798092-46cd7398-953a-4480-a3ad-b0dcaf7146d4.png

1741920797977-bd7e4a37-1e53-4a66-ae2a-01f606c6f03c.png

RESTful接口的定义

1741920797992-9d3e9372-2d1b-40fd-9ee6-2d832f8e4278.png

1741920797991-542d309a-7194-4cdc-9497-02c0d8997b0b.png

HTTP工作原理:

1741920800066-d70462d4-722f-4f91-b9a9-dc0bd60abe82.png

1741920799809-3486c4f8-7ce0-4d4e-9dd5-047828ce54a9.png

1741920799869-3c4feba0-fbc5-45e9-848d-b5e10ac87990.png

1741920799901-ac0440b7-1103-4baf-a87a-fda32be80ae7.png

1741920799864-d499f31c-a2e3-4794-9325-8b83b94823f8.png

1741920801953-2b13b037-98ea-485d-98bc-858aaeff33c6.png

1741920801863-a756e373-2205-4fbd-9b29-a3b4b086fa9b.png

客户端发送的请求消息包括

·请求行:由请求方法字段、URI字段和HTTP协议版本字段组成

请求方法:常见的GET/POST等,HTTP客户程序向服务器发送请求时候必须指明        请求类型

                ![1741920801886-7bda2489-4a9c-489b-9609-b8b444ff79dd.png](https://cdn.picui.cn/vip/2025/10/20/68f5e72d69ce8.png)

URI:统一资源标识符

协议版本:在允许发送方指示消息的格式和理解后续HTTPP通信的能力

![1741920801891-88380990-5744-49ee-9d06-1a7c39d70d26.png](https://cdn.picui.cn/vip/2025/10/20/68f5e73061192.png)

·请求头部:允许客户端向服务器传递关于请求的附加信息,这些字段充当请求修饰符,相当 于变成语言方法调用中的参数

![1741920801867-941a65e8-343a-41f4-bfec-05e3c36b7883.png](https://cdn.picui.cn/vip/2025/10/20/68f5e7326c603.png)

1741920804198-0c3ed120-a5bb-4e48-9f2e-7006bd593be3.png

1741920804038-8606bbcb-3d79-40b3-b429-2e9d3b89d897.png

·空行:通过一个空行告诉服务器请求头部到此为止

·请求数据:若方法字段为GET则此项为空,没有数据,若方法字段是POST则通常来说此处防止的是要提交的数据

1741920804044-1aa04465-0f0f-4797-9286-d956bda0aa88.png

服务器响应消息

HTTP响应消息由四个部分组成

1741920804049-01271518-3812-4586-8a48-0932789cb1dd.png

·状态行:由协议版本、状态码、原因短语组成,每个元素用空格分离

协议版本:允许发送方指示消息的格式及理解后续HTTP通信能力

状态码:一个3位整数结果码,用于向客户端返回操作结果

原因短语:对状态码进行简短的文本描述

![1741920804082-8cb51ba1-db99-4c77-9c72-0876758c0412.png](https://cdn.picui.cn/vip/2025/10/20/68f5e7418a8ed.png)

1741920806307-fdc2cff3-0af2-46ad-9f86-f7c479051c3f.png

·响应头部:允许服务器传递关于响应的附加信息,提供了关于服务器的相关信息以及URI所标 识资源的信息

![1741920806200-0da4b922-061f-494e-bbe8-9323a2a9b224.png](https://cdn.picui.cn/vip/2025/10/20/68f5e74621b94.png)

响应头用于描述服务器及数据的基本信息。服务器通过响应头,可以通知客户端如        何处理后续它回复的数据

                            ![1741920806317-72fde0b3-b5e8-4b8d-8438-a0e12f3b4cc2.png](https://cdn.picui.cn/vip/2025/10/20/68f5e748a7112.png)

1741920806279-e52c0c49-3ea3-4873-bc8d-243ad4384e58.png

·空行:同上,告客户端,响应头部到此为止

·响应正文:响应的消息体,如果客户端请求数据类型是纯数据则返回纯数据,如果请求HTML页面则返回HTML代码

1741920806213-194401a6-57bb-4e1d-a692-64b0f4351cfe.png

客户端请求报文:

1741920808367-ba752ebc-3abb-46d6-9cb6-2fb37107b3e3.png

服务器响应消息:

1741920808344-fd5e1f2f-f639-4396-bf8b-ad8bfc6fe3ec.png

HTTPS:安全超文本传输协议,在HTTP基础加入SSL/TLS层加密HTTP协议

1741920808300-12dcd7f8-f210-4f02-bc54-6e6ff9add899.png

SSL(Secure Sockets Layer 安全套结字)及TLS(Transport Layer Security传输层安全)是为网络通信提供安全及数据完整性的一种安全协议

TLS是SSL的标准化后的产物,SSL与TLS在传输层于应用层之间对网络连接进行加密,不影响原有的TCP协议和HTTP协议,所以使用HTTPS不需要对HTTP页面进行太多改造

1741920808581-b5a89773-994e-4895-aca2-1f4aa1678f10.png

HTTP/2

1741920808603-a461b9f6-b526-40c2-acfb-d91c624cc42e.png

1741920811015-e6fe0120-c1aa-48c8-ab1e-1648663fb103.png

1741920811126-5965a0a1-92d0-4d98-b60d-2a35e8843ed9.png

1741920811068-e7015c5a-e20a-42a3-a048-a4aeb74bf8c0.png

调用RESTful接口获得Token(认证Token 为字符串,用于API的鉴权 认证)

1741920811060-b69f8fc7-f46c-4fc1-8662-fc2bf64bd1a6.png

1741920811090-0c2c689c-e64e-4f3b-992c-46bbae5b1f60.png

1741920814113-c28a70f2-b3a6-4a7d-85b9-f5fe188f4876.png

1741920814112-dc2468ce-8152-4293-8c64-703cbabdae8b.png

1741920814143-5d88bc2f-b442-42d3-b18e-44896527a2e8.png

1741920814104-69e4b531-f2f1-41b6-b4e4-3292f74cd61b.png

1741920814167-36ff3c05-24e7-406f-80e4-1f3489dbbb2f.png

1741920817184-8b2621fb-e193-4c2f-8fad-6cd9b5a7a35c.png

1741920817184-fa6a8f95-c337-49b5-b3db-9e3810d8fe61.png

更新: 2025-03-14 10:53:45
原文: https://www.yuque.com/yuhui.net/network/mnbcpirwzqv696iu



评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字

插入代码