这是我参与「第三届青训营 -后端场」笔记创作活动的的第3篇笔记
今天主要记录的是HTTP框架修炼之道
一个常见的POST请求在协议层究竟做了什么?
- 超文本传输协议(HyperText Transfer Protocol),是一种用于在服务端和客户端之间传输超文本的应用层协议。超文本(HyperText),超文本就是指含有指向其他资源连接内容的文本。超文本不仅仅是文字,包括图片、音频、视频等流媒体,以及超链接,点击超链接可以跳转到其他页面,每个页面都可以这样跳来跳去,形成一个网络。
- 协议就是一种约定,规定好一种信息的格式后,发送方和接收方都需要按照这种格式来 发送信息 和 接收信息。
- HTTP是无状态协议,一旦数据交换完毕,服务器和客户端之间的连接就会关闭。并且每一次请求都是相互独立的,当前请求不会记录上一次请求的记录(这就引出了后面的Cookie和Session)。
- 一次连接:客户端发送的每次请求都需要得到服务器的响应,从一次请求的建立连接到关闭连接的过程,即为“一次连接”。
协议里有什么
- POST /sis HTTP/1.1 对http协议版本的描述 请求行
- Who:Alex
- Content-Type:text/plain
- Host:127.0.0.1:8080
- Content-Length:28 字节数 server端根据字节数接受数据
- 上面四行字典对是协议的元数据
- Let's watch a movie together 包的部分真正想说的话
- 协议结束
- HTTP/1.1 200 OK 对http协议版本的描述 状态码
- Server:hertz
- Date:...
- Content-Type:...
- ...元数据
- OK
请求行/状态行
- 方法名:GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE、PATCH……
- URL
- 协议版本
- 状态码:1xx:信息类、2xx:成功、3xx:重定向、4xx:客户端错误、5xx:服务端错误
- 状态码描述
请求头/响应头
协议约定和业务相关的
请求流程
在业务层,业务方使用框架提供的API实现业务逻辑,务逻辑想传递给服务端有一些工作需要做; 完成业务逻辑后进入服务治理层(服务治理层依托于中间件层,有一些先处理和后处理的逻辑)