HTTP
-
基本概念
HTTP是超文本传输协议,为HyperText Transfer Protocol。HTTP是计算机世界里面在两点之间传输文字、图片、音频等超文本数据的约定和规范。 -
HTTP常见的状态码
1××类状态码属于提示信息。 2××类状态码表示服务器成功出来了客户端的需求,如200、204等。 3××类状态码表示客户端请求的资源发生了变动,如301、302等。 4××类状态码表示客户端发送的报文有误,服务器无法处理请求,如我们常见的404。 5××类状态码表示客户端请求报文正确,服务器处理出现错误。 -
Post和Get
Post和Get是我们常用的方法。 Post是根据请求报文对指定的资源进行处理。 Get是从服务器获取指定的资源。 -
HTTP1、HTTP2、QUIC
HTTP1 存在对头阻塞、传输效率低、明文传输不安全等问题。
关于HTTP明文传输,现在大多数采用HTTPS传输数据保证数据的安全性和隐私性。完成TCP连接建立,然后走 TLS 握手过程后,才能建立通信安全的连接。HTTPS 常用的密钥交换算法有两种,分别是 RSA 和 ECDHE 算法,有了比较广泛的应用。
HTTP2对多方面进行了优化,HTTP 头部通过静态表和 Huffman 编码方法进行压缩,提高效率,节约带宽资源。实现多路复用和二进制协议。
HTTP3不仅仅只是简单将传输协议替换成了 UDP,还基于 UDP 协议在「应用层」实现了 QUIC 协议,它具有类似 TCP 的连接管理、拥塞窗口、流量控制的网络特性,相当于将不可靠传输的 UDP 协议变成“可靠”的了,所以不用担心数据包丢失的问题。还具有无对头阻塞、更快的连接建立、连接迁移等优点。 -
HTTP框架设计
HTTP框架设计采用分层设计的理念,具有高内聚、低耦合、高扩展性等优点。
中间件和路由的设计也是很重要的。现在用的比较多的web框架,比如Gin、Beego等。
Gin是Go语言写的一个web框架,它具有运行速度快,分组的路由器,良好的崩溃捕获和错误处理,非常好的支持中间件和 json。简单易用比较好上手的,可以更容易的完成路由以及中间件的设计。 -
学习感悟
关于HTTP方面的知识还需要深入的学习,HTTP3以及新的技术需要去学习认识。关于Go的主流的Web框架Gin也是简单易用的,也在学习中。加油加油!