用什么工具建设网站,做网站的颜色,上海广告公司工资多少,服务器搭建网站用什么系统CSDIY#xff1a;这是一个非科班学生的努力之路#xff0c;从今天开始这个系列会长期更新#xff0c;#xff08;最好做到日更#xff09;#xff0c;我会慢慢把自己目前对CS的努力逐一上传#xff0c;帮助那些和我一样有着梦想的玩家取得胜利#xff01;#xff01;这是一个非科班学生的努力之路从今天开始这个系列会长期更新最好做到日更我会慢慢把自己目前对CS的努力逐一上传帮助那些和我一样有着梦想的玩家取得胜利 第一弹Cpp零基础学习【30 DAYS 从0到1】 第二弹Cpp刷题文档【LeetCode】 第三弹Go开发入门【字节后端青训营】 第四弹Cpp简单项目开发【黑马Rookie】 第五弹数据结构绪论【数据结构与算法】 第六弹Go工程实践【字节后端青训营】 第七弹高质量编程和性能调优【字节后端青训营】 第八弹Linux 基础知识【书生大模型训练营】 第九弹Python 基础知识【书生大模型训练营】 第十弹Git 基础知识【书生大模型训练营】 第十一弹玩转HF/魔搭/魔乐社区【书生大模型训练营】 第十二弹书生大模型全链路开源体系【书生大模型训练营】 第十三弹玩转书生「多模态对话」与「AI搜索」产品【书生大模型训练营】 第十四弹浦语提示词工程实践【书生大模型训练营】 第十五弹HTTP 框架修炼之道【字节后端青训营】 课程背景
HTTP 请求一 API 接口层状态管理页面前端路由终端 HTTP 请求二 请求解析后端路由业务逻辑数据库
01. 再谈 HTTP 协议
1991年开始大规模使用…三十多岁还在更新…可见生命力之强
1.1 HTTP 协议是什么
HTTP超文本传输协议Hypertext Transfer Protocol
1.2 为什么需要协议
需要明确的边界
开始和结束 [协议开始] [协议结束]
1.3 协议里有什么
发送端
POST /sis HTTP/1.1
Who: Alex
Content-Type: text/plain
Host:17.0.0.1:8888
Content-Lenth: 28Lets watch a movie together接受端
HTTP/1.1 200 OK
Server: hertz
Date: Thu, 21 Apr 2022 11:46:32 GMT
Content-Type: text/plain; charseutf-8
Content-Length: 2
Upstream-Caught: 1650541592984580OK内容
请求行 / 状态行
方法名 - URL - 协议版本协议版本 - 状态码 - 状态码描述
请求头 / 响应头…
请求体 / 响应体…
1.4 请求流程
服务端
客服端
业务层 - 服务治理层/中间件层 - 路由层 - 协议编/解码层 - 传输层
1.5 不足和展望
HTTP1 队头阻塞 传输效率低 明文传输不安全
HTTP2
多路复用头部压缩二进制协议
QUIC 基于 UDP 实现 解决队头阻塞 加密减少握手次数 支持快速启动
02. HTTP 框架的设计与实现
2.1 分层设计
OSI 七层网络模型、TCP/IP 四层概念模型
专注性扩展性复用性
高内聚 低耦合 易复用 高扩展性
2.2 应用层 API 设计
提供合理地 API
**可理解性。**命名合理易理解**简单性。**尽量简介**冗余性。**做同样地事情地接口只保留一个兼容性。可测性。可见性。
不要试图在文档中说明很多用户不看。
2.3 中间件设计
中间件需求
洋葱模型核心逻辑与通用逻辑分离
调用链
2.4 路由设计
静态路由参数路由路由修复冲突路由以及优先级匹配 HTTP 方法多处理函数方便添加中间件
青铜map[string]handlers 黄金前缀匹配树
站在巨人的肩膀上
2.5 协议层设计
抽象出合适的接口
2.6 网络层设计
网络模型
03. 性能修炼之道
3.1 针对网络库的优化
go netnetpollnetpoll with nocopy peek 分配足够大的 buffer限制最大的 buffer size
不同网络库的优势
go net流式友好、小包性能高
netpoll中大包性能高、时间延迟低
3.2 针对协议的优化 – Headers 解析
取
核心字段快速解析使用 byte slice 存储额外存储到成员变量中
舍
普通 header 性能较低没有 map 结构
3.3 针对协议的优化 – Header key 规范化
取
超高的转化效率比 net.http 提高40倍
舍
额外的内存开销变更困难
3.4 热点资源池化
取
减少内存分配提高了内粗复用降低了 GC 压力性能提升
舍
额外的 Reset 逻辑请求内有效问题定位难度增加
04. 企业实践 追求性能 追求易用、减少误用 打通内部生态 文档建设、用户群建设 碎碎念已经开始听不懂了很多关于计算机网络的知识一时半会是不懂得也正常先记下来留个印象总会派上用场的