HTTP框架修炼之道| 青训营笔记

156 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第3篇笔记

今天主要记录的是HTTP框架修炼之道

一个常见的POST请求在协议层究竟做了什么?

  • 超文本传输协议(HyperText Transfer Protocol),是一种用于在服务端和客户端之间传输超文本的应用层协议。超文本(HyperText),超文本就是指含有指向其他资源连接内容的文本。超文本不仅仅是文字,包括图片、音频、视频等流媒体,以及超链接,点击超链接可以跳转到其他页面,每个页面都可以这样跳来跳去,形成一个网络。
  • 协议就是一种约定,规定好一种信息的格式后,发送方和接收方都需要按照这种格式来 发送信息 和 接收信息。
  • HTTP是无状态协议,一旦数据交换完毕,服务器和客户端之间的连接就会关闭。并且每一次请求都是相互独立的,当前请求不会记录上一次请求的记录(这就引出了后面的Cookie和Session)。
  • 一次连接:客户端发送的每次请求都需要得到服务器的响应,从一次请求的建立连接到关闭连接的过程,即为“一次连接”。

协议里有什么

1653149388(1).png

  • 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:服务端错误
  • 状态码描述

请求头/响应头

协议约定和业务相关的

请求流程

1653149145(1).png

在业务层,业务方使用框架提供的API实现业务逻辑,务逻辑想传递给服务端有一些工作需要做; 完成业务逻辑后进入服务治理层(服务治理层依托于中间件层,有一些先处理和后处理的逻辑)