HTTP的初步认识 |青训营笔记

51 阅读1分钟

HTTP协议

一、HTTP

HTTP:HTTP是超文本传输协议(Hypertext Transfer Protocol)
协议需要明确信息的开始和结束在什么时候——明确边界。以及它能够携带什么信息,信息的类型又是什么。

协议里有什么?
  • 请求行/状态行
  • 请求头/响应头
  • 请求体/响应体 请求行:方法名、URL、协议版本 状态行:协议版本、状态码、状态码描述

讲解Demo

func main()
{
h :=sever.New()
h.POST("/sis",func(c context.Context,ctx*app.RequestContext){
ctx.Data(200,"text/plain;charset=utf-8",[]byte("OK"))
})
h.Spin()
}

方法:POST
URL:/sis
业务逻辑:ctx.Data(200,"text/plain;charset=utf-8",[]byte("OK")

二、请求流程

  • 业务层
  • 服务治理层(中间层) ——可记录整个业务的耗时
  • 路由层
  • 协议编(解)码层
  • 传输层

三、不足

  • HTTP1:队头阻塞,传输效率低,明文传输不安全
  • HTTP2:多路复用,头部压缩,二进制协议
  • QUIC:基于UDP实现,解决队头阻塞,加密减少握手次数,支持快速启动

四、HTTP框架的设计与实现

4.1分层设计

OSI七层网络模型:

  • 应用层
  • 表示层
  • 合适层
  • 传输层
  • 网络层
  • 数据链路层
  • 物理层
    在进行分层设计时,需考虑高内聚、低耦合、易复用和高扩展性。
收获

在本节内容中,初步认识了什么是HTTP协议,在之前对它模糊的概念又进一步的了解了。同时学习到了协议的基本组成有些什么。对请求的流程有了清晰的认识,知道了OSI有哪七层。