# 基于HTTP的Web后端的组成 一个基于HTTP的Web后端通常有以下部分组成: --- - 路由系统(router) 路由系统负责处理用户访问网页时的请求路径/方法,并转交给对应的处理者 --- - 处理者(handler) 处理者负责处理用户的请求,读取用户在URI中的参数,和请求体中的内容(如果有)等,统称为上下文(Context),负责返回请求所对应的回应 有的系统还会继续细分,将业务层和接口层分开(这种情况下通常接口层是和路由功能合并的) --- _最低要求是这个,另外,通常一个后端系统还需要连接一个数据库:_ --- - 数据库 通常是兼容SQL协议的关系型数据库,负责存储后端所需要用到和产生的信息 _其实很多后端系统无非就是对数据库的增删改查(所谓的CRUD),可以说这些系统就是数据库的一层方便wrapper_ --- - 鉴权系统 通常,我们系统的内容不打算对互联网上的任何一个人开放,所以我们需要一些方法来验证访问者的身份 --- - 模板系统(optional) 如果你打算通过后端渲染HTML返回到用户浏览器,那你需要一套模板来方便地将动态内容插入到模板里面返回给用户,如果是一个纯粹API的站点,还是想直接把工作甩给前端,你就可以不用配置模板 --- 此外,还有一些外围的工作: - 反向代理 通常我们的Web后端服务不是直接暴露对外访问的,而是经过一层代理的转发,这样更加的安全,配置也更加简单,服务只需要监听本地端口 - 配置系统 你的系统需要读取配置,比如监听端口,数据库连接,还有其他服务的密钥等 - CI/CD 自动化配置构建,部署,测试等工作,让你专注代码工作,而不用把心思过多地放在部署构建这些工作上面 ## 路由 ### API设计 #### 传统 #### REST #### GraphQL ## handler ### 面向对象与模型 ## 数据库 ### SQLite ### Postgre ### 选择数据库的各种考量 ## 鉴权 ### Session ### JWT ### OAuth2.0 ## 模板 ### Jinja2