HTTP协议
HTTP:超文本传输协议(Hyper Text Transfer Protocol),是用于从万维网服务器传输超文本到本地浏览器的传送协议。
HTTP是基于客户/服务器模式,且面向连接的。首先客户与服务器建立连接,之后客户向服务器提出请求,等到服务器接受请求,就根据请求返回相应的文件作为应答,最后客户与服务器关闭连接。
POST请求
POST请求是一种用于向指定的资源提交数据的请求方法。它是HTTP协议中最常用的请求方法之一,常用于向服务器发送数据,用于创建、更新或处理资源。POST请求与GET请求不同,它向服务器发送的数据通常包含在请求的主体中,而不是作为URL的一部分。这使得POST请求适用于传输大量或敏感数据,因为它们不会直接暴露在URL中。
HTTP协议的不足
| HTTP1 | HTTP2 | QUIC |
|---|---|---|
| 队头阻寒 | 多路复用 | 加密减少握手次数 |
| --- | --- | --- |
| 传输效率低 | 头部压缩 | 解決队头阻塞 |
| --- | --- | --- |
| 明文传输不安全 | 二进制协议 | 支持快速启动 |
| --- | --- | --- |
HTTP框架
TCP/IP四层概念模型:应用层、传输层、网络层、数据链路层。
应用层需要提供合理的API。
中间件需求:
- 配合 Handler 实现一个完整的请求处理生命周期
- 拥有预处理逻辑与后处理逻辑
- 可以注册多中间件
- 对上层模块用户逻辑模块易用
路由设计
框架路由实际上就是为 URL 匹配对应的处理函数 (Handlers)
- 静态路由:1a/6/、 1a/6/d
- 参数路由:1a/:id/c (/a/6/c, /a/d/c) ‹ /*all
- 路由修复:1a/6<->1a/6/
- 冲突路由以及优先级:1a/6、/:id/c
- 匹配 HTTP 方法
- 多处理函数:方便添加中间件
- ……
总结与反思
这节课老师重点分析了HTTP请求时内部框架的各个层的应用,以及HTTP框架的优劣及优化方法,为之后不同协议的学习可以提供一些思路。