Web框架基础

138 阅读2分钟

本栏目整体是根据geektutu的七天系列得来的灵感,并且很大部分都和兔兔的内容类似。但有些内容有自己的想法。在此非常感谢兔兔!!!

一个完整的web框架最基本最基本的功能必须要有如下三个抽象

  1. 代表服务器的抽象
  2. 代表上下文的抽象
  3. 路由树

对于代表服务器的抽象,至少需要提供三部分的功能

  1. 生命周期控制:启动、关闭、对于生命周期的回调
  2. 路由注册接口
  3. 作为http包到web框架的桥梁

对于代表上下文的抽象,我们的基本准测就是更方便用户使用。在Go内置的http包中,提供的http.ResponseWriter对象和http.Request对象的粒度太小,一些很常用的操作写起来很繁琐。

  1. 更快捷地获取请求方式
  2. 更快捷地获取请求地址
  3. 更快捷地响应各种响应类型
    • JSON格式
    • HTML格式
    • Text个数
    • ...
  4. ....

对于路由树,这个我认为是一个web框架最重要的内容。他需要的提供的功能只有两个

  1. 注册路由
  2. 匹配路由

但是在注册路由和匹配路由的时候,有很多小细节需要注意

  • 静态路由注册
  • 动态路由注册
    • 参数路由
    • 通配符路由
    • 正则路由
    • ...
  • 动静态路由的匹配

上述三个是一个web框架最重要最基本的功能。为了用户体验,我们还需要提供一些更方便的操作

  1. AOP方案
  2. 页面渲染
  3. 文件处理
  4. session会话机制
  5. ....

这里列出的功能都不会侵入框架的核心,他只是作为一个框架的衍生功能。