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

70 阅读2分钟

[http框架的设计与实现|青训营笔记]
这是我参加「第五届青训营」伴学笔记的第十一天

前言
记录青训营后端专场的学习过程,有不足的地方还请大佬指正。
由于本人基础比较薄弱,所以笔记尽可能的详细。

该文章开始的版本将以简述课程知识点为主,等后面实践有自己的理解后会编辑添加自己的理解。

重谈HTTP协议

HTTP定义

Http:超文本传输协议(即字面意思,为了在网络中传输除文本以外的信息如图片,mp3文件等信息而设置的协议)

截屏2023-02-16 16.53.57.png

需要协议的原因:

正如我们说话一样,我们需要根据特定的语法表达出我们想要的意思。在网络传输中,我们也需要协议来明确传输信息的边界,从哪里开始,从哪里结束,传输的数据是什么类型的。 截屏2023-02-16 16.55.41.png

协议里有什么

截屏2023-02-16 17.05.12.png 在上面例子中,我们可以看出协议主要有三大部分

  • 请求行/状态行:请求行由方法名、url、协议版本组成,如上图中POST请求,访问/sis,并且是http/1.1版本。状态行由协议版本,状态码,状态码描述组成,如上图中服务端发送的协议内容的第一行,该状态行描述了该协议版本是http/1.1 状态码为200,并且表示ok的意思。
  • 请求头/响应头:请求头和响应头包含了协议相关的键值对,还有自行根据业务设计的一些键值对。如上图中content-length描述了协议相关信息,表示该响应体长度为28。
  • 请求体/响应体:即响应/和返回内容,并以换行符结束

请求流程

截屏2023-02-16 17.15.15.png

  • 业务层:客户端/服务端根据框架编写业务逻辑,如客户端给服务端发送一起去看电影,服务端根据该信息做出响应发生ok表示答应。
  • 服务治理层:比如熔断/限流等,但是依附于中间件层。
  • 中间件层:有对请求先处理和后处理的能力,和请求级别绑定。
  • 路由层(服务端专属):根据url选择相应的执行方法
  • 传输层