HTTP框架|青训营

261 阅读3分钟

一.什么是HTTP框架:

HTTP框架是一种用于构建和处理HTTP请求和响应的软件框架。HTTP 协议是当今使用最为广泛的协议之一,HTTP 是前(客户)端与服务端通信的基础协议。如下图:

image.png

二.为什么 HTTP 框架做要分层设计?

  1. 解耦和模块化:分层设计使得不同的功能模块相互独立,彼此之间具有松散的耦合关系。这样一来,当需要修改或扩展某个功能时,只需关注该层的实现,而无需影响其他层的代码。这大大提高了代码的可维护性和可扩展性。
  2. 单一职责原则:每个层都应该专注于特定的功能和职责。例如,路由层负责请求的路由和分发,中间件层负责处理请求和响应的增强功能,数据层负责与数据库交互等。这种分层设计使得代码更加清晰和可理解,每个层之间的职责清晰可见。
  3. 提高了整体灵活性:每一层都可以使用最适合的技术来实现,你只需要保证你提供的功能以及暴露的接口的规则没有改变就行了。「这个和我们平时开发系统的时候要求的高内聚、低耦合的原则也是可以对应上的。 总的来说:分层即代表提高代码的可维护性、可扩展性、可替换性。

三.HTTP框架分层设计有哪些优势与劣势:

优势:

1.还是可维护性和可扩展性,和解耦和松耦合性,简单、灵活:HTTP 协议里的请求方法、URI、状态码、原因短语、头字段等每一个核心组成要素都没有被写死,允许开发者任意定制、扩充或解释,缺什么功能自己加个字段或者错误码什么的补上就是了,如下图:
image.png
2. 性能和安全性优化:分层设计可以为性能和安全性优化提供便利。例如,在中间件层实现缓存、身份验证、日志记录等功能,可以提高性能和安全性。而通过将安全检查和数据验证放在特定的层中进行处理,可以降低代码中出现漏洞和错误的风险。

劣势:

1. 过度设计的风险:在分层设计中,过度设计的风险也需要考虑。如果层级划分过于复杂或不合理,可能导致代码冗余、维护困难、性能下降等问题。因此,在设计分层结构时,需要根据具体需求和项目规模进行权衡和调整。
2. 明文:明文意味着在传输过程中的信息,是可方便阅读的,通过浏览器的 F12 控制台或 Wireshark 抓包都可以直接肉眼查看,为我们调试工作带了极大的便利性。但是这正是这样,HTTP 的所有信息都暴露在了光天化日下,相当于信息裸奔。在传输的漫长的过程中,不怀好意的人只要侵入了这个链路里的某个设备,就可以实现对通信的窥视,信息的内容都毫无隐私可言,很容易就能被窃取,如果里面有你的账号密码信息,那么可能会导致:你号没了。如下图:
image.png

总的来说:在实际应用中,需要根据具体需求和项目规模来评估和选择最适合的分层设计方式。