做企业网站需要什么文件,中国建设银行青海分行网站,手机精品网站建设,网站怎么更改域名http和RESTful APIs HTTP协议RESTful APIs设计RESTful API设计实例 HTTP协议
HTTP#xff08;超文本传输协议#xff09;是用于分布式、协作式和超媒体信息系统的应用层协议。它是网页数据通讯的基础。工作原理简述如下#xff1a;
客户端请求#xff08;Request#xf… http和RESTful APIs HTTP协议RESTful APIs设计RESTful API设计实例 HTTP协议
HTTP超文本传输协议是用于分布式、协作式和超媒体信息系统的应用层协议。它是网页数据通讯的基础。工作原理简述如下
客户端请求Request当你在浏览器中输入一个URL或点击一个链接时浏览器会向服务器发送一个HTTP请求。这个请求包括
请求行包含方法如GET, POST, PUT, DELETE等、请求资源的URI和HTTP版本。请求头部包含表示浏览器类型、接受的内容类型、连接方式等的元数据。空行指示头部结束。可选的请求正文对于POST或PUT请求正文中包含要发送给服务器的数据。
这确实是一个HTTP请求的请求行和请求头它看起来是一个WebSocket握手请求。
WebSocket是一种在单个TCP连接上进行全双工通讯的协议。这个特定的请求正在试图从标准的HTTP协议升级到WebSocket协议。这里是请求的一些关键组成部分解释GET ws://localhost:5173/ros HTTP/1.1这个请求行指出客户端希望发起的是一个GET请求
使用的是HTTP/1.1协议。
而ws://localhost:5173/ros表示客户端尝试通过WebSocket协议与服务器建立连接
并且目标资源是/ros。Host: localhost:5173Host头部告诉服务器客户端想要连接的主机名和端口号。Connection: Upgrade这表明客户端希望升级连接的协议。Upgrade: websocket这告知服务器客户端想要升级到WebSocket协议。Sec-WebSocket-Version: 13表示客户端支持的WebSocket版本。Sec-WebSocket-Key: 是经过Base64编码的随机值
服务器会用这个值来构造一个响应头Sec-WebSocket-Accept以完成握手。Sec-WebSocket-Extensions: 表示客户端支持的WebSocket扩展。由于WebSocket协议的握手是基于HTTP协议进行的所以初始的握手请求遵循HTTP请求格式
但是之后的数据传输则不再遵循HTTP协议而是采用WebSocket自己定义的帧格式进行数据交换。该请求没有请求正文Body部分因为WebSocket握手请求通常不需要正文
握手的所有必要信息都包含在请求头中。如果服务器接受握手则会返回一个状态码101的响应
表示协议切换然后客户端和服务器之间就可以开始WebSocket协议的数据交换了。标头是请求头和响应头载荷是请求体如果是get请求不显示响应是响应体。
服务器响应Response服务器接收并处理客户端的请求后返回一个HTTP响应。这个响应包括
状态行包含所使用的HTTP版本、状态码如200 OK, 404 Not Found等和状态消息。响应头部包含服务器类型、内容类型、编码、缓存控制等信息。空行指示头部结束。可选的响应正文包含请求的资源内容例如HTML页面、图像等。
连接管理按照HTTP/1.1协议默认情况下一次TCP连接可以发送多个HTTP请求持久连接提高了效率。而HTTP/2进一步优化了这些概念支持同时多个请求/响应多路复用。
RESTful APIs设计
REST表现层状态转移是一种软件架构风格它提倡网络应用程序的客户端和服务器之间的交互应该是无状态的且可以通过标准的HTTP方法进行。遵循REST原则设计的Web服务称为RESTful API。核心原则包括
无状态Statelessness每个请求都包含了执行该请求所需的所有信息。服务器不需要保存客户端的状态。客户端-服务器Client-Server客户端和服务器之间的关注点分离使得两者可以独立地发展和扩展。可缓存Cacheable服务器响应必须定义自己是否可以被缓存。统一接口Uniform Interface保证了系统解耦和简单性。分层系统Layered System通过层来构建分布式系统每一层只知道与其直接相连的层。按需代码Code on Demand可选可以通过向客户端发送可执行代码来扩展客户端功能比如JavaScript脚本。
RESTful API设计的几个关键点
资源ResourcesAPI应该围绕资源构建资源由URI唯一标识。HTTP方法Methods使用标准的HTTP方法如GET读取、POST创建、PUT更新/全替换、PATCH更新/部分替换、DELETE删除进行操作。状态码Status Codes利用HTTP状态码来表示操作结果例如200成功、201已创建、400错误请求、404未找到等。表示Representation资源的表现形式通常是JSON或XML格式在HTTP的请求和响应的正文中传输。超媒体HypermediaRESTful API应该提供资源的关联信息如链接到其他相关资源。
RESTful API设计实例
假设我们有一个用户管理系统我们可能会设计以下API
获取用户列表: GET /users创建新用户: POST /users获取指定用户: GET /users/{id}更新用户信息: PUT /users/{id}删除用户: DELETE /users/{id}
在实际设计中你还需要考虑版本控制、认证、权限校验、分页和过滤等多方面因素。
总结起来了解HTTP协议的基本工作原理以及如何遵循REST原则设计API是成为后端开发者的重要技能。